1. 创建表
create table table_name (
fieId1 datatype,
fieId2 datatype,
fieId3 datatype
) [character set 字符集] [collate 校验规则] [engine 存储引擎];
说明:
fieId
表示列名;datatype
表示列的类型;character set 字符集
,如果没有指定字符集,那么就默认继承该表所在数据库的字符集;collate 校验规则
,如果没有指定校验规则,那么就默认继承该表所在数据库的校验规则;engine 存储引擎
,如果没有指定存储引擎,那么就默认继承该表所在数据库的存储引擎;
上图例子中,创建了一个指定utf8
字符集和utf8_general_ci
校验集和MyISAM
存储引擎的表,同时再创建一个存储引擎为innodb
的表,观察目录结构
可以发现,不同的存储引擎,创建表的文件不一样
- 对于
MyISAM
存储引擎,创建的文件有三个
table_name.frm
:表结构table_name.MYD
:表数据table_name.MYI
:表索引- 对于
innodb
存储引擎,创建的文件有两个
table_name.frm
:表结构table_name.idb
:表数据和表索引这是因为底层存储的数据结构不一样
2. 查看表
2.1 查看数据库中所有表
show tables;
2.2 查看表结构
desc table_name
3. 修改表
在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表(虽然大家都很讨厌修改,但是甲方爸爸最大嘛)
alter table table_name add (column datatype [defalut expr][, column datatype] ...); -- 添加列
alter table table_name modify (column datatype [defalut expr][, column datatype] ...); -- 修改列
alter table table_name drop (column); -- 删除列
- 案例:对于下列结构的表进行修改
1. 添加一个保存文件路径的字段
alter table users add assets varchar(100) comment '图片路径' after birthday;
-- 插入列名为assets的一列,在birthday之后,其中comment表示注释当前列
如上所示,插入成功,并且插入新字段对原来表中数据没有影响
2. 修改name的长度最大为60
alter table users modify name varchar(60);
3. 删除password列
注意:删除字段一定要小心,字段删除后其列对应的所有数据都将会被删除
alter table users drop password;
4. 修改表名为employee
alter table users rename to employee; -- 这里to可以省略
5. 修改列名为xingming
alter table employee change name xiaoming varchar(60); -- 新字段需要完整定义(覆盖式的更新)
4. 删除表
drop [temporary] table [if exists] table_name
本节完…
drop [temporary] table [if exists] table_name
本节完…