- •Языки баз данных Структурированный язык запросов sql
- •Создание таблицы
- •Итоговые запросы
- •Отбор строк с использованием условий поиска
- •Запросы с группировкой
- •Сортировка таблицы результатов запроса
- •Внесение изменений в бд
- •Операторы добавления, изменения и удаления данных:
- •Values ('Кондратенко а. В.', 321);
- •Вложенные запросы
Итоговые запросы
Список выбираемых полей может содержать "выражения от полей": сумму, разность, произведение, частное от деления значений полей или сложное выражение в комбинации с числовыми константами. Помимо математических операций можно применять агрегатные функции.
В качестве агрегатных функций можно использовать:
SUM() вычисляет сумму всех значений, содержащихся в столбце;
MIN() Минимальное значение;
MAX() Максимальное значение;
AVG() Среднее значение;
SUM() Сумма;
COUNT() подсчитывает количество значений, содержащихся в столбце;
COUNT(*) подсчитывает количество строк в таблице результатов запроса.
Новому полю, являющемуся выражением от других полей присваивается имя:
AS имя поля. Ключевое слово AS можно использовать для присваивания псевдонимов столбцам.
-
Выбрать поля "Фамилия", "КодТовара", рассчитать сумму стоимости товара и доставки, название поля СуммарнаяЦена.
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;
-
Рассчитать, используя агрегатные функции общее количество покупателей, среднюю стоимость товара, максимальную, минимальную стоимость и суммарную стоимость товара.
SELECT COUNT(cfam) AS kol_vo, AVG(ntov) AS sred, max(ntov) AS m_x, min(ndos) AS m_n
FROM Pokup;
Применение ключевого слова DISTINCT, записанного перед аргументом агрегатной функции к столбцу, приводит к удалению из него повторяющихся значений.
Отбор строк с использованием условий поиска
-
Выберем из таблицы "Pokup" поля "Фамилия покупателя", "Код товара" и "Стоимость товара" для всех товаров с кодом больше 400 (условие выборки)
SELECT cfam, nkod, ntov
FROM Pokup
WHERE nkod>400;
Условие может строиться с использованием логической операции AND (И), OR (ИЛИ), NOT (НЕ), включать в себя операции сравнения: <, <=, >, >=, =.
-
Выберем из таблицы "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
-
Выбрать из «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 'С*';