Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






GROUP BY PROD_ID






 

Запрос выполняется следующим образом: заказы делятся на группы, по одной группе на каждый товар. Затем для каждой группы вычисляется максимальное и минимальное значения столбца QTY по всем строкам, входящим в группу, и генерируется одна итоговая строка результатов.

Пример 3.42. Условия отбора групп

Предложение HAVING можно использовать для отбора групп строк, участвующих в запросе. Пусть требуется найти максимальное заказанное количество каждого товара. Общее количество заказанного товара не должно превышать 20.

SELECT PROD_ID, MAX (QTY)

FROM ORDERS

GROUP BY PROD_ID

HAVING SUM (QTY)< =20

При реализации данного запроса, вначале заказы разделяются на группы по видам товаров. Затем исключаются те группы, в которых общее количество заказанного товара превышает 20. И после этого в оставшихся группах определяется максимальное заказанное количество каждого товара.

Пример 3.43. Многотабличные запросы

На практике, многие запросы считывают информацию сразу из нескольких таблиц базы данных. Например, необходимо вывести список всех заказов, а также название клиента, сделавшего заказ. Инструкция SELECT должна содержать условие отбора, которое определяет связь между столбцами таблиц ORDERS и CUST.

SELECT ORDER_NUM, CUST_NAME, PROD_ID, QTY, DATE_ORDER

FROM ORDERS, CUST

WHERE CUST.CUST_NUM=ORDERS.CUST_NUM

Приведенный запрос отличается от предыдущих, во-первых, тем, что предложение FROMсодержит не одну, а две таблицы. Во-вторых, в условии отбора WHERE CUST.CUST_NUM=ORDERS.CUST_NUM сравниваются столбцы из двух различных таблиц. Эти столбцы называются связанными.

В данном примере, столбцы, используемые из разных таблиц, имеют одинаковые имена. В этом случае необходимо указывать полные имена столбцов, которые однозначно определяют их местонахождение.

Инструкция на изменения строк имеет формат вида:

 

UPDATE < имя таблицы>

SET < имя столбца> = {< выражение> | NULL}

[, SET < имя столбца> = {< выражение> | NULL}... ]

[WHERE < условие> ]

 

Инструкция UPDATE обновляет значения в определенных предложением SET столбцах таблицы для тех строк, которые удовлетворяют условию, заданному предложением WHERE.

Новые значения столбцов могут быть пустыми (NULL), либо вычисляться в соответствии с арифметическим выражением.

Пример 3.44. Изменение строк

Пусть необходимо увеличить на 15% цену только тех товаров, которые стоят меньше 100$. Запрос, сформулированный с помощью оператора UPDATE, может выглядеть так:


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.008 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал