Эти ключевые слова управляют выводом одинаковых строк в результирующей таблице.
DISTING указывает, что строки должны быть уникальны.
ALL – надо возвращать все строки, в том числе и одинаковые.
SELECT номер_клиента
FROM счета_клиентов
WHERE номер_счета IN
( SELECT номер_счета
FROM счета
WHERE филиал=”Бауманский” )
Здесь будет выбрано множество строк, состоящих из номеров_счетов таблицы «счета», которые обрабатывает филиал «Бауманский».
Если рассматриваемый номер_счета есть в указанном множестве, то будет возвращен номер_клиента этого кортежа.
Счета Счета_клиентов
номер_счета
филиал
5-16
Бауманский
4-98
Бауманский
7-21
Любленский
3-11
Центральный
№_клиента
№_счета
4-98
7-21
3-11
Сначала из таблицы «Счета» выбираются те строки (кортежи), где в столбце «филиал» стоит значение «Бауманский».
4-98
Бауманский
5-16
Бауманский
Затем из таблицы «Счета_клиентов» выбираются номера клиентов, у которых номер_счета либо 4-98, либо 5-16.
Итог выборки – 15.
Существуют определенные типы запросов, которые лучше реализовывать с помощью подзапросов. Преимущественно это так называемые проверки существования. Предположим, что надо получить данные о клиентах, которые не имеют счетов.
SELECT *
FROM Клиенты
WHERE номер_клиента NOT IN
(SELECT №_клиентов
FROM Счета_клиентов)
Клиенты
адрес
…
…
…
…
Счета_клиентов Клиенты
№_клиента
№_счета
4-98
7-21
3-11
Если будет возвращено пустое множество, то это означает, что у каждого клиента есть хотя бы 1 счет.
Для изменения значений в одном или нескольких столбцах таблицы можно использовать оператор UPDATE.
UPDATE таблица
SET столбец1=выражение1 [, столбец2=выражение2]
[WHERE условие]
Пример:
UPDATE Счет
SET Баланс=Баланс+100.0
WHERE Баланс>0
В таблице «Счет» все значения в столбце «Баланс» увеличиваются на 100, если эти значения положительны
Используется для удаления строк из таблиц.
Общий вид:
DELETE
FROM таблица
[WHERE условие]
Предложение WHERE не является обязательным, но если его нет, то будут удалены все строки таблицы. Полезно использовать оператор SELECT с тем же синтаксисом, что и DELETE, чтобы предварительно проверить, какие записи будут удалены.