- •Практическая работа
- •Создание запроса
- •Что такое запрос?
- •Команда select
- •Выбирайте всегда самый простой способ
- •Просмотр только определенного столбца таблицы
- •Переупорядочение столбца
- •Удаление избыточных данных
- •Квалифицированный выбор при использовании предложений
- •Реляционные операторы
- •Булевы операторы
- •Оператор in
- •Оператор between
- •Оператор like
- •Null оператор
- •Использование not со специальными операторами
- •Практическая часть.
- •Контрольные вопросы
- •Практическая работа
- •Теоретическая часть Что такое агрегатные функции?
- •Как использовать агрегатные функции?
- •Специальные атрибуты count
- •Использование count со строками, а не значениями
- •Включение дубликатов
- •Агрегаты построенные на скалярном выражении
- •Предложение group by
- •Предложение having
- •Не делайте вложенных агрегатов
- •Формирование выводов запросов Скалярное выражение с помощью выбранных полей
- •Помещение текста в вашем выводе запроса
- •Упорядочение вывода полей
- •Упорядочение с помощью многочисленных столбцов
- •Упорядочение агрегатных групп
- •Упорядочение с помощью оператора null
- •Запрашивание многочисленных таблиц также как одной Объединение таблиц
- •Имена таблиц и столбцов
- •Создание объединения
- •Объединение таблиц через справочную целостность
- •Объединения таблиц по равенству значений в столбцах и другие виды объединений
- •Объединение более двух таблиц
- •Практическая часть
- •Контрольные вопросы:
- •Практическая работа
- •Теоретическая часть Объединение таблицы с собой Как делать объединение таблицы с собой?
- •Псевдонимы
- •Устранение избыточности
- •Проверка ошибок
- •Больше псевдонимов
- •Еще больше комплексных объединений
- •Вставка одного запроса внутрь другого Как работает подзапрос?
- •Значения, которые могут выдавать подзапросы
- •Distinct с подзапросами
- •Предикаты с подзапросами являются необратимыми
- •Использование агрегатных функций в подзапросах
- •Использование подзапросов которые выдают много строк с помощью оператора in
- •Подзапросы выбирают одиночные столбцы
- •Использование выражений в подзапросах
- •Подзапросы в предложении having
- •Практическая часть
- •Контрольные вопросы:
- •Практическая работа
- •Теоретическая и практическая часть Использование оператора exists
- •Как работает exists?
- •Выбор столбцов с помощью exists
- •Комбинация из exists и объединения
- •Использование not exists
- •Exists и агрегаты
- •Более удачный пример подзапроса
- •Использование операторов any, all, и some
- •Специальные операторы any или some
- •Использование операторов in или exists вместо оператора any
- •Как any может стать неоднозначным
- •Специальный оператор all
- •Равенства и неравенства
- •Правильное понимание any и all
- •Как any, all, и exist поступают с отсутствующими и неизвестными данными
- •Когда подзапрос возвращается пустым
- •Any и all вместо exists с пустым указателем (null)
- •Использование count вместо exists
- •Использование предложения union Объединение многочисленных запросов в один
- •Когда вы можете делать объединение между запросами ?
- •Union и устранение дубликатов
- •Использование строк и выражений с union
- •Использование union с order by
- •Внешнее объединение
- •Практическая часть
- •Контрольные вопросы:
- •Литература
Использование not со специальными операторами
Он противоположен реляционным операторам, которые должны иметь оператор NOT - вводимым выражением. Например, если мы хотим устранить NULL из нашего вывода, мы будем использовать NOT, чтобы изменить на противоположное значение предиката:
SELECT * FROM Customers WHERE city IS NOT NULL;
Другими словами нужно найти все заполненные строки в столбце city.
При отсутствии значений NULL(как в нашем случае), будет выведена вся таблица Заказчиков. Аналогично можно ввести следующее
SELECT * FROM Customers WHERE NOT city IS NULL;
- что также приемлемо.
Мы можем также использовать NOT с IN:
SELECT * FROM Salespeople WHERE city NOT IN ( 'London', 'San Jose' );
А это - другой способ подобного же выражения
SELECT * FROM Salespeople WHERE NOT city IN ( 'London', 'San Jose' );
Вывод для этого запроса показывается в Рисунке 21.
Таким же способом Вы можете использовать NOT BETWEEN и NOT LIKE.
Рисунок 21 Использование NOT с IN
Практическая часть.
Выдите столбцы (Номер операции, сумма, дата) из таблицы Orders.
Напишите запрос который вывел бы все строки из таблицы Заказчиков для которых номер продавца = 1001.
Напишите запрос который вывел бы столбцы из таблицы Продавцов в следующем порядке: Город, имя продавца, имя продавца, коммисионные.
Напишите команду SELECT которая вывела бы рейтинг, сопровождаемую именем каждого заказчика в San Jose из таблицы Заказчики.
Напишите запрос который вывел бы номера продавцов из таблицы продажи без повторений.
Напишите запрос который сможет вывести все продажи со значениями суммы выше чем 1000.
Напишите запрос который может выдать вам поля Имя и Город для всех продавцов в Лондоне с комиссионными выше .10 .
Напишите запрос к таблице Заказчиков чей вывод может включить всех заказчиков с оценкой =< 100, если они не находятся в Риме.
Что может быть выведено в результате следующего запроса ?
SELECT * FROM Orders WHERE (amt < 1000 OR NOT (odate = #03.10.1990# AND cnum > 2003 ));
Что может быть выведено в результате следующего запроса ?
SELECT * FROM Orders WHERE NOT ((odate = #03.10.1990# OR snum > 1006) AND amt > = 1500 );
Как можно проще переписать такой запрос и каков результат?
SELECT snum, sname, city, comm FROM Salespeople WHERE ( comm > + .12 OR comm < .14 );
Напишите запрос который мог вывести все продажи на 3 или 4 Октября 1990.
Напишите запрос который выберет всех заказчиков обслуживаемых продавцами Peel или Motika.
Напишите запрос, который может вывести всех заказчиков чьи имена начинаются с буквы попадающей в диапазон от A до G.
Напишите запрос который выберет всех пользователей чьи имена начинаются с буквы C.
Напишите запрос который выберет все продажи имеющие нулевые значения или NULL в поле amt(сумма).
Контрольные вопросы
Что пишется в SELECT и FROM?
Какой знак применяется для вывода полного списка столбцов?
Как удалить двойные значения?
В какой команде можно написать условие?
Что такое реляционный оператор? Приведите примеры.
Приведите примеры булевых операторов?
Что такое оператор IN?
Что такое оператор BETWEEN?
Что такое оператор LIKE?
Для чего используют * и ??
