文件首頁
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 參考手冊  /  ...  /  INFORMATION_SCHEMA COLUMNS 表格

28.3.8 INFORMATION_SCHEMA COLUMNS 表格

COLUMNS 表格提供表格中關於欄位的資訊。相關的 ST_GEOMETRY_COLUMNS 表格提供關於儲存空間資料的表格欄位的資訊。請參閱 第 28.3.35 節,「INFORMATION_SCHEMA ST_GEOMETRY_COLUMNS 表格」

COLUMNS 表格包含以下欄位:

  • TABLE_CATALOG

    包含欄位的表格所屬的目錄名稱。這個值永遠是 def

  • TABLE_SCHEMA

    包含欄位的表格所屬的結構描述(資料庫)名稱。

  • TABLE_NAME

    包含欄位的表格名稱。

  • COLUMN_NAME

    欄位的名稱。

  • ORDINAL_POSITION

    欄位在表格中的位置。ORDINAL_POSITION 是必要的,因為您可能想要使用 ORDER BY ORDINAL_POSITION。與 SHOW COLUMNS 不同,從 COLUMNS 表格使用 SELECT 查詢不會自動排序。

  • COLUMN_DEFAULT

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

  • IS_NULLABLE

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

  • DATA_TYPE

    欄位的資料類型。

    DATA_TYPE 值僅為類型名稱,不包含其他資訊。COLUMN_TYPE 值包含類型名稱,以及可能包含的精確度或長度等其他資訊。

  • CHARACTER_MAXIMUM_LENGTH

    對於字串欄位,以字元表示的最大長度。

  • CHARACTER_OCTET_LENGTH

    對於字串欄位,以位元組表示的最大長度。

  • NUMERIC_PRECISION

    對於數值欄位,數值精確度。

  • NUMERIC_SCALE

    對於數值欄位,數值小數位數。

  • DATETIME_PRECISION

    對於時間欄位,秒的小數部分精確度。

  • CHARACTER_SET_NAME

    對於字元字串欄位,字元集名稱。

  • COLLATION_NAME

    對於字元字串欄位,定序名稱。

  • COLUMN_TYPE

    欄位的資料類型。

    DATA_TYPE 值僅為類型名稱,不包含其他資訊。COLUMN_TYPE 值包含類型名稱,以及可能包含的精確度或長度等其他資訊。

  • COLUMN_KEY

    欄位是否已建立索引

    • 如果 COLUMN_KEY 為空,則表示該欄位未建立索引,或是僅作為多欄、非唯一索引的次要欄位。

    • 如果 COLUMN_KEYPRI,則表示該欄位為 PRIMARY KEY,或是多欄 PRIMARY KEY 中的其中一個欄位。

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

    • 如果 COLUMN_KEYMUL,則表示該欄位為非唯一索引的第一個欄位,該欄位允許重複出現相同的值。

    如果一個資料表的特定欄位適用多個 COLUMN_KEY 值,則 COLUMN_KEY 會顯示優先順序最高的那個,優先順序為 PRIUNIMUL

    如果 UNIQUE 索引不包含 NULL 值,且資料表中沒有 PRIMARY KEY,則 UNIQUE 索引可能會顯示為 PRI。如果數個欄位組成複合 UNIQUE 索引,則 UNIQUE 索引可能會顯示為 MUL;雖然這些欄位的組合是唯一的,但每個欄位仍然可以包含多個相同的值。

  • EXTRA

    任何關於特定欄位的額外資訊。在下列情況下,該值不會為空:

    • 具有 AUTO_INCREMENT 屬性的欄位會顯示 auto_increment

    • 具有 ON UPDATE CURRENT_TIMESTAMP 屬性的 TIMESTAMPDATETIME 欄位會顯示 on update CURRENT_TIMESTAMP

    • 產生的欄位會顯示 STORED GENERATEDVIRTUAL GENERATED

    • 具有表達式預設值的欄位會顯示 DEFAULT_GENERATED

  • PRIVILEGES

    您對該欄位擁有的權限。

  • COLUMN_COMMENT

    欄位定義中包含的任何註解。

  • GENERATION_EXPRESSION

    對於產生的欄位,顯示用於計算欄位值的表達式。對於非產生的欄位,此欄位為空。有關產生的欄位的資訊,請參閱 第 15.1.20.8 節「CREATE TABLE 和產生的欄位」

  • SRS_ID

    此值適用於空間欄位。它包含欄位的 SRID 值,表示儲存在欄位中值的空間參考系統。請參閱 第 13.4.1 節「空間資料類型」,以及 第 13.4.5 節「空間參考系統支援」。對於非空間欄位以及沒有 SRID 屬性的空間欄位,該值為 NULL

註解

  • SHOW COLUMNS 中,Type 顯示包含來自數個不同 COLUMNS 欄位的值。

  • 除了多位元組字元集之外,CHARACTER_OCTET_LENGTH 應該與 CHARACTER_MAXIMUM_LENGTH 相同。

  • CHARACTER_SET_NAME 可以從 COLLATION_NAME 推導出來。例如,如果您輸入 SHOW FULL COLUMNS FROM t,並且在 COLLATION_NAME 欄位中看到值為 utf8mb4_swedish_ci,則字元集為第一個底線之前的內容:utf8mb4

欄位資訊也可以從 SHOW COLUMNS 陳述式中取得。請參閱 第 15.7.7.6 節「SHOW COLUMNS 陳述式」。以下陳述式幾乎等效:

SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT
  FROM INFORMATION_SCHEMA.COLUMNS
  WHERE table_name = 'tbl_name'
  [AND table_schema = 'db_name']
  [AND column_name LIKE 'wild']

SHOW COLUMNS
  FROM tbl_name
  [FROM db_name]
  [LIKE 'wild']

關於產生的不可見主鍵欄位的資訊預設在此表格中可見。您可以透過設定 show_gipk_in_create_table_and_information_schema = OFF 來隱藏這些資訊。更多資訊請參閱 第 15.1.20.11 節「產生的不可見主鍵」