Link Search Menu Expand Document

SELECT FROM INFORMATION_SCHEMA

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

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

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

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

Синтаксис

SELECT column_list FROM [INFORMATION_SCHEMA.]system_view_name [AS alias_name]

Параметры:

column_list

Список выбираемых столбцов. Допустимо указывать символ * для выбора всех столбцов.

system_view_name

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

alias_name

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

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

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

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

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

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

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

Ограничения

Не допускается комбинирование подзапросов к INFORMATION_SCHEMA с подзапросами к логическим базам данных.

Примеры

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

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

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