针对数据表的操作语句叫做数据定义语言(DDL)
CREATE TABLE <表名> ([表定义选项])[表选项][分区选项];
CREATE TABLE yytest( id int(10) NOT NULL UNIQUE PRIMARY KEY, uname VARCHAR(20) NOT NULL, sex VARCHAR(4), birth YEAR, department VARCHAR(20), address VARCHAR (50), yypolo VARCHAR (20) ); #指定数据库,创建数据表 CREATE TABLE test.yytest( id INT(10) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT, stu_id INT (10) NOT NULL, c_name VARCHAR (20), istester VARCHAR(50), grade INT(10) );
desc yytest.yytest;
show create table yytest;
不仅可以查看创建表时的详细语句,而且可以查看存储引擎和字符编码
#仅复制表结构 CREATE TABLE person_1 LIKE person; #复制表结构和数据 CREATE TABLE person_2 AS SELECT * FROM person; #仅复制表的指定字段结构 CREATE TABLE yytest_4 AS SELECT id,c_name,grade FROM yytest WHERE 1<>1; #复制表的指定字段结构和数据 CREATE TABLE yytest_5 AS SELECT id,c_name,grade FROM yytest; #查看表创建语句:没有包含主键和自增 SHOW CREATE TABLE yytest_5;
ALTER TABLE <表名> [修改操作];
ALTER TABLE <旧表名> RENAME [TO] <新表名>;
ALTER TABLE yytest RENAME TO yytest2; ALTER TABLE yytest2 RENAME yytest22;
ALTER TABLE <表名> MODIFY <字段名> <数据类型> [FIRST AFTER 已存在的字段名];
#将birth字段放在第一列 ALTER TABLE yytest22 MODIFY birth year(4) FIRST; #将birth字段放在sex之后 ALTER TABLE yytest22 MODIFY birth year(4) AFTER sex;
ALTER TABLE <表名> MODIFY <字段名> <数据类型>;
ALTER TABLE yytest22 MODIFY sex int(3);
ALTER TABLE <表名> CHANGE <旧字段> <新字段> <数据类型>;
ALTER TABLE yytest22 CHANGE sex gender VARCHAR(20);
change 不仅可以改字段名,也可以改字段数据类型
ALTER TABLE yytest22 add <字段名> <数据类型> [约束条件] [FIRST | AFTER 已经存在的字段名];
#添加字段,默认加到最后一列 ALTER TABLE yytest22 ADD phone VARCHAR(20); #添加字段到首位 ALTER TABLE yytest22 ADD phone VARCHAR(20) NOT NULL DEFAULT 2 FIRST; #添加字段到某个字段后面 ALTER TABLE yytest22 ADD phone VARCHAR(20) AFTER gender;
ALTER TABLE <表名> DROP <字段名>;
ALTER TABLE yytest22 DROP phone;
DROP TABLE [IF EXISTS] 表名1 [ ,表名2, 表名3 ...]
DROP TABLE IF EXISTS yytest21,yytest22;