MySQL中desc的作用详解(mysql中desc作用)
MySQL中desc的作用详解
MySQL是一种功能强大的开源数据库管理系统,它被广泛应用于互联网应用、企业信息化系统以及数据仓库等各种场景。在MySQL中,desc是一个非常重要的命令,它可以用来查看指定表的结构信息,包括字段名、数据类型、默认值、是否为空、注释等等,这对于数据库的设计者和使用者来说都是非常有用的。
desc的语法格式:
DESCRIBE table_name;
DESC table_name;
其中,DESCRIBE和DESC是同义词,都可以用来取得表的定义信息。table_name是需要查询的表名,可以加上数据库名前缀,比如:database_name.table_name。
示例:
我们使用MySQL自带的测试数据库world,来进行一下desc命令的实例演示。
DESC city;
结果:
+————-+———-+——+—–+———+—————-+
| Field | Type | Null | Key | Default | Extra |
+————-+———-+——+—–+———+—————-+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| Name | char(35) | NO | | | |
| CountryCode | char(3) | NO | MUL | | |
| District | char(20) | NO | | | |
| Population | int(11) | NO | | 0 | |
+————-+———-+——+—–+———+—————-+
从上面的结果中,我们可以看到city表的结构信息,包括字段名,数据类型,是否为空,主键、索引等信息。如果需要更好的可读性,我们可以将result_format设置为vertical。
SET @result_format=\G;
DESC city;
结果:
*************************** 1. row ***************************
Field: ID
Type: int(11)
Null: NO
Key: PRI
Default: NULL
Extra: auto_increment
*************************** 2. row ***************************
Field: Name
Type: char(35)
Null: NO
Key:
Default:
Extra:
*************************** 3. row ***************************
Field: CountryCode
Type: char(3)
Null: NO
Key: MUL
Default:
Extra:
*************************** 4. row ***************************
Field: District
Type: char(20)
Null: NO
Key:
Default:
Extra:
*************************** 5. row ***************************
Field: Population
Type: int(11)
Null: NO
Key:
Default: 0
Extra:
在上面的示例中,我们使用了MySQL变量来设置result_format,这可以让结果以垂直格式展示,更加易于阅读。
desc在MySQL中还有许多用途,比如:
1. 查看索引信息
除了查看表结构信息,desc还可以用来查看索引信息,比如:
DESCRIBE INDEX index_name ON table_name;
示例:
DESCRIBE INDEX idx_population ON city;
结果:
+————-+————+————+————–+————-+———–+————-+———-+——–+——+————+———+—————+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+————-+————+————+————–+————-+———–+————-+———-+——–+——+————+———+—————+
| city | 1 | idx_population | 1 | Population | A | 4079 | NULL | NULL | | BTREE | | |
+————-+————+————+————–+————-+———–+————-+———-+——–+——+————+———+—————+
2. 查看存储引擎
desc还可以用来查看指定表的存储引擎类型,比如:
SHOW TABLE STATUS LIKE ‘table_name’;
示例:
SHOW TABLE STATUS LIKE ‘city’;
结果:
+——-+——–+———+————+——+—————-+————-+————-+————–+————-+—————–+————–+———–+—————-+———————+——————+————–+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options|
+——-+——–+———+————+——+—————-+————-+————-+————–+————-+—————–+————–+———–+—————-+———————+——————+————–+
| city | InnoDB | 10 | Compact | 4079| 85 | 348160 | 0 | 81920 | 7340032000 | 4080 | 2019-09-15 05:10:29 | NULL | NULL | utf8_general_ci | 247628218505704|-compact row_format=default |
从上面的结果中,我们可以看到city表的存储引擎是InnoDB,行格式为Compact。
总结:
desc作为MySQL中的一个重要命令,可以用来查看表的结构信息、索引信息、存储引擎等等。在实际应用中,我们需要掌握desc的使用方法,以便更好地管理和维护MySQL数据库。