15.2查看数据表结构
15.2 查看数据表结构
使用SQL语句创建好数据表之后,可以查看表结构的定义,以确认表的定义是否正确。MySQL中查看表结构可以使用DESCRIBE和SHOW CREATE TABLE语句。本节将针对这两个语句分别进行详细的讲解。
15.2.1 查看表的基本结构
使用DESCRIBE/DESC语句可以查看表的字段信息,其中包括字段名、字段数据类型、是否为主键、是否有默认值等。语法规则如下:
DESCRIBE 表名;
或者简写为:
DESC 表名;
【例15.11】分别使用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表示该列是表主键的一部分。UNI表示该列是UNIQUE索引的一部分。MUL表示在列中某个给定值允许出现多次。
•Default:表示该列是否有默认值,如果有的话值是多少。
•Extra:表示可以获取的与给定列有关的附加信息,例如AUTO_INCREMENT等。
15.2.2 查看表的详细结构
使用SHOW CREATE TABLE语句可以用来显示创建表时的CREATE TABLE语句,语法格式如下:
SHOW CREATE TABLE <表名\G>;
提 示
使用SHOW CREATE TABLE语句,不仅可以查看表创建时候的详细语句,而且还可以查看存储引擎和字符编程。
如果不加‘\G’参数,显示的结果可能非常混乱,加上参数‘\G’之后,可使显示结果更加直观,易于查看。
【例15.12】使用SHOW CREATE TABLE查看表tb_emp1的详细信息,SQL语句如下:
mysql> SHOW CREATE TABLE tb_emp1; +--------+---------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------+ | Table | Create Table | +--------+---------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------+ | fruits | CREATE TABLE "fruits" ( "f_id" char(10) NOT NULL, "s_id" int(11) NOT NULL, "f_name" char(255) NOT NULL, "f_price" decimal(8,2) NOT NULL, PRIMARY KEY ("f_id"), KEY "index_name" ("f_name"), KEY "index_id_price" ("f_id","f_price") ) 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)