MySQL查看表结构(2种方式)
使用 SQL 语句创建好数据表之后,可以查看表结构的定义,以确认表的定义是否正确。在 MySQL 中,查看表结构可以使用 DESCRIBE 和 SHOW CREATE TABLE 语句。本文将针对这两个语句分别进行详细讲解。
语法规则如下:
示例1:分别使用 DESCRIBE 和 DESC 查看表 tb_dept1 和表 tb_emp1 的表结构。
查看 tb_dept1 表结构,SQL 语句如下:
如果不加
示例2:使用 SHOW CREATE TABLE 查看表 tb_emp1 的详细信息,SQL 语句如下:
1. 查看表基本结构语句 DESCRIBE
DESCRIBE 语句可以查看表的字段信息,其中包括字段名、字段数据类型、是否为主键、是否有默认值等。语法规则如下:
DESCRIBE 表名;
或者简写为:DESC 表名;
示例1:分别使用 DESCRIBE 和 DESC 查看表 tb_dept1 和表 tb_emp1 的表结构。
查看 tb_dept1 表结构,SQL 语句如下:
mysql> DESCRIBE tb_dept1; +-----------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+---------------+------+-----+---------+-------+ | id | int | NO | PRI | NULL | | | name | varchar(22) | NO | | NULL | | | location | varchar(50) | YES | | NULL | | +-----------+---------------+------+-----+---------+-------+查看 tb_emp1 表结构,SQL 语句如下:
mysql> DESC tb_emp1; +--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | id | int | YES | | NULL | | | name | varchar(25) | YES | | NULL | | | deptId | int | YES | | NULL | | | salary | float | YES | | NULL | | +--------+-------------+------+-----+---------+-------+其中,各个字段的含义分别解释如下:
- NULL:表示该列是否可以存储 NULL 值。
- Key:表示该列是否已编制索引。PRI 表示该列是表主键的一部分;UNI 表示该列是 UNIQUE 索引的一部分;MUL 表示在列中某个给定值允许出现多次。
- Default:表示该列是否有默认值,若有的话指定值是多少。
- Extra:表示可以获取的与给定列有关的附加信息,例如 AUTO_INCREMENT 等。
查看表详细结构语句SHOW CREATE TABLE
SHOW CREATE TABLE 语句可以用来显示创建表时的 CREATE TABLE 语句,语法格式如下:SHOW CREATE TABLE <表名\G>;
提示:使用 SHOW CREATE TABLE 语句,不仅可以查看表创建时候的详细语句,还可以查看存储引擎和字符编码。如果不加
\G
参数,显示的结果可能非常混乱,加上参数\G
之后,可使显示结果更加直观,易于查看。示例2:使用 SHOW CREATE TABLE 查看表 tb_emp1 的详细信息,SQL 语句如下:
mysql> SHOW CREATE TABLE tb_emp1; +---------+---------------------------------------------------------------------+ | Table | Create Table | +---------+---------------------------------------------------------------------+ | tb_emp1 | CREATE TABLE `tb_emp1` ( | | | `id` int DEFAULT NULL, | | | `name` varchar(25) DEFAULT NULL, | | | `deptId` int DEFAULT NULL, | | | `salary` float DEFAULT NULL | | | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci | +---------+---------------------------------------------------------------------+使用参数
\G
之后的结果如下:
mysql> SHOW CREATE TABLE tb_emp1\G *************************** 1. row *************************** Table: tb_emp1 Create Table: CREATE TABLE `tb_emp1` ( `id` int DEFAULT NULL, `name` varchar(25) DEFAULT NULL, `deptId` int DEFAULT NULL, `salary` float DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci