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


MySQL 8.4 參考手冊  /  ...  /  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

  • 欄是否已編索引

    • 如果 Key 為空,則表示欄未編索引,或僅在多欄的非唯一索引中作為次要欄編索引。

    • 如果 KeyPRI,則表示該欄為 PRIMARY KEY,或為多欄 PRIMARY KEY 中的其中一欄。

    • 如果 KeyUNI,則表示該欄為 UNIQUE 索引的第一欄。(UNIQUE 索引允許有多個 NULL 值,但您可以檢查 Null 欄位來判斷欄是否允許 NULL。)

    • 如果 KeyMUL,則表示該欄為非唯一索引的第一欄,其中允許在欄內多次出現給定值。

    如果有多個 Key 值適用於資料表的給定欄,則 Key 會按照 PRIUNIMUL 的優先順序顯示最高優先順序的值。

    如果 UNIQUE 索引不能包含 NULL 值,且資料表中沒有 PRIMARY KEY,則 UNIQUE 索引可能會顯示為 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 資料庫名稱 資料表名稱 命令列出資料表的欄。

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 節,「產生的不可見主鍵」