文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  SHOW COLUMNS 語法

15.7.7.6 SHOW COLUMNS 語法

SHOW [EXTENDED] [FULL] {COLUMNS | FIELDS}
    {FROM | IN} tbl_name
    [{FROM | IN} db_name]
    [LIKE 'pattern' | WHERE expr]

SHOW COLUMNS 會顯示指定表格中的欄位資訊。它也適用於檢視表。SHOW COLUMNS 只會顯示您擁有某些權限的欄位資訊。

mysql> SHOW COLUMNS FROM 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       |                |
+-------------+----------+------+-----+---------+----------------+

另一種 tbl_name FROM db_name 語法的替代方式是 db_name.tbl_name。這兩個語法是等效的。

SHOW COLUMNS FROM mytable FROM mydb;
SHOW COLUMNS FROM mydb.mytable;

選用的 EXTENDED 關鍵字會使輸出包含 MySQL 內部使用且使用者無法存取的隱藏欄位資訊。

選用的 FULL 關鍵字會使輸出包含欄位的校對和註解,以及您對每個欄位擁有的權限。

如果存在 LIKE 子句,則表示要比對的欄位名稱。可以使用 WHERE 子句,使用更一般化的條件來選擇資料列,如第 28.8 節「擴展 SHOW 語法」中所述。

資料類型可能與您根據 CREATE TABLE 語法所預期的不同,因為 MySQL 有時會在您建立或變更表格時變更資料類型。發生這種情況的條件在第 15.1.20.7 節「靜默的欄位規格變更」中描述。

SHOW COLUMNS 會顯示每個表格欄位的下列值:

  • 欄位

    欄位的名稱。

  • 類型

    欄位的資料類型。

  • 校對

    非二進位字串欄位的校對,或其他欄位的 NULL。只有在使用 FULL 關鍵字時才會顯示此值。

  • Null

    欄位的可空性。如果可以在欄位中儲存 NULL 值,則值為 YES,否則為 NO

  • 索引鍵

    欄位是否已建立索引

    • 如果 索引鍵 為空,則欄位沒有建立索引,或是僅在多欄、非唯一索引中作為次要欄位建立索引。

    • 如果 索引鍵PRI,則欄位為 PRIMARY KEY,或是多欄 PRIMARY KEY 中的其中一個欄位。

    • 如果 索引鍵UNI,則欄位為 UNIQUE 索引的第一個欄位。( UNIQUE 索引允許存在多個 NULL 值,但您可以透過檢查 Null 欄位來判斷欄位是否允許 NULL。)

    • 如果 索引鍵MUL,則欄位為非唯一索引的第一個欄位,其中允許欄位內存在給定值的多個實例。

    如果表格的給定欄位適用多個 索引鍵 值,則 索引鍵 會依照優先順序 PRIUNIMUL 顯示優先順序最高的索引鍵。

    如果 UNIQUE 索引無法包含 NULL 值,且表格中沒有 PRIMARY KEY,則可能會顯示為 PRI。如果多個欄位組成複合 UNIQUE 索引,則 UNIQUE 索引可能會顯示為 MUL;儘管欄位的組合是唯一的,但每個欄位仍然可以保留給定值的多個實例。

  • 預設值

    欄位的預設值。如果欄位具有明確的 NULL 預設值,或是欄位定義不包含 DEFAULT 子句,則此值為 NULL

  • 額外

    關於給定欄位的任何其他可用資訊。在下列情況下,此值為非空白:

    • 具有 AUTO_INCREMENT 屬性的欄位的 auto_increment

    • 對於具有 ON UPDATE CURRENT_TIMESTAMP 屬性的 TIMESTAMPDATETIME 欄位的 on update CURRENT_TIMESTAMP

    • 產生欄位的 VIRTUAL GENERATEDSTORED GENERATED

    • 具有運算式預設值的欄位的 DEFAULT_GENERATED

  • 權限

    您對欄位擁有的權限。只有在使用 FULL 關鍵字時才會顯示此值。

  • 註解

    欄位定義中包含的任何註解。只有在使用 FULL 關鍵字時才會顯示此值。

表格欄位資訊也可以從 INFORMATION_SCHEMA COLUMNS 表格中取得。請參閱第 28.3.8 節「INFORMATION_SCHEMA COLUMNS 表格」。關於隱藏欄位的擴充資訊只能使用 SHOW EXTENDED COLUMNS 取得;無法從 COLUMNS 表格取得。

您可以使用 mysqlshow db_name tbl_name 命令列出表格的欄位。

DESCRIBE 語法提供的資訊與 SHOW COLUMNS 類似。請參閱第 15.8.1 節「DESCRIBE 語法」

SHOW CREATE TABLESHOW TABLE STATUSSHOW INDEX 語法也提供關於表格的資訊。請參閱第 15.7.7 節「SHOW 語法」

預設情況下,SHOW COLUMNS 包含表格產生的隱形主鍵(如果有的話)。您可以透過設定 show_gipk_in_create_table_and_information_schema = OFF 來隱藏語法輸出中的此資訊。如需更多資訊,請參閱第 15.1.20.11 節「產生的隱形主鍵」