文件首頁
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 參考手冊  /  ...  /  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 性。如果可以在欄位中儲存 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,則可能會顯示為 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 節,「產生的隱形主鍵」