MySQL DDL语句

这里介绍MySQL比较常用的DDL语句。包括如下:

  • create table

  • alter table

  • drop table

  • truncate table

 

 1. create table

    create table为建表语句,看如下几个示例:

  • 在列名后面声明主键 

    create table t1(id int primary key, name varchar(20));   

     

  • 在表级别声明主键

    create table t1(id int, name varchar(20),  primary key(id));

     

  • 多字段主键(只能在表级别声明)

    create table t1(id int, name varchar(20),  primary key(id, name));


  • 建表时指定索引

    create table t1(id int, name varchar(20),primary key(id),index idx_t1_name(name));


  • 建表时指定外键

    create table t3(id int, name varchar(20),primary key(id),constraint cst_t1_fk foreign key(id) references t2(id));

     

  • 在表的结尾声明表的属性如存储引擎和字符集等等

    create table t1(id int, name varchar(20),  primary key(id, name)) engine=innodb default charset=utf8;

     

  • 使用if not exists关键字。如果这个表不存在则建立这个表,如果已经存在则报一个warning

    create table if not exists t1(id int, name varchar(20), primary key(id));

     

  • 表建立完成后可以用desc t1;或show create table t1\G查看表的结构,一般情况下desc出来的结果已经够用,但是如果要获得建表的语句最好用show create table t1\G



 2. alter table

    alter table可以修改表的结构和属性,以下alter table后面的语句可以使用逗号分隔在同一条语     句中执行。看如下几个示例:

  • 增加字段

    alter table t1 add (column) age int;=======>默认增加字段到表的最后,column关键字可以省略

    alter table t1 add (column) age first;=======>增加字段到表的开头

    alter table t1 add (column) age after name;=======>增加字段到name字段之后

     

  • 修改字段

    alter table t1 modify age tinyint; ========>修改字段数据类型

    alter table t1 modify age tinyint first; ========>修改字段数据类型并将字段移动到表的开头

    alter table t1 modify age tinyint after id;========>修改字段数据类型并将字段移动到字段id之后

    alter table t1 change age student_age tinyint; ========>修改字段名称和数据类型

     

  • 删除字段

    alter table t1 drop (column) age;


  • 添加索引

    alter table t1 add index idx_t1_name(name);=======>添加普通索引,index关键字可以换成key,idx_t1_name为索引的名称

    alter table t1 add unique index idx_t1_name(name);=======>添加唯一索引

     

  • 删除索引

    alter table t1 drop index idx_t1_name;


  • 删除主键

    alter table add drop primary key;

     

  • 添加主键

    alter table add primary key(id);

     

  • 添加外键

    alter table t1 add constraint cst_t1_fk foreign key(id) references t2(id);


  • 删除外键

    alter table t1 drop foreign key cst_t1_fk;

     

  • 重命名表 (下面三种语句都可以)

    rename table t1 to t2;

    alter table t1 rename t2;

    alter table t1 rename to t2;


  • 修改存储引擎或者字符集

    alter table t1 engine=myisam;

    alter table t1 default charset=latin1;



 3. drop table

    意思很简单,把表删除。

    drop table t1; =========>直接删除表,如果没有这个表会报错

    drop table if exists t1; ========>如果没有这个表不会报错,只会报一个warning



 4. truncate table

    truncate table为截断表的命令,相当于把这个表删除并立即重建。

    truncate table t1;




本文出自 “trikker” 博客,请务必保留此出处http://trikker.blog.51cto.com/7478890/1561622

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。