W Cat - SQL за 24 часа
- Название:SQL за 24 часа
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
W Cat - SQL за 24 часа краткое содержание
SQL за 24 часа - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
ПЛАСТИКОВЫЕ ПАУКИ
ПЛАСТИКОВЫЕ ТЫКВЫ
ПОЛОЧКА ИЗ ДУБА
СЛАДКАЯ КУКУРУЗА
ТЫКВЕННЫЕ КОНФЕТЫ
ФОНАРИ
ЦЕПОЧКА ДЛЯ КЛЮЧЕЙ
11 строк выбраны.
Этот запрос тоже возвращает 11 записей, как и два предыдущих, поскольку при объединении двух запросов с помощью команды UNION повторяющиеся в таблицах записи повторно не выводятся.
В следующем примере с помощью команды UNION комбинируются два независимых запроса.
SELECT PROD_DESC FROM PRODDCTS_TBL
UNION
SELECT LAST_NAME FROM EMPLOYEE_TBL;
PROD_DESC
GLASS
GLASS
PLEW
SPURGEON
STEPHENS
WALLACE
ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ
КОСТЮМ ВЕДЬМЫ
КОСТЮМЫ В АССОРТИМЕНТЕ
МАСКИ В АССОРТИМЕНТЕ
ПЛАСТИКОВЫЕ ПАУКИ
ПЛАСТИКОВЫЕ ТЫКВЫ
ПОЛОЧКА ИЗ ДУБА
СЛАДКАЯ КУКУРУЗА
ТЫКВЕННЫЕ КОНФЕТЫ
ФОНАРИ
ЦЕПОЧКА ДЛЯ КЛЮЧЕЙ
16 строк выбраны.
Здесь значения столбцов PROD_DESC и LAST_NAME оказываются перечисленными вместе, причем для заголовка столбца использовано имя столбца, выбранного в первом запросе.
Команда UNION ALL используется для такого объединения результатов двух операторов SELECT, в которое включаются и повторения строк. Правила использования команды UNION ALL такие же, как и правила использования UNION.
Синтаксис оператора с использованием команды UNION ALL должен быть следующим.
SELECT столбец1 [, столбец2 ]
FROM таблица1 [, габлица2 ]
[ WHERE ]
UNION ALL
SELECT столбец1 [, столбец2 ]
FROM таблица1 [, таблица2 ]
[ WHERE ]
Рассмотрим пример.
SELECT EMP_ID FROM EMPLOYEE_TBL
UNION ALL
SELECT EMP_ID FROM EMPLOYEE_PAY_TBL;
В результате табельные номера, имеющиеся в обеих таблицах, отобразятся дважды.
Следующий составной запрос отличается от составного запроса из предыдущего раздела только использованием команды UNION ALL вместо UNION.
SELECT PROD_DESC FROM PRODUCTS_TBL
UNION ALL
SELECT PROD_DESC FROM PRODUCTSJTMP;
PROD__DESC
КОСТЮМ ВЕДЬМЫ
ПЛАСТИКОВЫЕ ТЫКВЫ
ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ
ФОНАРИ
КОСТЮМЫ В АССОРТИМЕНТЕ
СЛАДКАЯ КУКУРУЗА
ТЫКВЕННЫЕ КОНФЕТЫ
ПЛАСТИКОВЫЕ ПАУКИ
МАСКИ В АССОРТИМЕНТЕ
ЦЕПОЧКА ДЛЯ КЛЮЧЕЙ
ПОЛОЧКА ИЗ ДУБА
КОСТЮМ ВЕДЬМЫ
ПЛАСТИКОВЫЕ ТЫКВЫ
ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ
ФОНАРИ
КОСТЮМЫ В АССОРТИМЕНТЕ
СЛАДКАЯ КУКУРУЗА
ТЫКВЕННЫЕ КОНФЕТЫ
ПЛАСТИКОВЫЕ ПАУКИ
МАСКИ В АССОРТИМЕНТЕ
20 строк выбраны.
Обратите внимание на то, что возвращены 20 строк (11+9), поскольку команда UNION ALL предполагает включение в вывод повторения строк.
Команда INTERSECT используется для такого комбинирования результатов двух операторов SELECT, при котором в вывод попадают только те строки из первого запроса, для которых имеются идентичные строки из второго запроса Правила использования команды INTERSECT аналогичны правилам использования команды UNION.
Синтаксис оператора с использованием команды INTERSECT должен быть следующим.
SELECT столбец1 [, столбец2 ]
FROM таблица1 [, таблица2 ]
[ WHERE ]
INTERSECT
SELECT столбец1 [, столбец2 ]
FROM таблица1 [, таблица2 ]
[ WHERE ]
Рассмотрим пример.
SELECT CUST_ID FROM CUSTOMERJTBL
INTERSECT
SELECT CUST_ID FROM ORDERSJTBL;
В результате отобразятся номера кодов только тех заказчиков, которые разместили заказы.
Следующий составной запрос аналогичен предыдущим, но в нем используется команда INTERSECT.
SELECT PROD_DESC FROM PRODUCTS_TBL
INTERSECT
SELECT PROD_DESC FROM PRODUCTS_TMP;
PROD_DESC
ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ
КОСТЮМ ВЕДЬМЫ
КОСТЮМЫ В АССОРТИМЕНТЕ
МАСКИ В АССОРТИМЕНТЕ
ПЛАСТИКОВЫЕ ПАУКИ
ПЛАСТИКОВЫЕ ТЫКВЫ
ПОЛОЧКА ИЗ ДУБА
СЛАДКАЯ КУКУРУЗА
ТЫКВЕННЫЕ КОНФЕТЫ
9 строк выбраны.
Здесь снова возвращены только 9 строк, поскольку 9 строк идентичны в выводе обоих запросов.
Команда EXCEPT комбинирует результаты двух операторов SELECT таким образом, что в вывод попадают те строки первого запроса, которым нет аналогов во втором запросе. Опять же, правила использования команды EXCEPT аналогичны правилам использования команды UNION.
Синтаксис оператора с использованием команды EXCEPT должен быть следующим.
SELECT столбец1 [, столбец2 ]
FROM таблица1 [, таблица2 ]
[ WHERE ]
EXCEPT
SELECT столбец1 [, столбец2 ]
FROM таблица1 [, таблица2 ]
[ WHERE ]
Рассмотрим пример.
SELECT PROD_DESC FROM PRODUCTS_TBL
EXCEPT
SELECT PROD_DESC FROM PRODUCTS_TMP;
PROD_DESC
ЦЕПОЧКА ДЛЯ КЛЮЧЕЙ ПОЛОЧКА ИЗ ДУБА
2 строки выбраны.
Результаты вывода показывают, что имеется две строки данных, возвращенные первым запросом, но не возвращенные вторым
В некоторых реализациях SQL вместо команды EXCEPT используется команда MINUS Проверьте по документации используемой вами реализации языка, какая именно команда используется в нем для представления функции команды EXCEPT
SELECT PROD_DESC FROM PRODUCTS_TBL
MINUS
SELECT PROD_DESC FROM PRODUCTS_TMP;
PROD_DESC
ЦЕПОЧКА ДЛЯ КЛЮЧЕЙ ПОЛОЧКА ИЗ ДУБА
2 строки выбраны
В составных запросах можно использовать ключевое слово ORDER BY Однако ключевое слово ORDER BY в них можно использовать только для упорядочения результатов окончательного вывода обоих запросов Поэтому в составном запросе допускается использовать только одно выражение с ключевым словом ORDER BY, хотя сам составной запрос может состоять из нескольких операторов SELECT На столбцы в выражении ключевого слова ORDER BY можно ссылаться как по псевдонимам, так и по их номерам в списке выбора
Синтаксис оператора с использованием ORDER BY должен быть следующим
SELECT столбец1 [, столбец2 ]
FROM таблица1 [, таблица2 ]
[ WHERE ]
КОМАНДА{UNION | EXCEPT INTERSECT | UNION ALL}
SELECT столбец1 [, столбец2 ] FROM таблица1 [, таблица2 ]
[ WHERE ]
[ ORDER BY ]
Рассмотрим пример
SELECT EMP_ID FROM EMPLOYEE_TBL
UNION
SELECT EMP_ID FROM EMPLOYEE_PAY_TBL
ORDER BY 1;
В результате вывод этого составного запроса будет упорядочен по первому столбцу каждого из составляющих запросов С помощью сортировки в составном запросе легко выявить повторяющиеся строки
Этот оператор SQL возвращает упорядоченный список табельных номеров служащих ИЗ таблиц EMPLOYEEJTBL И EMPLOYEE_PAY_TBL без повторений
Обратите внимание на то что здесь выражение ключевого слова ORDER BY ссылается на столбец по номеру 1, а не по имени
В следующем примере показано использование ключевого слова ORDER BY в составном запросе с реальными данными В выражении ключевого слова ORDER BY можно использовать имя столбца, если этот столбец присутствует и имеет одно и то же имя в каждом из составляющих оператор запросов
SELECT PROD_DESC FROM PRODUCTSJTBL
ONION
SELECT PROD_DESC FROM PRODUCTS_TBL
ORDER BY PROD_DESC;
PROD_DESC
ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ
КОСТЮМ ВЕДЬМЫ
КОСТЮМЫ В АССОРТИМЕНТЕ
МАСКИ В АССОРТИМЕНТЕ
ПЛАСТИКОВЫЕ ПАУКИ
ПЛАСТИКОВЫЕ ТЫКВЫ
Читать дальшеИнтервал:
Закладка: