前面我们学习了库的操作,之后学习了MySQL中的数据类型,有了这些数据类型,我们就可以来进行表的相关操作了
1. 查看所有表
show tables;
在查看表之前,我们要先选择库
在选择了库之后,查看
2. 创建表
2.1 语法
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name(
field datatype [约束] [comment '注解内容']
[, field datatype [约束] [comment '注解内容']] ...
) [engine 存储引擎] [character set 字符集][collate 排序规则];
- TEMPORARY:表⽰创建的是⼀个临时表
- field:列名
- datatype:数据类型
- comment:对列的描述或说明
- engine:存储引擎,不指定则使⽤默认存储引擎
- characterset:字符集,不指定则使⽤默认字符集
- collate:排序规则,不指定则使⽤默认排序规则
2.2 示例
创建⼀个⽤⼾表,其中包含⽤⼾编号、⽤⼾名、密码、⽣⽇,并指定字符集为utf8mb4,排序规则为utf8mb4_0900_ai_ci
create table users(
id bigint,
`name` varchar(10) comment '用户名',
password char(32) comment '密码',
birthday date comment '生日') character set utf8mb4 collate utf8mb4_0900_ai_ci;
2.3 表在磁盘上对应的⽂件
- 创建⼀个存储引擎为
InnoDB
的表时,会在对应的数据库⽬录
下⽣成⼀个⽤来存储真实数据的物理⽂件,命名格式为表名.ibd
,以当前为例会在⽂件⽬录下⽣成⼀个users.ibd
的数据文件 - 创建⼀个存储引擎为MyISAM的表时,会在对应的数据库⽬录下分别⽣成三个以不同后缀名结尾的⽂件,分别是
表名.MYD(MYData)
的数据⽂件,表名.MYI(MYIndex)
的索引⽂件,以表名.sdi
的表信息描述⽂件(JSON格式)
2.4 创建数据加时使⽤校验语句[ifnotexists]
3. 查看表结构
3.1 语法
desc 表名;
- Field:表中的列名
- Type:列的数据类型
- Null:该列的值是否允许为Null
- Key:该列的索引类型
- Default:该列的默认值
- Extra:扩展信息
4. 修改表
4.1 语法
ALTER TABLE tbl_name [alter_option [, alter_option] ...];
alter_option: {
table_options
| ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name]
| MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name]
| DROP [COLUMN] col_name
| RENAME COLUMN old_col_name TO new_col_name
| RENAME [TO | AS] new_tbl_name
- tbl_name:要修改的表名
- ADD:向表中添加列
- MODIFY:修改表中现有的列
- DROP:删除表中现有的列
- RENAMECOLUMN:重命名表中现有的列
- RENAME[TO|AS]new_tbl_name:重命名当前的表
4.2 示例
4.2.1 向表中添加⼀列
在第一行添加一行:
alter table 表名 add 新添加的字段 first;
指定位置添加一行:
alter table 表名 add 先=新添加的字段 after 已存在字段;
4.2.2 修改某列的⻓度
alter table 表名 modify 要修改的字段;
4.2.3 重命名某列
alter table 表名 rename column 原有字段名字 to 新字段名;
4.2.4 删除某个字段
alter table 表名 drop 要删除的字段;
4.2.5 修改表名
alter table 旧表名 rename to 新表名;
5. 删除表
5.1 语法
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
- TEMPORARY:表⽰临时表
- tbl_name:将要删除的表名
5.2 注意事项
- 删除表是⼀个危险操作,执⾏删除语句时⼀定要谨慎
- 删除表成功后,磁盘上对应的数据⽂件也会被删除
- ⼀次可以删除多个表,表与表之间⽤逗号隔开