Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
языки БД.doc
Скачиваний:
4
Добавлен:
26.11.2018
Размер:
153.6 Кб
Скачать

Итоговые запросы

Список выбираемых полей может содержать "выражения от полей": сумму, разность, произведение, частное от деления значений полей или сложное выражение в комбинации с числовыми константами. Помимо математических операций можно применять агрегатные функции.

В качестве агрегатных функций можно использовать:

SUM() вычисляет сумму всех значений, содержащихся в столбце;

MIN() Минимальное значение;

MAX() Максимальное значение;

AVG() Среднее значение;

SUM() Сумма;

COUNT() подсчитывает количество значений, содержащихся в столбце;

COUNT(*) подсчитывает количество строк в таблице результатов запроса.

Новому полю, являющемуся выражением от других полей присваивается имя:

AS имя поля. Ключевое слово AS можно использовать для присваивания псевдонимов столбцам.

  1. Выбрать поля "Фамилия", "КодТовара", рассчитать сумму стоимости товара и доставки, название поля СуммарнаяЦена.

SELECT Pokup.Cfam, Pokup.Nkod, Ntov+Ndos AS s_m

FROM Pokup;

3_1. Выбрать поля "Cnaim", "Nzena" из 2 таб, вывести новую цену , увеличенную в 3 раза, название поля «НоваяЦена».

SELECT tovary.Cnaim, tovary.Nzena, nzena*3 AS НоваяЦена

FROM tovary;

  1. Рассчитать, используя агрегатные функции общее количество покупателей, среднюю стоимость товара, максимальную, минимальную стоимость и суммарную стоимость товара.

SELECT COUNT(cfam) AS kol_vo, AVG(ntov) AS sred, max(ntov) AS m_x, min(ndos) AS m_n

FROM Pokup;

Применение ключевого слова DISTINCT, записанного перед аргументом агрегатной функции к столбцу, приводит к удалению из него повторяющихся значений.

Отбор строк с использованием условий поиска

  1. Выберем из таблицы "Pokup" поля "Фамилия покупателя", "Код товара" и "Стоимость товара" для всех товаров с кодом больше 400 (условие выборки)

SELECT cfam, nkod, ntov

FROM Pokup

WHERE nkod>400;

Условие может строиться с использованием логической операции AND (И), OR (ИЛИ), NOT (НЕ), включать в себя операции сравнения: <, <=, >, >=, =.

  1. Выберем из таблицы "Pokup" поля "Фамилия покупателя", "Код товара" и "Стоимость товара" для всех товаров с кодом больше 400, но меньше 700.

SELECT cfam, nkod, ntov

FROM Pokup

WHERE nkod>400 And nkod<700;

6_1. Выберем из «Pokup» всех кроме Гребенева

SELECT cfam

FROM Pokup

WHERE NOT Cfam="Гребенев А. Н.";

В условиях выборки можно использовать ключевые слова: BETWEEN, IN, LIKE, IS NULL

BETWEEN – задает диапазон значений, из которого отбираются данные, верхний и нижний пределы считаются частью диапазона.

NOT BETWEENзначения не ходят в диапазон.

IN – задает список значений, с которым сравниваются отбираемые данные.

NOT IN – отбираются значения не входящие в список

LIKE – проверка на соответствие шаблону значений столбца. Шаблон - строка символ, в которую входят подстановочные знаки (* – один произвольный символ; ?-любой одиночный символ, #- любое одиночное число).

NOT LIKE – выбирает строки, которые не соответствуют шаблону.

NULLпустое поле, проверка на содержание в столбце значения NULL

При выборке пустых полей или непустых используется условие IS NULL или IS NOT NULL

  1. Выбрать из «Pokup» поля cfam, nkod, ntov, при условии, что код товара находится между 300 и 400.

SELECT cfam, nkod, ntov

FROM Pokup

WHERE nkod BETWEEN 300 AND 400;

7_1. Выбрать все поля из таблицы "Pokup", при условии, что код товара должен быть равен 310, 600 или 910.

SELECT *

FROM Pokup

WHERE Pokup.Nkod IN (310,360,910);

7_2. С помощью проверки NOT IN получить значения данных, не являющихся членами заданного списка.

SELECT *

FROM Pokup

WHERE Pokup.Nkod NOT IN (310,360,910);

7_3. Выбрать все поля из таблицы "Pokup", при условии, что фамилия клиента должна начинаться с буквы "С".

SELECT *

FROM Pokup

WHERE cfam LIKE 'С*';