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

Команды dml

Добавление insert into (имя таблицы) [(список полей)] values (список значений)

Удаление

Изменение

Пример. insert into Customer(name) values (‘Иванов’)

Не указанные – либо значения по умолчанию, либо null (или не not null). При нарушении ограничения not null или любого другого добавления не происходит (сообщение об ошибке). Когда список полей опущен, то имеется в виду список всех полей по умолчанию.

insert into (имя таблицы) (команда select). В указанную таблицу добавляется множество записей, выбранных командой select. Предполагается, что результат выборки согласован по типу с полями таблицы.

delete – удаление записей из таблицы.

update – изменение значений полей.

select – выборка данных.

delete from (имя таблицы) where (условия удаления) – удалить все записи из таблицы, удовлетворяющие данному условию (условиям).

delete from Customer where credit=0.

Замечание. В реальности команда delete, как правило, не удаляет записи физически, а лишь помечает их как удалённые.

update (имя таблицы) set (список присваиваний вида: имя поля=выражение) where (условия обновления). В указанной таблице обновить все записи, удовлетворяющие указанным условиям, присвоить указанным полям значения соответствующего выражения.

update Customer set Credit=Credit+100 where city=’Казань’

Как правило, СУБД включают в себя средства восстановления удалённых записей и, собственно, физического удаления помеченных записей.

select [All/Distinct] (список выборки) from (список таблиц) [where (условия фильтрации)] [order by (список имён полей или номеров выражений из списка выборки)] [group by (список имён полей, либо номеров выражений из списка выборки)] [having (условия на группу)] [union (другая команда select)]

select Name, Year(date(…))-year(birthday) from Customer

Результат выборки – таблица.

Имена полей этой таблицы совпадают с именами полей исходной таблицы, для сложных выражений генерируется системой.

Опция as используется для задания пользовательских имён результирующей таблицы. Типы полей определяются по типу выражения. Размерность – тёмное место языка.

Опция where: из исходной таблицы отбираются лишь записи, удовлетворяющие заданному условию.

where city=’Казань’

Предикаты в sql

Помимо сравнений и булевых операций возможны и более специфичные для SQL предикаты.

Предикат сравнения по маске: (аргумент) [not] like (маска), где маска – произвольная символьная строка, содержащая специальный символ % (символ кратной замены) и _ (символ одиночной замены). Предикат считается истинным, если маску можно превратить в аргумент при подходящей замене знака подчёркивания (_) на одиночный символ и знака % на слово.

where city=’Казань’ and name=’Иван%’

Следующая группа предикатов – синтаксический сахар. Они выразимы через булевские комбинации сравнения, но более компактны и привычны для англо-говорящего пользователя.

(аргумент 1) [not] between (аргумент 2) and (аргумент 3)

Предикат истинен, если аргумент1 принадлежит замкнутому интервалу [аргумент 2, аргумент 3] (отрезок).

(аргумент) [not] in (список значений) – предикат истинен, если аргумент совпадает с одним из значений списка.

City between ‘Казань’ and ’Москва’

Смотри далее: «Предикаты, использующие выборку».