- •Языки баз данных Структурированный язык запросов sql
- •Создание таблицы
- •Итоговые запросы
- •Отбор строк с использованием условий поиска
- •Запросы с группировкой
- •Сортировка таблицы результатов запроса
- •Внесение изменений в бд
- •Операторы добавления, изменения и удаления данных:
- •Values ('Кондратенко а. В.', 321);
- •Вложенные запросы
Запросы с группировкой
Условие группировки GROUP BY используется в том случае, если какое-либо поле содержит повторяющиеся значения. В этом случае записи с каждым повторяющимся значением будут выделены в отдельные группы, к которым можно применить агрегатные функции. Применение ключевого слова DISTINCT, записанного перед аргументом агрегатной функции к столбцу, приводит к удалению из него повторяющихся значений.
-
Выбрать из таблицы "Pokup" поле "Вид оплаты", сгруппировать по нему, рассчитать сумму стоимости товара и доставки для каждого вида оплаты (наличный, безналичный)
SELECT cvid, SUM(ntov+ndos)
FROM Pokup
GROUP BY cvid;
9_1. Можно использовать группировку по нескольким полям. Выбрать из таблицы "Pokup" поля "Вид оплаты" и "Код товара", сгруппировать по этим полям, рассчитать сумму стоимости товара и доставки для каждого товара и вида оплаты.
SELECT cvid, nkod, SUM(ntov+ndos)
FROM Pokup
GROUP BY Pokup.Cvid, Pokup.Nkod;
9_2. применение агрегатной функции к группе
SELECT cvid, SUM(ntov)
FROM Pokup
GROUP BY Pokup.Cvid;
Условие поиска, используемое в предложении HAVING накладываемое на группу, применяется не к отдельным строкам, а к группе в целом. В условие поиска может входить:
-
Константа;
-
Агрегатная функция;
-
Столбец группировки, который по определению имеет одно и то же значение во всех строках группы;
-
Выражение, включающее в себя перечисленные выше элементы.
На практике HAVING должно включать как минимум одну агрегатную функцию.
-
В предыдущем запросе наложить на группу суммы условие > 500 , использовать HAVING.
SELECT Pokup.Cvid, Sum(Ntov+Ndos) AS Цена, Nkod
FROM Pokup
GROUP BY Pokup.Cvid, Nkod
HAVING (Sum([Ntov]+[Ndos])>500);
Сортировка таблицы результатов запроса
Условие упорядочивания позволяет задать порядок следования записей в столбце. В качестве такового задается одно или несколько полей. По умолчанию записи располагаются в порядке возрастания. Для размещения в порядке убывания необходимо указывать ключевое слово DESC.
Использование ключевого поля TOP n , n – числовое значение, позволяет отобрать только n первых строк, причем набор строк зависит от порядка сортировки.
-
Выбрать все поля из таблицы "Tovary" в порядке возрастания цены
SELECT *
FROM Tovary
ORDER BY nzena;
10_1. Выбрать все поля из таблицы "Tovary" в порядке убывания сорта.
SELECT *
FROM Tovary
ORDER BY nsort DESC;
10_2. и 10_3. Выбрать 5 первых строк из таблицы Tovary
SELECT TOP 5 *
FROM Tovary;
Отсортировать по убыванию Nkod и выбрать опять 5 первых строк.
SELECT TOP 5 *
FROM Tovary
ORDER BY Nkod;
Внесение изменений в бд
Запрос на создание новой таблицы
Выборку, полученную в результате запроса можно сохранить в новой таблице. Для этого используется ключевое слово INTO.
SELECT Список Выбираемых Полей INTO новая таблица
FROM Список Таблиц
1. Выбрать поля "Фамилия", "Дата поступления заявки", "Стоимость товара" и направить результат в новую таблицу “tab_new”.
SELECT cfam, dpos, ntov INTO tab_new
FROM Pokup;