Бакалавр
Дипломные и курсовые на заказ

Использование группировок (GROUP BY)

РефератПомощь в написанииУзнать стоимостьмоей работы

Обновление с подзапросом. Установить нулевой объем поставок для всех поставщиков из Перми: Обновление множества записей. Удвоить состояние всех поставщиков, находящихся в Перми: Удаление с подзапросом. Удалить все поставки для поставщиков из Риги: Удаление множества записей. Удалить всех поставщиков из Перми: WHERE S. НОМЕР_ПОСТАВЩИКА = SP. HOMEP_ПОСТАВЩИКА) Предложение INSERT: Вычислить общий… Читать ещё >

Использование группировок (GROUP BY) (реферат, курсовая, диплом, контрольная)

Вычислить общий объем поставок для каждой детали:

SELECT НОМЕР_ДЕТАЛИ, SUM (КОЛИЧЕСТВО).

FROM SP.

GROUP BY НОМЕР_ДЕТАЛИ Результат: НОМЕР ДЕТАЛИ Р1 600.

Р2 1000.

РЗ 400.

Р4 500.

Р5 500.

Р6 100.

Запрос с использованием HAVING (Исключение всех групп, для которых не выполняется заданное условие). Выдать номера деталей, поставляемых более чем одним поставщиком:

SELECT НОМЕР_ДЕТАЛИ.

FROM SP.

GROUP BY НОМЕР_ДЕТАЛИ.

HAVING COUNT (*) > 1.

Результат: НОМЕР ДЕТАЛИ Р1.

Р2.

Р4.

Р5.

Объединение с использованием UNION

Выдать номера деталей, которые имеют вес больше 16, либо поставляются поставщиком S2 (либо то и другое):

SELECT НОМЕР_ДЕТАЛИ.

FROM P.

WHERE ВЕС > 16.

UNION.

SELECT НОМЕР_ДЕТАЛИ.

FROM SP.

WHERE НОМЕР_ПОСТАВЩИКА = 'S2'.

Результат: НОМЕР ДЕТАЛИ Р1.

Р2.

РЗ Р6.

Операции обновления

UPDATE, DELETE, INSERT. Предложение UPDATE:

UPDATE таблица.

SET поле = выражение [, поле = выражение].

[WHERE предикат].

Обновление одной записи. Изменить цвет детали Р2 на желтый, увеличить ее вес на 5 и установить значение города «неизвестный» (NULL):

UPDATE P.

SET ЦВЕТ = 'Желтый',.

ВЕС = ВЕС + 5,.

ГОРОД = NULL.

WHERE НОМЕР_ДЕТАЛИ = 'Р2'.

Обновление множества записей. Удвоить состояние всех поставщиков, находящихся в Перми:

UPDATE S.

SET СОСТОЯНИЕ = 2 * СОСТОЯНИЕ.

WHERE ГОРОД = 'Пермь'.

Обновление с подзапросом. Установить нулевой объем поставок для всех поставщиков из Перми:

UPDATE SP.

SET КОЛИЧЕСТВО = 0.

WHERE 'Пермь' =.

(SELECT ГОРОД.

FROM S.

WHERE S. HOMEP_ПОСТАВЩИКА = SP. НОМЕР_ПОСТАВЩИКА) Обновление нескольких таблиц. Изменить номер поставщика S2 на S9:

UPDATE S.

SET НОМЕР_ПОСТАВЩИКА = 'S9'.

WHERE НОМЕР_ПОСТАВЩИКА = 'S2'.

UPDATE SP.

SET НОМЕР_ПОСТАВЩИКА ='S9'.

WHERE НОМЕР_ПОСТАВЩИКА = 'S2'.

Здесь БД становится противоречивой после выполнения первой строчки UPDATE (нарушается целостность). Поэтому требуется второй UPDATE.

Предложение DELETE:

DELETE.

FROM таблица.

[WHERE предикат].

Пример 5.33. Удаление единственной записи.

Удалить поставщика S1:

DELETE.

FROM S.

WHERE НОМЕР_ПОСТАВЩИКА = ' S 1'.

Удаление множества записей. Удалить всех поставщиков из Перми:

DELETE.

FROM S.

WHERE ГОРОД = 'Пермь'.

Удалить все поставки:

DELETE.

FROM SP.

Удаление с подзапросом. Удалить все поставки для поставщиков из Риги:

DELETE.

FROM SP.

WHERE `Рига'=.

(SELECT ГОРОД.

FROM S.

WHERE S. НОМЕР_ПОСТАВЩИКА = SP. HOMEP_ПОСТАВЩИКА) Предложение INSERT:

INSERT.

INTO таблица [(поле [, поле] …)].

VALUES (константа [, константа] …).

i я константа соответствует i-му полю.

Вставка единственной записи.

INSERT.

INTO P (НОМЕР_ДЕТАЛИ, ГОРОД, ВЕС).

VALUES ('P5', 'Пермь', 12).

Можно с опущенными именами полей:

INSERT.

INTO P.

VALUES ('P5', 'Кулачок', 'Голубой', 12, 'Пермь').

Вставка множества записей. Для каждой поставляемой детали получить ее номер и общий объем поставок, сохранить результат в БД:

CREATE TABLE ВРЕМЕННАЯ.

(НОМЕР_ДЕТАЛИ CHAR (6),.

ОБЪЕМ_ПОСТАВКИ INTEGER);

INSERT.

INTO ВРЕМЕННАЯ (НОМЕР_ДЕТАЛИ, ОБЪЕМ_ПОСТАВКИ).

SELECT НОМЕР_ДЕТАЛИ, SUM (КОЛИЧЕСТВО).

FROM SP.

GROUP BY НОМЕР_ДЕТАЛИ Здесь предложение SELECT выполняется точно так же, как обычно, но результат не возвращается пользователю, а копируется в таблицу ВРЕМЕННАЯ.

Показать весь текст
Заполнить форму текущей работой