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

К этой группе относятся операторы добавления, изменения и удаления записей.

 

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;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.