表的DDL操作
目录
一、创建表
(1)创建表的本质是创建了文件
二、查看表结构
三、修改表
四、删除表
一、创建表
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
其中
- table_name表示创建表的名字
- fieldx 表示列名
- datatype表示该列的类型
- character set 字符集 如果没有设置字符集就默认使用所在数据库的字符集,校验规则也是一样
- 指定该表的存储引擎类型,否则就是使用系统默认的存储引擎
在已经有表存在的情况下,可以使用desc查看表的行列式
但是这里并没有显示我们comment的注释字段,可以使用之前学到的show create table 表名来查看创造该表的语句,从而得到详细描述。
(1)创建表的本质是创建了文件
在创建表的时候,我们同样可以指定使用什么搜索引擎,使用什么样的编码格式。不同的搜索引擎创建出来的表的结构,以及存储信息的文件是不同的。
其中.sdi是一个所有表公共的用来存储表结构的文件,在老版本的mysql使用的是.frm文件。
而.MYD则表示MyIsam引擎的数据;.MYI表示MyIsam引擎的的索引
如果是使用InnoDB创建的表如下:
可以看到这里多了一个.ibd文件,这其实就是InnoDB引擎创建的存储数据文件,而他的表结构同样存储在.sdi文件中。
总结
不同的版本下,这些存储引擎生成的文件类型也是不同的。
.MYD
文件存储表的数据
.MYI
文件存储表的索引
.sdi
文件存储表的元数据
.frm
文件存储表的结构定义
.idb
存储数据和索引
二、查看表结构
desc 表名;
可以使用show create table
指令查看详细的表信息,将;
号换成\G
可以帮我们格式化显示 ,有助于我们查看。
通过上图我们可以看到,其实mysql真正建表的语句和我们输入的建表语句是有些差别的,这是mysql帮我们做了优化。
三、修改表
在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。
添加列
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column
datatype]...);
修改列
ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column
datatype]...);
但是要注意一点:使用modify只能修改列的属性,比如列使用的数据类型是什么,但是并不能修改列名,如果想要修改列名,则需要使用change。change既可以修改列属性,也能修改列名。
修改列名
alter table 表名 change 列名 新列名 列的属性;
修改表名
alter table 旧表名 rename to 新表名;
删除列
ALTER TABLE tablename DROP (column);
四、删除表
删除表和删除库差不多,都是使用drop
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...