W Cat - SQL за 24 часа Страница 37
- Категория: Компьютеры и Интернет / Базы данных
- Автор: W Cat
- Год выпуска: неизвестен
- ISBN: нет данных
- Издательство: неизвестно
- Страниц: 60
- Добавлено: 2019-06-19 09:31:21
W Cat - SQL за 24 часа краткое содержание
Прочтите описание перед тем, как прочитать онлайн книгу «W Cat - SQL за 24 часа» бесплатно полную версию:W Cat - SQL за 24 часа читать онлайн бесплатно
SELECT 'ЗАКАЗЧИКИ' TYPE, COUNT(*)
FROM CUSTOMER_TBL
UNION
SELECT 'СЛУЖАЩИЕ' TYPE, COUNT(*)
FROM EMPLOYEEJTBL
UNION
SELECT 'ТОВАРЫ' TYPE, COUNT(*) FROM PRODUCTS_TBL
GROUP BY 1 ORDER BY 2;
TYPE COUNT(*)
СЛУЖАЩИЕ 6
ТОВАРЫ 11
ЗАКАЗЧИКИ 15
3 строки выбраны.
Здесь выведенные данные отсортированы по столбцу 2, представляющем результаты подсчетов. Поэтому числа во втором столбце оказываются упорядоченными от меньшего к большему.
Обеспечение правильности результатовПри использовании составных операторов следует быть предельно внимательными. Например, если в составном операторе с использованием команды INTERSECT неправильно задать первый из операторов SELECT, в результате можно получить либо неполные, либо вообще неверные данные. Кроме того, всегда ли нужно исключать повторения, как это делает команда UNION, или наоборот, отображать все повторения, как это делает команда UNION ALL Необходимо ли видеть все строки, не входящие в результат второго запроса при использовании команды EXCEPT? Как видите, неправильно составленный составной запрос или неправильный порядок запросов, входящих в составной, легко может привести к неправильным результатам
Неполные данные при выводе тоже квалифицируются как неправильные данные.
РезюмеВы ознакомились с принципами использования составных запросов. На всех предыдущих уроках операторы SQL содержали только по одному запросу. В составных запросах комбинируется несколько запросов, чтобы получить требуемое множество данных. Командами связывания запросов являются команды UNION, UNION ALL, INTERSECT И EXCEPT (или MINUS). При использовании UNION В результате присутствуют данные двух запросов без повторений совпадающих строк данных. При использовании UNION ALL выводятся результаты обоих запросов, не смотря на повторения данных. При использовании INTERSECT возвращаются совпадающие в двух запросах строки данных. А команда EXCEPT (или, что то же самое, MINUS) используется тогда, когда необходимо получить результаты одного запроса, не представленные в другом. Составные запросы обеспечивают исключительную гибкость при составлении самых разных запросов, поскольку без использования составных запросов результирующие операторы могут получаться очень сложными.
Вопросы и ответыКак используются ссылки на столбцы в выражении ключевого слова GROUP BY при использовании этого ключевого слова в операторе составного запроса?
На столбцы можно ссылаться либо по именам, либо по их номерам в списке выбора, если в разных входящих в оператор запросах столбцы имеют разные имена.
Принцип работы команды EXCEPT понятен, но поменяется ли вывод, если поменять местами запросы, входящие в оператор составного запроса?
Да. При использовании EXCEPT или MINUS порядок запросов, входящих в составной запрос, оказывается очень важным. Не забывайте о том, что в этом случае возвращаются все строки первого запроса, не возвращаемые вторым. Изменение порядка запросов должно повлиять на результат.
Должны ли в составном запросе быть одинаковыми и типы данных, и длины столбцов, входящих в оператор запросов?
Нет. Одинаковыми должны быть только типы данных. Длины столбцов могут отличаться.
ПрактикумЗадания практических занятий разделены на тесты и упражнения. Тесты предназначены для проверки общего уровня понимания рассмотренного материала. Упражнения дают возможность применить на практике идеи, обсуждавшиеся в ходе текущего урока, в комбинации с идеями из предыдущих уроков. Мы рекомендуем ответить на тестовые вопросы и выполнить упражнения прежде, чем продолжать дальнейшее чтение книги. Ответы можно проверить по Приложению Б, "Ответы".
Тесты1. Правильно ли составлены приведенные ниже составные запросы? Если нет, то что в них следует исправить? В операторах используются следующие таблицы EMPLOYEE PAY TBL И EMPLOYEE PAY TBL.
EMPLOYEE_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)
EMPLOYEE PAY TBL
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
CUSTOMER_TBL
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
Ключевое поле
ORDERS TBL
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, с помощью которой создаются индексы таблиц, а затем использование самих индексов.
Основными на этом уроке будут следующие темы.
• Создание индексов
• Принципы работы индексов
• Различные типы индексов
• Когда следует использовать индексы?
• Когда не следует использовать индексы?
Что такое индекс?Упрощенно говоря, индекс - это указатель на данные в таблице. Индекс в базе данных подобен предметному указателю в книге. Например, если вы хотите просмотреть все страницы книги, на которых идет обсуждение интересующего вас предмета, вы сначала обращаетесь к предметному указателю, где все предметы перечислены в алфавитном порядке со ссылками на одну или несколько соответствующих предмету страниц. Индекс в базе данных работает точно так же в том смысле, что он направляет запрос в точности туда, где хранятся нужные данные.
Как быстрее найти нужную информацию в книге - перелистывая книгу страница за страницей, либо находя номер нужной страницы в предметном указателе? Конечно, использование предметного указателя оказывается более эффективным. Если книга большая, то таким образом можно сэкономить немало времени. Предположим, что в книге всего несколько страниц. В таком случае, конечно, проще проверить все страницы вместо того, чтобы скакать туда-сюда к предметному указателю и страницам с основным текстом. Когда индексы не используются, выполняется то, что называется полным сканированием таблиц - нечто подобное перелистыванию книги постранично от начала до конца. Полное сканирование таблиц будет обсуждаться в ходе урока 17, "Повышение эффективности работы с базой данных".
Жалоба
Напишите нам, и мы в срочном порядке примем меры.