前言
数据库的DDL(data define language)操作,主要是用在定义或者改变表结构、数据类型、表之间的链接关系和约束等初始化工作。一般在的时候会先自动提交之前没有提交的事务,然后在操作。
MySQL中操作表的DDL语句
1、创建表
CREATE TABLE table_name (col1 type [,col2 type ,....])) ENGINE=存储引擎 DEFAULT CHARACTER=字符集 COLLATE=校对规则;
例如:
CREATE TABLE t1 ( id int , name varchar(32)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
注意:一般 ENGINE=存储引擎 DEFAULT CHARACTER=字符集 COLLATE=校对规则这些都会有默认的参数,如果没有指定就会按照默认参数进行创建。
2、删除表
DROP TABLE table_name ;
例如:
DROP TABLE test.t1;
删除test数据库里面的t1表。
3、清空表数据
TRACATE TABLE test.t1;
清空test数据库t1表的数据。
4、复制表
CREATE TABLE new_table_name SELECT * FROM table_name ;
例如:
CREATE TABLE t1_20180728 SELECT * FROM t1;
这个经常在修改某张表的时候,进行快速的备份,如果修改不成功可以马上还原回去。
5、增加列
ALTER TABLE table_name ADD COLUMN col_name type;
例如:
ALTER TABLE t1 ADD COLUMN age int default 0;
一般随着业务的需求,会有增加字段的需求。
6、删除列
ALTER TABLE table_name DROP col_name;
例如:
ALTER TABLE t1 DROP age;
一般是不需要删除,不想用就放着不用就好了。
7、、修改列名
ALTER TABLE tablename CHAGE old new newtype;
例如:
ALTER TABLE t1 CHANGE age learn_class varchar(32);
不仅可以修改成名也可以修改类型,如果遇到可以转换的数值或者字符串就直接转换,如果不能转换就设置成类型默认值。数据量大操作会很慢哦。
8、修改列的类型
ALTER TABLE table_name MODIFY columne1 newtype;
例如:
ALTER TABLE t1 MODIFY learn_class int;
总结
在生产环境中,很少对表字段进行修改或者删除了,会引起锁表的,慎操作,建议在临时表操作,然后再rename。
领取专属 10元无门槛券
私享最新 技术干货