在本教程中,您将学习如何使用DESCRIBE语句和MySQL
SHOW COLUMNS命令来显示表的列。
使用DESCRIBE语句
要显示表的所有列,请使用以下步骤:
登录到MySQL数据库服务器
切换到特定数据库(使用USE语句)
使用DESCRIBE语句
以下示例演示如何在yiibaidb数据库中显示orders表的所有列。
步骤1 - 登录到MySQL数据库。
C:\Users\Administrator>mysql
-u root -p |
步骤2 - 发出USE命令将数据库切换到yiibaidb数据库:
mysql>
USE yiibaidb;
Database changed |
步骤3 - 使用DESCRIBE语句,得到以下结果 -
mysql>
DESCRIBE orders;
+----------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra
|
+----------------+-------------+------+-----+---------+-------+
| orderNumber | int(11) | NO | PRI | NULL
| |
| orderDate | date | NO | | NULL | |
| requiredDate | date | NO | | NULL | |
| shippedDate | date | YES | | NULL | |
| status | varchar(15) | NO | | NULL | |
| comments | text | YES | | NULL | |
| customerNumber | int(11) | NO | MUL | NULL
| |
+----------------+-------------+------+-----+---------+-------+
7 rows in set |
实际上,一般使用DESC语句,它是DESCRIBE语句的缩写。 例如,以下语句等同于上面的DESCRIBE,如下所示
-
mysql>
DESC orders;
+----------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra
|
+----------------+-------------+------+-----+---------+-------+
| orderNumber | int(11) | NO | PRI | NULL
| |
| orderDate | date | NO | | NULL | |
| requiredDate | date | NO | | NULL | |
| shippedDate | date | YES | | NULL | |
| status | varchar(15) | NO | | NULL | |
| comments | text | YES | | NULL | |
| customerNumber | int(11) | NO | MUL | NULL
| |
+----------------+-------------+------+-----+---------+-------+
7 rows in set |
MySQL SHOW COLUMNS命令
获取表中列的更灵活的方法是使用MySQL SHOW COLUMNS命令。
SHOW
COLUMNS FROM table_name; |
要显示表的列,请在SHOW COLUMNS语句的FROM子句中指定表名。要显示指定数据库中不是当前数据库中的表的列定义信息,请使用以下形式:
SHOW
COLUMNS FROM database_name.table_name;
-- 例如
SHOW COLUMNS FROM mysql.user; |
或者 -
SHOW
COLUMNS FROM table_name IN database_name;
-- 例如
SHOW COLUMNS FROM user IN mysql; |
例如,要获取orders表的列,请使用SHOW COLUMNS语句,如下所示:
SHOW
COLUMNS FROM orders; |
您可以看到这个SHOW COLUMNS命令的结果与DESC语句的结果相同。
要获取有关列的更多信息,请将FULL关键字添加到SHOW COLUMNS命令中,如下所示:
SHOW
FULL COLUMNS FROM table_name; |
例如,以下语句列出了yiibaidb数据库中的payments表的所有列。
mysql>
SHOW FULL COLUMNS FROM payments \G;
*************************** 1. row ***************************
Field: customerNumber
Type: int(11)
Collation: NULL
Null: NO
Key: PRI
Default: NULL
Extra:
Privileges: select,insert,update,references
Comment:
*************************** 2. row ***************************
Field: checkNumber
Type: varchar(50)
Collation: utf8_general_ci
Null: NO
Key: PRI
Default: NULL
Extra:
Privileges: select,insert,update,references
Comment:
*************************** 3. row ***************************
Field: paymentDate
Type: date
Collation: NULL
Null: NO
Key:
Default: NULL
Extra:
Privileges: select,insert,update,references
Comment:
*************************** 4. row ***************************
Field: amount
Type: decimal(10,2)
Collation: NULL
Null: NO
Key:
Default: NULL
Extra:
Privileges: select,insert,update,references
Comment:
4 rows in set (0.02 sec)
ERROR:
No query specified
mysql> |
如您所见,SHOW FULL COLUMNS命令将排序规则,权限和注释列添加到结果集中。
SHOW COLUMNS命令允许使用LIKE运算符或WHERE子句来过滤表的列:
SHOW
COLUMNS FROM table_name LIKE pattern;
SHOW COLUMNS FROM table_name WHERE expression;
|
例如,要显示payments表中以字母c开头的列,请使用LIKE运算符,如下所示:
mysql>
SHOW COLUMNS FROM payments LIKE 'c%';
+----------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra
|
+----------------+-------------+------+-----+---------+-------+
| customerNumber | int(11) | NO | PRI | NULL
| |
| checkNumber | varchar(50) | NO | PRI | NULL
| |
+----------------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec) |
在本教程中,您已经学会了如何使用MySQL SHOW COLUMNS命令和DESC语句来显示表的列。 |