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_KEY為PRI,則表示該欄位為PRIMARY KEY,或是多欄PRIMARY KEY中的其中一個欄位。如果
COLUMN_KEY是UNI,則該欄位是UNIQUE索引的第一個欄位。(UNIQUE索引允許有多個NULL值,但您可以透過檢查Null欄位來判斷該欄位是否允許NULL)。如果
COLUMN_KEY是MUL,則該欄位是非唯一索引的第一個欄位,該索引允許在欄位內重複出現給定的值。
如果一個資料表的多個
COLUMN_KEY值適用於給定的欄位,則COLUMN_KEY會依照優先順序PRI、UNI、MUL顯示優先權最高的值。如果
UNIQUE索引不能包含NULL值,且資料表中沒有PRIMARY KEY,則可能會顯示為PRI。如果數個欄位組成一個複合UNIQUE索引,則UNIQUE索引可能會顯示為MUL;雖然這些欄位的組合是唯一的,但每個欄位仍然可以容納重複出現的給定值。EXTRA任何可用的關於給定欄位的額外資訊。在下列情況下,該值為非空值
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 節,「產生的隱形主鍵」。