在本教學中,您將學習如何使用DESCRIBE
語句和MySQL SHOW COLUMNS
命令來顯示表的列。
要顯示表的所有列,請使用以下步驟:
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
命令。
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
語句來顯示表的列。