MySQL-表结构由你定义!

前言

数据库的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。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180728A0T8IH00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券