Базы данных. Вводный курс


Выборка данных из типизированных таблиц


Приведем несколько примеров операций выборки данных из типизированных таблиц, а также кратко обсудим операции обновления таких таблиц. Для этого сначала определим структурные типы EMP_T, PROGRAMMER_T и DEPT_T, а также соответствующие типизированные таблицы (упрощенный вариант).

CREATE TYPE EMP_T AS ( EMP_NAME VARCHAR(20), EMP_BDATE DATE, EMP_SAL SALARY, DEPT REF (DEPT)) INSTANTIABLE NOT FINAL REF IS SYSTEM GENERATED INSTANCE METHOD age () RETURNS DECIMAL (3,1);

CREATE TYPE PROGRAMMER_T UNDER EMP_T AS ( PROG_LANG VARCHAR (10)) INSTANTIABLE NOT FINAL;

CREATE TYPE DEPT_T AS ( DEPT_NO INTEGER, DEPT_NAME VARCHAR(200), DEPT_MNG REF (EMP)) INSTANTIABLE REF IS SYSTEM GENERATED NOT FINAL;

CREATE TABLE EMP OF EMP_T (REF IS DEPT_ID SYSTEM GENERATED, DEPT WITH OPTIONS SCOPE DEPT);

CREATE TABLE PROGRAMMER OF PROGRAMMER_T UNDER EMP;

CREATE TABLE DEPT OF DEPT_T (REF IS EMP_ID SYSTEM GENERATED, DEPT_MNG WITH OPTIONS SCOPE EMP);

Следует отметить, что с типизированными таблицами можно работать, как с обычными таблицами. Поэтому, в частности, возможен следующий запрос.

Пример 23.1. Найти имена всех служащих, размер заработной платы которых меньше 20000.00.

SELECT EMP_NAME FROM EMP WHERE EMP_SAL < 20000.00;

В соответствии с семантикой SQL:1999, при выполнении запроса из сначала будет произведена выборка имен служащих, удовлетворяющих условию, из таблицы EMP, затем – из таблицы PROGRAMMER , и эти промежуточные результаты будут скомбинированы в окончательный результат путем применения операции объединения (UNION). Но предположим, что нас интересуют только те служащие, получающие зарплату, не превышающую 20000 руб., которые не являются программистами (). Тогда можно применить формулировку запроса, в которой присутствует спецификация ONLY:

Пример 23.2. Найти имена всех служащих, которые не являются программистами, размер заработной платы которых меньше 20000.00.

SELECT EMP_NAME FROM ONLY (EMP) WHERE EMP_SAL < 20000.00;

Естественно, в запросах к типизированным таблицам можно использовать ссылки.




Начало  Назад  Вперед



Книжный магазин