一查看所有表
1.1语法
sql
show tables;

二创建表
2.1语法
sql
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
field datatype [约束] [comment '注解内容']
[, field datatype [约束] [comment '注解内容']] ...
) [engine 存储引擎] [character set 字符集] [collate 排序规则];
• TEMPORARY: 表示创建的是一个临时表
• field:列名
• datatype:数据类型
• comment:对列的描述或说明
• engine:存储引擎,不指定则使用默认存储引擎
• character set:字符集,不指定则使用默认字符集
• collate:排序规则,不指定则使用默认排序规则
详细的创建表语法参考官方网站:
https://dev.mysql.com/doc/refman/8.0/en/create-table.html
MySQL :: MySQL 8.0 Reference Manual :: 15.1.20 CREATE TABLE Statement
15.1.20 CREATE TABLE Statement
2.2示例
2.2.1创建一个用户表,其中包含用户编号、用户名、密码、生日,并指定字符集为utf8mb4,排序规则为utf8mb4_0900_ai_ci
sql
mysql> create table users (
id bigint,
name varchar(20) comment '用户名',
password char(32) comment '密码是32位的md5值',
birthday date comment '生日'
) CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;
2.2.2创建一个表并指定存储引擎为MyISAM
sql
create table t_myisam (
id bigint,
name varchar(20) comment '用户名'
) engine = MyISAM;

2.3表在磁盘上对应的文件
• 创建一个存储引擎为InnoDB 的表时,会在对应的数据库目录下生成一个用来存储真实数据的物
理文件,命名格式为表名.ibd ,以当前为例会在java01 目录下生成一个users.ibd 的数据
文件
• 创建一个存储引擎为MyISAM 的表时,会在对应的数据库目录下分别生成三个以不同后缀名结尾
的文件,分别是表名.MYD ( MYData )的数据文件, 表名.MYI ( MYIndex ) 的索引文件,以
表名.sdi 的表信息描述文件(JSON格式)
在8.0

2.4创建数据加时使用校验语句[if not exists]
sql
create table users (
id int,
name varchar(20)
)
show warnings;

sql
CREATE TABLE IF NOT EXISTS users (
id INT,
name CHAR(10)
);

三查看表结构
3.1语法
sql
desc 表名;
3.2示例

• Field:表中的列名
• Type:列的数据类型
• Null:该列的值是否允许为Null
• Key:该列的索引类型
• Default:该列的默认值
• Extra:扩展信息
四修改表
在项目的实际开发中,随着版本的迭代和需求的变更,经常会对表结构进行调整,比如向现有表中添加列,删除列,或者修改某列的列名、数据类型或长度,这时就需要对表进行修改操作。
4.1语法
sql
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:删除表中现有的列
• RENAME COLUMN:重命名表中现有的列
• RENAME [TO | AS] new_tbl_name:重命名当前的表
详细的创建表语法参考官方网站:
https://dev.mysql.com/doc/refman/8.0/en/alter-table.html
MySQL :: MySQL 8.0 Reference Manual :: 15.1.9 ALTER TABLE Statement
15.1.9 ALTER TABLE Statement
4.2示例:
4.2.1向表中添加一列
sql
alter table users ADD assets varchar(100) comment '头像地址' after
birthday;

4.2.2修改某列的长度
sql
alter table users MODIFY assets varchar(255);

4.2.3重命名某列
sql
alter table users RENAME COLUMN assets TO avatar;

4.2.4删除某个字段
sql
alter table users DROP avatar;
4.2.5修改表名
sql
alter table users RENAME TO employee;

五删除表
5.1语法
sql
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
TEMPORARY:表示临时表
tbl_name:将要删除的表名
5.2示例
sql
drop table employee;

5.3 注意事项
• 删除表是一个危险操作,执行删除语句时一定要谨慎
• 删除表成功后,磁盘上对应的数据文件也会被删除
• 一次可以删除多个表,表与表之间用逗号隔开
六练习
• 创建一个store数据库,用来管理商店的商品、顾客和订单数据,这个数据库有以下三个表组成:
• 商品表:表名为goods,表中包含的列如下:

