摘要:本文学习了如何使用DDL语句管理表。
环境
Windows 10 企业版 LTSC 21H2
MySQL 5.7.40
1 简介
1.1 定义
表是数据库中存储数据的具体结构,它由行和列组成。
表中的每一行代表一条记录,包含了按列组织的数据。
表中的每一列代表一种数据,定义了该列可以存储的数据种类。
1.2 作用
表是数据库中实际存储数据的载体,能够将数据以一种结构化的方式组织起来,便于数据的管理。
表与表之间可以通过特定的字段建立关联,从而实现复杂的数据关系。
2 操作
2.1 创建
语法:
1 | create table 表名 [表定义选项] [表选项]; |
说明:
- 表定义选项:用来创建定义表的结构,由列名(col_name)、列的定义(column_definition)以及可能的空值说明、完整性约束或表索引组成。
示例:
1 | mysql> create table test ( |
2.2 查看
查看所有表:
1 | show tables; |
查看表的创建:
1 | show create table 表名; |
查看表的状态:
1 | show table status [like '模糊查询表名'] from 数据库 \G |
说明:
- 使用
\G
符号可以垂直显示内容,并且使用\G
后不需要使用;
结束。
使用describe命令查看表的结构,可以使用desc简写:
1 | describe 表名; |
使用desc命令示例:
1 | mysql> desc test; |
说明:
- Field:列名。
- Type:类型。
- Null:表示该列是否可以存储NULL值。
- Key:表示该列是否已编制索引。PRI表示该列是主键的一部分,UNI表示该列是UNIQUE索引的一部分,MUL表示在列中某个给定值允许出现多次。
- Default:表示该列是否有默认值,如果有,值是多少。
- Extra:表示可以获取的与给定列有关的附加信息,比如AUTO_INCREMENT等。
使用show命令查看表的字段:
1 | show columns from 表名; |
使用show命令查看表的索引:
1 | show index from 表名; |
2.3 复制
语法:
1 | create table 新表名 as select * from 旧表名; |
示例:
1 | mysql> create table test_bak as select * from test; |
2.4 修改
添加列:
1 | alter table 表名 add column 新列名 [数据类型] [约束条件] [first | after 已存在的列名]; |
示例:
1 | mysql> alter table test add column age int(3) null comment '年龄' after name; |
修改列:
1 | alter table 表名 change column 旧列名 新列名 [新数据类型]; |
示例:
1 | mysql> alter table test change column name name varchar(30) not null default 'none' comment '姓名'; |
删除列:
1 | alter table 表名 drop 列名; |
示例:
1 | mysql> alter table test drop age; |
2.5 删除
删除表会删除表结构,再次使用需要重新创建。
语法:
1 | drop table [if exists] 表名; |
示例:
1 | mysql> drop table test; |
2.6 清空
清空表不会删除表结构,但是会释放表空间,重置自增序列从1开始记录。
语法:
1 | truncate table 表名; |
示例:
1 | mysql> truncate table test; |
条