Должны ли в составном запросе быть одинаковыми и типы данных, и длины столбцов, входящих в оператор запросов?
Нет. Одинаковыми должны быть только типы данных. Длины столбцов могут отличаться.
Задания практических занятий разделены на тесты и упражнения. Тесты предназначены для проверки общего уровня понимания рассмотренного материала. Упражнения дают возможность применить на практике идеи, обсуждавшиеся в ходе текущего урока, в комбинации с идеями из предыдущих уроков. Мы рекомендуем ответить на тестовые вопросы и выполнить упражнения прежде, чем продолжать дальнейшее чтение книги. Ответы можно проверить по Приложению Б, "Ответы".
1. Правильно ли составлены приведенные ниже составные запросы? Если нет, то что в них следует исправить? В операторах используются следующие таблицы EMPLOYEE PAY TBL И EMPLOYEE PAY TBL.
EMP ID LAST NAME FIRST NAME MIDDLE NAME ADDRESS CITY STATE ZIP PHONE PAGER | VARCHAR2 ( 9 ) VARCHAR2 (15) VARCHAR2 (15) VARCHAR2 (15) VARCHAR2 (30) VARCHAR2 (15) CHAR ( 2 ) NUMBER (5) CHAR (10) CHAR (10) | NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL | ||
CONSTRAINT EMP | _PK PRIMARY KEY | (EMP_ID) | ||
EMP ID POSITION DATE HIRE PAY RATE | VARCHAR2 ( 9 ) VARCHAR2 (15) DATE NUMBER (4,2) | NOT NULL NOT NULL NOT NULL | Ключевое поле |
DATE_LAST-RAISE DATE SALARY NUMBER(8,2) BONUS NUMBER(6,2)
CONSTRAINT EMP_FK FOREIGN KEY (EMP_ID) REFERENCED
EMPLOYEE_TBL (EMP_ID)
a. SELECT EMP_ID, LAST_NAME, FIRST_NAME FROM EMPLOYEEJTBL UNION SELECT EMP_ID, POSITION, DATE_HIRE
FROM EMPLOYEE_PAY_TBL;
6. SELECT EMP_ID FROM EMPLOYEEJTBL UNION ALL
SELECT EMP_ID FROM EMPLOYEE_PAY_TBL ORDER BY EMP_ID;
B. SELECT EMP_ID FROM EMPLOYEE_PAY_TBL INTERSECT
SELECT EMP_lD FROM EMPLOYEEJTBL ORDER BY 1;
2. Свяжите описания задач операторов с подходящими командами.
_______
а. Показать совпадающие данные UNION
б. Вернуть только те строки первого за- INTERSECT
проса, которым имеются эквивааенты UNION ALL
во втором запросе FXPFPT
в. Показать данные без повторений
г. Вернуть строки первого запроса, не
возвращаемые вторым
Выполните упражнения для следующих таблиц.
а. Показать совпадающие данные б. Вернуть только те строки первого запроса, которым имеются эквивааенты во втором запросе в. Показать данные без повторений г. Вернуть строки первого запроса, не возвращаемые вторым | UNION INTERSECT UNION ALL EXCEPT |
CUST ID CUST NAME CUST ADDRESS CUST CITY COST STATE CUST ZIP CUST PHONE CUST_FAX | VARCHAR2 (10) VARCHAR2 (30) VARCHAR2 (20) VARCHAR2 (15) CHAR ( 2 ) NUMBER ( 5 ) NUMBER (10) NUMBER (10) | NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL | Ключевое поле | ||
ORD NUM CUST ID PROD ID QTY ORD DATE | VARCHAR2 (10) VARCHAR2 (10) VARCHAR2 (10) NUMBER (6) DATE | NOT NULL NOT NULL NOT NULL NOT NULL | Ключевое поле |
1. Запишите составной запрос, возвращающий имена всех покупателей (C(JST_NAME), разместивших заказы.
2. Запишите составной запрос, возвращающий имена всех покупателей (CUST_NAME), не разместивших заказы.
16-й час Использование индексов для ускорения поиска данных
В ходе этого урока вы узнаете о том, как можно повысить скорость рабогы операторов SQL с помощью создания и использования индексов таблиц.
Сначала будет рассмотрено использование команды CREATE INDEX, с помощью которой создаются индексы таблиц, а затем использование самих индексов.
Основными на этом уроке будут следующие темы.
• Создание индексов
• Принципы работы индексов
• Различные типы индексов
• Когда следует использовать индексы?
• Когда не следует использовать индексы?