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

Операции группировки

Встроенные в SQL функции

SUM

Суммирование

COUNT

Количество элементов в группе

AVG

Среднее значение в группе

MAX

Максимальной значение в группе

MIN

Минимальной значение в группе

Пример 11.

Максимальный и минимальный оклад

SELECT MAX(Оклад), MIN(Оклад)

FROM Сотрудники

Группировка:

SELECT . . .

. . .

. . .

GROUP BY {поле1, поле2} [HAVING условие]

HAVING- условие, накладываемое на группу

Пример 12.

Максимальный и минимальный оклад в отделе

SELECT MAX(Оклад), MIN(Оклад)

FROM Сотрудники

GROUP BY КодОтдела

Пример 13.

Максимальный и минимальный оклад в отделах, в которых более 1 сотрудника

SELECT MAX(Оклад), MIN(Оклад)

FROM Сотрудники

GROUP BY КодОтдела

HAVING COUNT(*)>1

Пример 14.

Сотрудники с окладом выше среднего по предприятию

SELECT Фамилия

FROM Сотрудники

WHERE Оклад> (

SELECT AVG(Оклад)

FROM Cотрудники

)

К оманды модификации данных.

Модификация - ввод новых данных в таблицы, изменение данных, удаление данных из таблицы.

Удаление данных

DELETE

FROM {таблица/представление}

[WHERE условие]

Удаляется из указанной таблицы все записи, удовлетворяющие условию.

DELETE

FROM Сотрудники

WHERE Фамилия=’Иванов’

Добавление данных

INSERT

INTO {таблица/представление} (столбец [, столбец..])

VALUES ({константа/переменная}[,{константа/переменная}…])

Добавляет строку с указанными значениями.

INSERT

INTO Сотрудники (Фамилия, Имя, Отчество)

VALUES ('Иванов', 'Иван', 'Иванович')

второй вариант

INSERT

INTO {таблица/представление} (столбец [, столбец..])

подзапрос

Пример:

INSERT

INTO Начальник (фамилия, имя, отчество)

(

SELECT фамилия, имя, отчество

FROM Сотрудники

WHERE Должность= 'Инженер'

)

Изменение данных

UPDATE {таблица/представление}

SET столбец=значение [,столбец=значение]…

WHERE условие

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

UPDATE {таблица/представление}

SET столбец=значение [,столбец=значение]…

FROM {базовая таблица/представление} [псевдоним]

[,{базовая таблица/представление} [псевдоним]…]

Пример:

UPDATE Поставка

SET Цена=0

WHERE КодПоставщика IN (

SELECT КодПоставщика

FROM Поставщики

WHERE Город=’Москва’

)

Использование операций реляционой алгебры в sql.

  • UNION- объединение.

SELECT *

FROM Сотрудники UNION Начальники

  • INTERSECT – Пересечение

SELECT *

FROM Сотрудники INTERSECT Начальники

  • EXCEPT – разность

SELECT *

FROM Сотрудники EXCEPT Начальники

  • JOIN- Соединение

  1. Естественное соединение

От результата остаются только строки с совпадающими общими строками.

«Сотрудники JOIN должность» равносильно

SELECT *

FROM Сотрудники, Должность

WHERE Сотрудники.КодДолжности=Должность.КодДолжности.

  1. Тета-соединение

Соединение с тета-операцией