前言
数据库的DDL(datadefinelanguage)操作,主要是用在定义或者改变表结构、数据类型、表之间的链接关系和约束等初始化工作。一般在的时候会先自动提交之前没有提交的事务,然后在操作。
MySQL中操作表的DDL语句
1、创建表
CREATETABLEtable_name(col1type[,col2type,....]))ENGINE=存储引擎DEFAULTCHARACTER=字符集COLLATE=校对规则;
例如:
CREATETABLEt1(idint,namevarchar(32))ENGINE=InnoDBDEFAULTCHARSET=utf8COLLATE=utf8_bin;
注意:一般ENGINE=存储引擎DEFAULTCHARACTER=字符集COLLATE=校对规则这些都会有默认的参数,如果没有指定就会按照默认参数进行创建。
2、删除表
DROPTABLEtable_name;
例如:
DROPTABLEtest.t1;
删除test数据库里面的t1表。
3、清空表数据
TRACATETABLEtest.t1;
清空test数据库t1表的数据。
4、复制表
CREATETABLEnew_table_nameSELECT*FROMtable_name;
例如:
CREATETABLEt1_SELECT*FROMt1;
这个经常在修改某张表的时候,进行快速的备份,如果修改不成功可以马上还原回去。
5、增加列
ALTERTABLEtable_nameADDCOLUMNcol_nametype;
例如:
ALTERTABLEt1ADDCOLUMNageintdefault0;
一般随着业务的需求,会有增加字段的需求。
6、删除列
ALTERTABLEtable_nameDROPcol_name;
例如:
ALTERTABLEt1DROPage;
一般是不需要删除,不想用就放着不用就好了。
7、、修改列名
ALTERTABLEtablenameCHAGEoldnewnewtype;
例如:
ALTERTABLEt1CHANGEagelearn_classvarchar(32);
不仅可以修改成名也可以修改类型,如果遇到可以转换的数值或者字符串就直接转换,如果不能转换就设置成类型默认值。数据量大操作会很慢哦。
8、修改列的类型
ALTERTABLEtable_nameMODIFYcolumne1newtype;
例如:
ALTERTABLEt1MODIFYlearn_classint;
总结
在生产环境中,很少对表字段进行修改或者删除了,会引起锁表的,慎操作,建议在临时表操作,然后再rename。