1. 查看表的基本结构语句 DESCRIBE
用 DESCRIBE/DESC 语句可以查看表的字段信息,其中包括字段名、字段数据类型、是否为主键、是否有默认值等。
语法规则如下:
DESCRIBE 表明;
或者简写为:
DESC 表明;
【例】 分别使用 DESCRIBE 和 DESC 语句查看表 tb_dept1 和表 tb_emp1 的表结构。
查看 tb_dept1 表的结构,SQL 语句及执行结构如下:
mysql> DESCRIBE tb_dept1;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id | int(11) | 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(11) | YES | | NULL | |
| name | varchar(25) | YES | | NULL | |
| deptId | int(11) | YES | | NULL | |
| salary | float | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
【注】:
NULL:表示该列是否可以存储 NULL 值。
Key: 表示该列是否已编制索引。PRI 表示该列是表主键的一部分;NUI 表示该列是 UNIQUE 索引的一部分;MUL 表示在列中某个给定值允许出现多次。
Default: 表示该列是否有默认值,如果有,值是多少。
Extra:表示可以获取的与给定列有关的附加信息,例如 AUTO_INCREMENT等。
2. 查看表的详细结构语句 SHOW CREATE TABLE
用 SHOW CREATE TABLE 语句可以显示创建表时的 CREATE TABLE 语句,
语法格式如下:
SHOW CREATE TABLE <表明\G>;
如果不加 "\G" 参数,显示的结果可能比较混乱,加上之后,显示的结果更加直接。
【例】 使用 SHOW CREATE TABLE 语句查看 tb_emp1 的详细信息,结果如下:
mysql> SHOW CREATE TABLE tb_emp1;
+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| tb_emp1 | CREATE TABLE `tb_emp1` (
`id` int(11) DEFAULT NULL,
`name` varchar(25) DEFAULT NULL,
`deptId` int(11) DEFAULT NULL,
`salary` float DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
使用了 "\G" 参数后结果:
mysql> SHOW CREATE TABLE tb_emp1\G
*************************** 1. row ***************************
Table: tb_emp1
Create Table: CREATE TABLE `tb_emp1` (
`id` int(11) DEFAULT NULL,
`name` varchar(25) DEFAULT NULL,
`deptId` int(11) DEFAULT NULL,
`salary` float DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
【注】参考于清华大学出版社《MySQL数据库应用案例课堂》2016年1月第1版