Язык запросов к реляционным базам данных. Операторы манипулирования и изменения данных

Содержание

Слайд 2

Операторы манипулирования данными

Операторы манипулирования данными

Слайд 3

Операторы изменения данных Изменения данных выполняется относительно одной таблицы INSERT DELETE

Операторы изменения данных

Изменения данных выполняется относительно одной таблицы

INSERT

DELETE

Добавить записи

Удалить записи

UPDATE

Изменить записи

Изменение

данных в таблице выполняется 3-мя операциями
Слайд 4

Оператор добавления INSERT Два типа операторов INSERT - Однострочный INSERT - Многострочный INSERT

Оператор добавления INSERT

Два типа операторов INSERT

- Однострочный INSERT

- Многострочный INSERT

Слайд 5

Оператор добавления INSERT Однострочный INSERT INSERT [ INTO ] имя_таблицы [

Оператор добавления INSERT

Однострочный INSERT

INSERT [ INTO ] имя_таблицы [ (имена_столбцов) ]


VALUES (значения_столбцов)

Типы столбцов должны соответствовать значениям

Перечисление значений должно соответствовать
последовательности перечислению столбцов

Перечислены могут быть не все столбцы

значения_столбцов – это константы, функции или значения NULL

Для отсутствующих столбцов устанавливаются значения
по умолчанию или NULL, если значения по умолчанию не заданы

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

Слайд 6

Оператор добавления INSERT Пример. Добавить данные о новом служащем. INSERT INTO

Оператор добавления INSERT

Пример. Добавить данные о новом служащем.

INSERT INTO СЛУЖАЩИЕ (Код,

Имя, Возраст, КодОфиса, Должность, Дата, КодМен, План, Продажи)
VALUES (111, ‘Henay Jacobson’, 36, 13, ‘Salle Rep’, ‘13/01/09’, 101, 10000, NULL)

Если при описании таблицы СЛУЖАЩИЕ для столбцов
«Должность» задано значение по умолчанию “Salle Rep”,
«Дата» задано значение по умолчанию Data() (текущая дата),
«План» задано значение по умолчанию 10000,
«Продажи» задано значение NULL, то …

INSERT INTO СЛУЖАЩИЕ (Код, Имя, Возраст, КодОфиса, КодМен)
VALUES (111, ‘Henay Jacobson’, 36, 13, 101)

Слайд 7

Оператор добавления INSERT Многострочный INSERT INSERT [ INTO ] имя_таблицы [

Оператор добавления INSERT

Многострочный INSERT

INSERT [ INTO ] имя_таблицы [ (имена_столбцов) ]

<запрос>

а) добавление данных в архивные таблицы

<запрос> – это запрос на чтение

Использование

б) добавление данных во временные таблицы

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

INSERT INTO ЗаказАрх SELECT * FROM Заказ WHERE data Between ‘01/01/08/ and ‘31/12/08’

Слайд 8

Оператор удаления DELETE Наименьшей удаляемой единицей информации является одна строка DELETE

Оператор удаления DELETE

Наименьшей удаляемой единицей информации является одна строка

DELETE FROM имя_таблицы

[WHERE <условие_отбора>]

Оператор удаления в стандарте ANSI/ISO

<условие_отбора> - определяет условие на отбор строк на удаление

Пример. Удалить все заказы, сделанные до 15.11.08.

DELETE FROM Заказ
WHERE data < ‘15/11/08’

Пример. Удалить данные о всех служащих, принятых на работу до июля 1988 и не имеющих установленного личного плана.

DELETE FROM Служащие
WHERE data < ‘01/07/88’ and План IS NULL

Слайд 9

Оператор удаления DELETE Оператор DELETE для удаления строк с условием, связанным

Оператор удаления DELETE

Оператор DELETE для удаления строк с условием, связанным со

столбцами другой таблицы

В стандарте ANSI/ISO это реализуется через вложенный запрос
в условии WHERE

Пример. Удалить все заказы, принятые Sue Smith.

DELETE FROM Заказ
WHERE Продавец =
(SELECT Код FROM Служащие WHERE Имя = ‘Sue Smith‘ )

Пример. Удалить данные о всех клиентах, которые обслуживались служащими, у которых фактический объем продаж меньше, чем 80% плана.

DELETE FROM Клиенты
WHERE КодМен IN
(SELECT Код FROM Служащие WHERE Продажи < 0.9*План )

Слайд 10

Оператор удаления DELETE В Transact-SQL (MS SLQ Server) удаление строк с

Оператор удаления DELETE

В Transact-SQL (MS SLQ Server) удаление строк с условием,

связанным с данными других таблиц, реализовано с использованием модифицированного формата оператора DELETE

DELETE имя_таблицы FROM <условие_соединения> [WHERE <условие_отбора>]

< условие_соединения > - условие соединения основной таблицы с другими таблицами как в операторе SELECT

<имя_таблицы> INNER | LEFT | RIGHT JOIN
<имя_таблицы_соединения> ON <условие_соединения>

Пример тот же. Удалить все заказы, принятые Sue Smith.

DELETE Заказ FROM Заказ INNER JOIN Служащие
ON Заказ.Продавец = Служащие.Код
WHERE Имя = ‘Sue Smith‘

Слайд 11

Оператор удаления DELETE Пример. Удалить данные о всех клиентах, которые не

Оператор удаления DELETE

Пример. Удалить данные о всех клиентах, которые не сделали

заказов с 01.11.1989

DELETE FROM Клиенты
WHERE NOT EXISTS
(SELECT * FROM Заказ WHERE Заказчик = Код
and Дата > ‘01/11/89’)

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

Слайд 12

Оператор обновления UPDATE Наименьшей обновляемой единицей информации является значение одного столбца

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

Наименьшей обновляемой единицей информации является значение одного столбца

UPDATE имя_таблицы

SET имя_столбца = <выражение> [ , … ] [WHERE <условие_отбора> ]

Оператор обновления в стандарте ANSI/ISO

Пример. Увеличить все личные планы служащих на 5%.

UPDATE Служащие SET План = План*1.05

<выражение> включает наименование столбцов, констант, функций и выполняемых над ними операции

Слайд 13

Оператор обновления UPDATE Пример. Перевести всех служащих из офиса с кодом

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

Пример. Перевести всех служащих из офиса с кодом 12

в офис с кодом 11 и понизить их личные планы на 5%.

UPDATE Служащие SET План = План*0.95, SET КодОфиса = 11
WHERE КодОфиса = 12

Условия выполнения оператора UPDATE

Каждый столбец обновления (SET для одного столбца) должен встретиться только один раз

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

Если в WHERE содержится ссылка на обновляемый столбец, то используется значение этого столбца в текущей строке до обновления.

Слайд 14

Оператор обновления UPDATE Оператор UPDATE для обновления строк с условием, связанным

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

Оператор UPDATE для обновления строк с условием, связанным со

столбцами другой таблицы

в стандарте ANSI/ISO реализуется через вложенный запрос
в условии WHERE,

в Transact-SQL (MS SLQ Server) - с использованием модифицированного формата оператора UPDATE:

UPDATE имя_таблицы SET имя_столбца = <выражение> [ , … ] FROM <таблицы>[ ,... ] | <условие_соединения>
[WHERE <условия_отбора_соединения> ]

<таблицы> - это список таблиц, используемых в условиях проверки

<условие_соединения> - то же, что в операторе DELETE