MySQL表的操作
一、创建表
create table [if not exists] table_name (
field1 datatype1 [COMMENT '注释信息1'],
field2 datatype2 [COMMENT '注释信息2'],
field3 datatype3 [COMMENT '注释信息3']
) [CHARSET=charset_name] [COLLATE=collation_name] [ENGINE=engine_name];
注:
① [ ] 是可选项。
② field:表示列名。
③ datatype:表示列的类型。
④ CHARSET:用于指定表所采用的编码格式(若没有指定,则以所在数据库的编码格式为准)。
⑤ COLLATE:用于指定表所采用的校验规则(若没有指定,则以所在数据库的校验规则为准)。
⑥ ENGINE:用于指定表所采用的存储引擎。
⑦ COMMENT:用于对表的字段添加注释信息。
① 示例一:
② 示例二:
说明:
① 采用不同的存储引擎,创建表时所生成的文件是不一样的。
② 采用 InnoDB 存储引擎,对应生成 .frm(表结构)和 .ibd(表数据和索引)文件,共两个文件。
③ 采用 MyISAM 存储引擎,对应生成 .frm(表结构)、.MYD(表数据)和 .MYI(表索引)文件,共三个文件。
二、查看表结构
desc table_name;
注:
① Field:字段名称。
② Type:字段类型。
③ Null:是否允许为空。
④ Key:索引类型。
⑤ Default:默认值。
⑥ Extra:扩充。
三、显示创建语句
show create table table_name;
四、修改表
修改表的结构,包括修改字段名称、字段类型、字段大小、表的字符集类型、表的存储引擎等,或者添加字段、删除字段等。
// 增加
alter table table_name add field datatype [...];
// 修改
alter table table_name modify field datatype [...];
// 删除
alter table table_name drop field;
// 修改表名
alter table table_name rename [to] new_table_name;
// 修改列名
alter table table_name change field new_field datatype [...]; // 新字段需要完整定义
说明:当表创建好之后,最好不要轻易对它进行修改,因为修改表所造成的影响太大了。
① 增加一列:
新增一列 path 。
新增一列 sex 到 id 之后。
注:可以用after
将该列新增到哪一列之后。
② 删除一列:
删除一列 sex 。
③ 修改一列:
将 name 列的类型由 varchar(20) 改为 char(60) 。
④ 修改表名:
将 student 表名由 student 改为 students,再由 students 改为 stu 。
⑤ 修改列名:
将 name 列的名称由 name 改为 xingming 。
五、删除表
drop table [if exists] table_name;