MySQL列出表的列

2019-10-16 22:55:51

在本教學中,您將學習如何使用DESCRIBE語句和MySQL SHOW COLUMNS命令來顯示表的列。

使用DESCRIBE語句

要顯示表的所有列,請使用以下步驟:

  1. 登入到MySQL資料庫伺服器
  2. 切換到特定資料庫(使用USE語句)
  3. 使用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語句來顯示表的列。