📜  显示表 sql 的列(1)

📅  最后修改于: 2023-12-03 15:26:20.554000             🧑  作者: Mango

显示表 SQL 的列

在进行数据库开发的过程中,我们经常需要查看数据库表的结构及每个字段的属性。本文将介绍如何使用 SQL 命令来显示表的列。

以下是一些常用的 SQL 命令:

DESC

DESC 命令用于显示表格的列名、数据类型、键信息和默认值等信息。

DESC table_name;

例如,我们可以通过以下命令来查看 student 表的列信息:

DESC student;

结果将类似于下面的内容:

| Field | Type | Null | Key | Default | Extra | |---------|--------------|------|-----|---------|-------| | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(20) | YES | | NULL | | | gender | enum('男','女') | YES | | NULL | | | age | tinyint(4) | YES | | NULL | | | address | varchar(100) | YES | | NULL | |

从查询结果中可以看到,我们的 student 表有 5 个列,分别是 idnamegenderageaddress

SHOW COLUMNS

SHOW COLUMNS 命令也可以显示表格的列信息。

SHOW COLUMNS FROM table_name;

例如,我们可以通过以下命令来查看 student 表的列信息:

SHOW COLUMNS FROM student;

结果将类似于下面的内容:

| Field | Type | Null | Key | Default | Extra | |---------|--------------|------|-----|---------|-------| | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(20) | YES | | NULL | | | gender | enum('男','女') | YES | | NULL | | | age | tinyint(4) | YES | | NULL | | | address | varchar(100) | YES | | NULL | |

INFORMATION_SCHEMA.COLUMNS

除了以上两个命令,我们还可以使用 INFORMATION_SCHEMA.COLUMNS 系统表来查看数据库中所有表格的列信息。

SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'table_name';

例如,我们可以通过以下命令来查看 student 表的列信息:

SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'student';

结果将类似于下面的内容:

| TABLE_CATALOG | TABLE_SCHEMA | TABLE_NAME | COLUMN_NAME | ORDINAL_POSITION | COLUMN_DEFAULT | IS_NULLABLE | DATA_TYPE | CHARACTER_MAXIMUM_LENGTH | CHARACTER_OCTET_LENGTH | NUMERIC_PRECISION | NUMERIC_SCALE | DATETIME_PRECISION | CHARACTER_SET_NAME | COLLATION_NAME | COLUMN_TYPE | COLUMN_KEY | EXTRA | PRIVILEGES | COLUMN_COMMENT | |---------------|--------------|------------|-------------|------------------|----------------|-------------|------------|---------------------------|-------------------------|-------------------|---------------|--------------------|--------------------|----------------|------------------|----------------|--------------|-----------------------|----------------| | def | test_db | student | id | 1 | NULL | NO | int | NULL | NULL | 10 | 0 | NULL | NULL | NULL | int(11) | PRI | auto_increment | select,insert,update | | | def | test_db | student | name | 2 | NULL | YES | varchar | 20 | 40 | NULL | NULL | NULL | utf8mb4 | utf8mb4_general_ci | varchar(20) | | | select,insert,update | | | def | test_db | student | gender | 3 | NULL | YES | enum | NULL | NULL | NULL | NULL | NULL | utf8mb4 | utf8mb4_general_ci | enum('男','女') | | | select,insert,update | | | def | test_db | student | age | 4 | NULL | YES | tinyint | NULL | NULL | 3 | 0 | NULL | NULL | NULL | tinyint(4) | | | select,insert,update | | | def | test_db | student | address | 5 | NULL | YES | varchar | 100 | 400 | NULL | NULL | NULL | utf8mb4 | utf8mb4_general_ci | varchar(100) | | | select,insert,update | |

注意: INFORMATION_SCHEMA.COLUMNS 系统表不支持使用 WHERE 子句查询指定的数据库名称。

结论

以上就是如何使用 SQL 命令来显示表格的列信息的方法。我们可以根据不同的需求使用不同的命令来进行列的查看和处理。