24.3.5 Таблица INFORMATION_SCHEMA COLUMNS
Таблица COLUMNS предоставляет информацию о столбцах в таблицах.
Таблица COLUMNS содержит следующие столбцы:
-
TABLE_CATALOGИмя каталога, к которому относится таблица, содержащая столбец. Это значение всегда
def. -
TABLE_SCHEMAИмя схемы (базы данных), к которой относится таблица, содержащая столбец.
-
TABLE_NAMEИмя таблицы, содержащей столбец.
-
COLUMN_NAMEИмя столбца.
-
ORDINAL_POSITIONПозиция столбца в таблице.
ORDINAL_POSITIONнеобходима, так как вы можете захотеть сказатьORDER BY ORDINAL_POSITION. В отличие отSHOW COLUMNS,SELECTиз таблицыCOLUMNSне имеет автоматического упорядочения. -
COLUMN_DEFAULTЗначение по умолчанию для столбца. Это
NULL, если столбец имеет явное значение по умолчаниюNULL, или если определение столбца не включает в себяDEFAULTклаузу. -
IS_NULLABLEВозможность NULL для столбца. Значение
YES, еслиNULLзначения могут быть сохранены в столбце,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индекс может отображаться какPRI, если он не может содержатьNULLзначений и нетPRIMARY KEYв таблице.UNIQUEиндекс может отображаться какMUL, если несколько столбцов образуют составнойUNIQUEиндекс; хотя комбинация столбцов уникальна, каждый столбец все еще может содержать несколько вхождений заданного значения. -
EXTRAЛюбая дополнительная информация, доступная о данном столбце. Значение непустое в следующих случаях:
-
PRIVILEGESПрава доступа, которые у вас есть к столбцу.
-
COLUMN_COMMENTЛюбой комментарий, включенный в определение столбца.
-
GENERATION_EXPRESSIONДля сгенерированных столбцов отображает выражение, используемое для вычисления значений столбца. Пустое для несгенерированных столбцов. Подробнее о сгенерированных столбцах см. Раздел 13.1.18.7, «CREATE TABLE и сгенерированные столбцы».
Примечания
В
SHOW COLUMNSотображениеTypeвключает значения из нескольких разных столбцовCOLUMNS.CHARACTER_OCTET_LENGTHдолжно быть таким же, какCHARACTER_MAXIMUM_LENGTH, за исключением многобайтовых наборов символов.CHARACTER_SET_NAMEможет быть получено изCOLLATION_NAME. Например, если вы говоритеSHOW FULL COLUMNS FROM t, и вы видите в столбцеCOLLATION_NAMEзначениеlatin1_swedish_ci, то набор символов - это то, что находится перед первой подчеркивающей чертой:latin1.
Информация о столбцах также доступна из оператора SHOW COLUMNS. См. Раздел 13.7.5.5, «Оператор 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']
© 2025 Oracle
Licensed under the GPLv2 License.