Операторы манипулирования данными
Лекция 23. Операторы манипулирования данными
Для манипулирования данными, хранящимися в БД, используется группа операторов SQL - DML (Data Manipulation Language). С помощью операторов DML пользователь может загружать в таблицы новые данные, модифицировать и удалять существующие данные. В языке SQL определены три основных оператора DML:
§ INSERT – вставка;
§ UPDATE - обновление;
§ DELETE - удаление.
Оператор INSERT
Процесс ввода в таблицу базы данных новой информации обычно называется загрузкой данных. Для загрузки данных используется оператор INSERT. Для добавления к таблице новой записи используется следующая синтаксическая форма оператора INSERT:
INSERT INTO имя_таблицы
Рекомендуемые материалы
VALUES (значение_1, значение_2, … значение_М)
Список VALUES должен содержать количество значений, равное количеству полей таблицы. Причем тип данных каждого из значений, указываемых в списке VALUES, должен совпадать с типом данных поля, соответствующего этому значению. Значения, относящиеся к символьным типам и датам, должны быть заключены в апострофы. В списке значений может также использоваться значение NULL.
Пусть требуется добавить значения в таблицу «Экземпляры», в этом случае запрос на добавление будет выглядеть следующим образом:
INSERT INTO Экземпляры
VALUES (231, ‘5-272-00278-4’, 0, true, NULL, NULL)
При добавлении данных в таблицу можно заполнять не все поля, а лишь необходимые. В этом случае используется следующая синтаксическая форма оператора INSERT:
INSERT INTO имя_таблицы (имя_поля_1, имя_поля_2… имя_поля_М)
VALUES (значение_1, значение_2… Значениe_N)
Пусть требуется добавить значения в таблицу «Экземпляры», в этом случае запрос на добавление будет выглядеть следующим образом (в таблице «Экземпляры» пустые значения могли бы выставляться по умолчанию):
INSERT INTO Экземпляры (Инв_номер, ISBN, Наличие )
VALUES (231, ‘5-272-00278-4’, true)
Список полей в операторе INSERT может иметь произвольный порядок, не зависящий от порядка задания полей при создании таблицы. Однако список значений должен соответствовать порядку, в котором указаны поля, связанные с этими значениями.
Оператор UPDATE
Для изменения данных, уже занесенных в таблицу, используется оператор UPDATE. Данный оператор не добавляет новых записей в таблицу, а заменяет существующие данные новыми. Оператор UPDATE может быть применен как к одному полю таблицы (наиболее часто используемый случай), так и к нескольким полям. Количество изменяемых записей зависит от потребностей пользователя - с помощью UPDATE можно изменить как одну, так и несколько записей (вплоть до изменения значения всех записей, содержащихся в таблице).
Для изменения данных только в одном из полей таблицы используется наиболее простая форма оператора UPDATE, имеющая следующий вид:
UPDATE имя_таблицы
SET имя_поля = значение
[WHERE условие]
После ключевого слова UPDATE указывается имя таблицы, в которой модифицируются данные, после ключевого слова SET выполняется присвоение полю с заданным именем нового значения. Условие, задаваемое с помощью необязательного предложения WHERE, определяет количество записей, которые будут модифицированы. Пусть требуется изменить домашний телефон читателя с читательским билетом № 325, в этом случае мы получим следующий запрос:
UPDATE Читатели
SET Тел_дом = '6-15-48'
WHERE Номер_ЧБ = 325
Данный оператор изменит значение номера телефона только для записи, соответствующей читателю, зарегистрированному в базе данных под номером 325. Если бы мы не задали ограничительного условия в приведенном выше операторе, то значение номера телефона было бы изменено для всех записей в таблице!
С помощью оператора UPDATE можно одновременно изменять значения в нескольких полях таблицы. Для этого следует указать после ключевого слова SET не одно, а несколько полей:
UPDATE имя_таблицы
SET имя_поля_1 = значение_1.
имя_поля_2 = значение_2.
иня_поля_М = значение_Н [WHERE условие]
Использование оператора в данной форме ничем не отличается от рассмотренного ранее. Здесь точно так же нужно быть очень осторожным при формировании условия.
Удаление данных из таблицы
Удаление данных из таблицы выполняется с помощью оператора DELETE. Данный оператор полностью удаляет всю запись, а не данные из отдельных полей. Синтаксис оператора DELETE имеет следующий вид:
DELETE FROM имя_таблицы [WHERE условие]
Удаляемые записи определяются в соответствии с условием, заданным с помощью необязательного предложения WHERE. При отсутствии предложения WHERE в операторе DELETE данные будут удалены из всей таблицы.
Пусть требуется просто удалить запись читателя с читательским билетом № 325 из БД, в этом случае запрос будет выглядеть следующим образом:
DELETE FROM Читатели
WHERE Номер_ЧБ = 325
Контрольные вопросы
1. Что представляют собой операторы манипулирования данными?
2. Что общего между модифицирующими запросами MS Access и SQL?
3. Как указываются условия в модифицирующих запросах?
4. Какой синтаксис имеет оператор INSERT?
Ещё посмотрите лекцию "Интерпретирующие языки" по этой теме.
5. Какой синтаксис имеет оператор UPDATE?
6. Какой синтаксис имеет оператор DELETE?
Задания для самостоятельной работы
Задание 1. Выполните заполнение таблиц с использованием оператора INSERT.
Задание 2. Создайте запрос на обновление информации в таблицах «Читатели», «Экземпляры», «Книги»
Задание 3. Создайте запрос на списание книг, не пользующихся спросом. Можно списать только те книги, ни один экземпляр которых не находятся на руках у читателей (запрос на удаление).