Операторы манипулирования данными.
К этой группе относятся операторы добавления, изменения и удаления записей.
INSERT – добавление информации к таблице
Синтаксис:
INSERT INTO <имя_таблицы> [ (<имя_столбца>,...) ] VALUES
{
1. [ (<значение>,..) ]
2. |[ <SELECT-запрос> ]
3. |[ DEFAULT VALUES ]
}
Синтаксис строки 1 позволяет ввести только одну строку в таблицу. Если вводятся все поля записи, то список столбцов можно не задавать. Вместо значения поля можно указывать DEFAULT. Оператор ввода данных с помощью синтаксиса строки 2 позволяет ввести сразу множество строк, если их можно выбрать из некоторой другой таблицы. При этом порядок следования столбцов и тип данных в столбцах должных совпадать. Строка 3 используется, если создаётся запись с значениями по умолчанию.
Примеры:
INSERT INTO publishers VALUES (16,"Microsoft Press","http://www.microsoft.com");
INSERT INTO Authors (au_id, au_lname, au_fname) VALUES (666,’Бездомный’,’Иван’)
INSERT INTO Addresses (name, phone, address) VALUES (
SELECT name, phone, address FROM tmp_table)
С не меньшим успехом в последнем случае можно использовать и конструкцию SELECT INTO…
UPDATE – обновление информации в таблице
Синтаксис:
UPDATE <имя_таблицы> SET <имя_столбца> = <значение>,...
[FROM {<имя таблицы> | <SELECT-запрос>},…]
[WHERE <условие>]
За один вызов UPDATE можно изменить данные в одном или нескольких столбцах для одной или множества записей только в одной таблице. С ключевого слова SET начинается блок, в котором определяется список изменяемых столбцов. Синтаксис <значение>:=={<константа> | <переменная> | <выражение> | DEFAULT | NULL}. Изменению подвергаются все строки, удовлетворяющие критериям ограничения области действия запроса UPDATE, которые задаются с помощью раздела WHERE.
Примеры:
UPDATE Authors SET address = “Садовая 13А, кв. 50” WHERE au_lname = ”Берлиоз” AND au_fname = ”Михаил”
UPDATE publishers SET url="сайт неизвестен" WHERE url IS NULL
Если в инструкции UPDATE будет пропущен раздел WHERE, то заданные в разделе SET изменения будут сделаны в каждой строке таблицы. Имеет смысл для проверки сначала выполнить инструкцию типа SELECT Count(*) с тем же критерием WHERE, чтобы узнать, сколько строк будет изменено с помощью UPDATE. При составлении выражения можно ссылаться на любые столбцы таблицы, включая изменяемые.
UPDATE Titles SET price=price+10
Если при изменении данных в таблице необходимо учесть состояние данных в других таблицах, то они указываются в разделе FROM. После того как источник данных указан в разделе FROM, в разделах WHERE и SET можно ссылаться на столбцы этого источника данных.
Пример: в таблице subjects (subject, fo, name) в поле fo указан номер федерального округа, к которому принадлежит данный субъект федерации. В частично заполненной таблице peoples (xsubject, xfo, value) осталось незаполненным поле xfo с тем же смыслом. Как восстановить недостающую информацию?
UPDATE Peoples SET xfo = fo FROM subjects WHERE xsubject=subject
DELETE – удаление информации из таблицы
Синтаксис:
DELETE FROM <имя_таблицы> [ WHERE <условие> ]
С помощью DELETE можно удалить как отдельные строки, так и множество строк. Без WHERE будут удалены все строки таблицы. В разделе WHERE также можно использовать вложенные подзапросы.
Примеры:
DELETE FROM publishers WHERE publisher = "Microsoft Press"
Удалить из таблицы students студентов, имеющих две и более двойки по результатам экзаменов (если это позволяют ограничения целостности):
DELETE FROM students WHERE id_student IN (
SELECT id_student FROM testing WHERE result=2 GROUP BY id_student HAVING count(*)>2 )
Дополнительные сведения о языке SQL будут изложены в следующих главах, посвящённых различным диалектам SQL в нескольких широко известных на сегодняшний день СУБД.
Дата добавления: 2015-07-30; просмотров: 630;