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数据库。


数据运维技术 » MySQL中desc的作用详解(mysql中desc作用)