SELECT FROM INFORMATION_SCHEMA

Содержание раздела
  1. Синтаксис
    1. Поддерживаемые ключевые слова
    2. Поддерживаемые типы соединений
  2. Варианты ответа
  3. Ограничения
  4. Примеры
    1. Запрос списка всех логических БД окружения
    2. Запрос информации о сущностях логической БД
    3. Запрос имен, типов и столбцов логических сущностей

Поддерживается в версиях: 7.0 / 6.12 / 6.11 / 6.10 / 6.9 / 6.8 / 6.7 / 6.6 / 6.5 / 6.4 / 6.3 / 6.2 / 6.1 / 6.0 / 5.8 / 5.7 / 5.6 / 5.5 / 5.4 / 5.3 / 5.2 / 5.1 / 5.0.

Запрос возвращает метаданные объектов логической схемы, описанные в разделе Системные представления (INFORMATION_SCHEMA). Возможности запроса отличаются от возможностей SELECT-запроса к логическим базам данных.

Синтаксис

SELECT { * | column_name[, ... ] }
FROM [INFORMATION_SCHEMA.]system_view_name [AS alias_name]

Параметры:

column_name

Имя выбираемого столбца.
Чтобы выбрать все столбцы, укажите символ *.

system_view_name

Имя системного представления, из которого запрашивается информация. Возможные значения см. в разделе Системные представления (INFORMATION_SCHEMA).

alias_name

Псевдоним системного представления.

Префикс INFORMATION_SCHEMA перед именем системного представления опционален, если до этого был выполнен запрос USE INFORMATION_SCHEMA. Для имен системных представлений и столбцов можно использовать псевдонимы.

Поддерживаемые ключевые слова

В запросе поддерживаются следующие ключевые слова, которые должны быть указаны в порядке их перечисления:

  • JOIN ON — соединяет данные нескольких системных представлений;
  • WHERE — задает условия выбора данных;
  • GROUP BY — группирует данных;
  • ORDER BY — сортирует данных;
  • LIMIT — задает количество строк ответа.

Строковые значения столбцов в условии WHERE указывайте в верхнем регистре или с использованием ключевого слова UPPER, например, так: WHERE table_schema = 'MARKETING' или WHERE table_schema = UPPER('marketing').

Поддерживаемые типы соединений

Поддерживаются следующие типы соединений системных представлений:

  • [INNER] JOIN — внутреннее соединение,
  • LEFT [OUTER] JOIN — левое внешнее соединение,
  • RIGHT [OUTER] JOIN — правое внешнее соединение,
  • FULL [OUTER] JOIN — полное внешнее соединение,
  • CROSS JOIN — декартово произведение, ключи соединения не указываются.

Варианты ответа

В ответе возвращается:

  • объект ResultSet c выбранными записями при успешном выполнении запроса;
  • исключение при неуспешном выполнении запроса.

Ограничения

  • Не допускается комбинирование подзапросов к INFORMATION_SCHEMA с подзапросами к логическим базам данных.
  • Параметризованные запросы к информационной схеме не поддерживаются.
  • Строковые значения столбцов в условии WHERE должны быть указаны в верхнем регистре или с использованием ключевого слова UPPER.

Примеры

Запрос списка всех логических БД окружения

Запрос списка всех логических БД окружения с лексической сортировкой по возрастанию:

SELECT schema_name FROM INFORMATION_SCHEMA.schemata ORDER BY schema_name

Запрос информации о сущностях логической БД

Запрос информации о логических сущностях логической БД MARKETING:

SELECT * FROM INFORMATION_SCHEMA.tables
WHERE table_schema = 'MARKETING'

Запрос имен, типов и столбцов логических сущностей

Запрос списка имен, типов и столбцов логических сущностей окружения:

SELECT TC.table_schema, TC.table_name, TT.table_type, TC.column_name
FROM information_schema.columns AS TC
JOIN information_schema.tables AS TT
  ON TC.table_schema = TT.table_schema and TC.table_name = TT.table_name
ORDER BY TC.table_schema, TC.table_name