Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МетБДПос(Лобова)!!.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
3.51 Mб
Скачать

Запрос на выборку с упорядочиванием всех полей.

Записи в таблице базы данных не упорядочены. Для упорядочивания записей можно воспользоваться оператором ORDER BY

7.5. Выбрать из таблицы поставки первых пять записей отсортированных по дате поставки. (Сортировка ORDER BY записывается в конце запроса. При сортировке по убыванию, используется ключевое слово DESC. Сортировка по возрастанию ведется по умолчанию или с использованием ключевого слова ASC.

SELECT TOP 5 НАКЛАДНАЯ*

FROM НАКЛАДНАЯ

ORDER BY НАКЛАДНАЯ.ДАТА_ОТГ;

Простейшие запросы с условием

В предложении SELECT после предложения WHERE задаются условия выборки. В условиях выборки используются логические операторы = , <,>, <>,>=, ,<=, AND – логическое и, OR–логическое или, NOT – отрицание. Для построения условий могут использоваться операторы: LIKE – сравнение строковых значений. Если необходимо отобрать данные совпадение которых определяется частью строки, оставшиеся символов заменяем знаком *, например Принтер*. Для замены одного символа используется знак ?, для замены цифры #, например (918)???-????. BETWEEN …AND IN IS Null

7.8. Из таблицы товары выбрать все товары, стоимость которых больше 1000.

Запрос будет иметь вид:

SELECT ТОВАР.КОД_ТОВ, ТОВАР.НАИМ_ТОВ, ТОВАР.ЦЕНА

FROM ТОВАР

WHERE ТОВАР ЦЕНА>1000;

Групповые функции и агрегирование

Агрегирующие функции позволяют получить из таблицы сводную информацию, выполняя операции над группой строк таблицы. В запросе после оператора SELECT указывается поля, выводимые в виде таблицы. В примере 7.16. первое поле выводится наименование товара (не повторяющиеся записи), во второй столбец выводится среднее значение цены по объединенным товара имя поля указывается после служебного слова AS. Далее указывается имя таблицы, и после служебного слова GROUP BY записывается имя столбца по которому ведется группировка записей, далее после служебного слова HAVING указывается условие отбора. В запросе с группировкой условие отбора всегда указывается после слова HAVING а не после WHERE.

7.16..Вычислить среднюю стоимость поставляемых товаров. Выберете товары, средняя стоимость которых больше 5000.

SELECT ТОВАР.НАИМ_ТОВ, Avg(ТОВАР.ЦЕНА) AS СРЕДНЯЯ

FROM ТОВАР

GROUP BY ТОВАР.НАИМ_ТОВ

HAVING Avg(ТОВАР.ЦЕНА)>5000;

    1. Подзапрос

SQL позволяет использовать один запрос внутри другого. Подчиненный запрос можно использовать вместо выражения в списке полей инструкции SELECT или в предложениях WHERE и HAVING. Существует три типа подчиненных запросов:

  1. Сравнение выражения с результатом подчиненного запроса. Ключевые слова: ANY – каждый; ALL – все; SOME – некоторые.

  2. Выражение, которое должно быть найдено в наборе записей, являющихся результатом выполнения подчиненного запроса [NOT] IN.

  3. Инструкция SELECT, заключенная в круглые скобки, с предикатом [NOT] EXISTS в логическом выражении для определения, должен ли подчиненный запрос возвращать какие – либо записи.

Вложенный подзапрос

7.24. Выбрать данные обо всех поставках FDD 3,5 и их количестве, дате и коде покупателя.

SELECT ПОСТАВКА_ПЛАН.КОД_ТОВ, ПОСТАВКА_ПЛАН.КОЛ_ПОСТ,

ПОСТАВКА_ПЛАН.НОМ_ДОГ

FROM ПОСТАВКА_ПЛАН

WHERE ПОСТАВКА_ПЛАН.КОД_ТОВ IN

(SELECT ТОВАР.КОД_ТОВ FROM ТОВАР

WHERE ТОВАР.НАИМ_ТОВ ='FDD 3,5');