Представления в Informix
Создание представлений может улучшить время ответов на запросы путем ограничения количество таблиц и столбцов, в которых выполняется поиск при запросе данных. Можно создать представления, которые отображаются в клиентских приложениях в качестве классов объектов или непространственных таблиц. Представление может ссылаться на отдельную таблицу или класс объектов, а также можно создать представления для объединения данных из нескольких таблиц.
Любой пользователь, имеющий необходимые разрешения, может создать представления с помощью SQL или команды sdetable. Кроме того, представления можно использовать для редактирования данных, если соблюдаются определенные требования. Сведения о правах доступа, необходимых для создания или изменения видов, можно получить в Информационном центре IBM Informix Dynamic Server для вашей версии.
В базах данных Informix определения представлений сохраняются в таблице каталога sysviews.
Таблица системного каталога sysviews хранит информацию о представлении
При создании представлений в базе данных Informix с использованием SQL или команды sdetableя представления определяются в таблице системного каталога sysviews. Поэтому можно выполнить запрос к таблице системного каталога sysviews для поиска определения каждого представления в базе данных.
Таблица системного каталога sysviews содержат следующие столбцы:
Имя (Name) |
Тип |
Описание |
---|---|---|
tabid |
целое |
ID представления |
seqno |
Smallint |
Номер строки выражения SELECT, которое используется для создания вида |
viewtext |
char(64) |
Выражение, используемое для создания представления |
Можно сначала выполнить запрос к таблице системного каталога systables для поиска идентификатора tabid нужного представления. Таблица системного каталога systables хранит запись для каждого объекта базы данных, однако можно выполнить запрос к ней таким образом, чтобы получить только представления, как показано в приведенном ниже примере:
SELECT *
FROM informix.systables
WHERE tabtype = 'V';
После нахождения представления, для которого следует просмотреть определение, выполните запрос к таблице sysviews.
SELECT *
FROM informix.sysviews
WHERE tabid = <view_id>;