Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
32
Добавлен:
16.04.2013
Размер:
1.04 Mб
Скачать
      1. Операции union, intersect, except.

Всеми силами души надо стремиться к истине”

Платон 428-347 гг. до н.э.

*

Если результат выполнения двух (или нескольких) операций SELECT есть таблицы с одинаковыми схемами (совместимы по соединнию), то к ним можно применить обычные операции над множествами.В каждом случае формат предложения с описанием операции над множествами должен быть следующим.

operator [ALL] [ CORRESPONDING [ BY {colomn1 [, ... ] } ] ]

Необязательная фраза CORRESPONDIG BY операции выполняются для указанных столбцов, а дляCORRESPONDIG (BY отсутствует) операция выполняется для общих в двух таблицах столцов. Если используется ключевое слово ALL, то таблица будет содержать дублирующие строки. Есть диалекты языкаSQL, в которых не поддерживаются опрацииINTERSECT и EXEPT, а в других вместо ключевого словаEXEPT используетсяMINUS. Для управления порядком вычислений запросов в языке SQL используются круглые скобки.

Использование операции UNION.

(SELECT столб ИЛИ (SELECT *

FROM табл1 FROM табл1

WHERE столб IS NOT NULL) WHERE столб IS NOT NULL)

UNION UNION CORRESPONDING BY столб

(SELECT столб (SELECT *

FROM табл2 FROM табл2

WHERE столб IS NOT NULL ); WHERE столб IS NOT NULL);

При выполнении запроса сначала определяется результирующая таблица первого оператора SELECT, а затем - второго. Затем производится операция их объединения с удалением строк с дублирующими значениями.

Использование операции INTERSECT.

(SELECT столб ИЛИ (SELECT *

FROM табл1) FROM табл1

INTERSECT INTERSECT CORRESPONDING BY столб

(SELECT столб (SELECT *

FROM табл2); FROM табл2);

Этот запрос можно записать без использования операции INTERSECT.

SELECT т1.столб ИЛИ SELECT DISTINCT столб

FROM табл1 т1, табл2 т2 FROM табл1 т1

WHERE т1.столб = т2.столб WHERE EXIST

(SELECT столб (SELECT *

FROM табл2); FROM табл2 т2

WHERE т2.столб =т1.столб);

Возможность описания эквивалентных запросов в различных формах есть один из самых серьёзных недостатков языка SQL.

Использование операции EXCEPT.

(SELECT столб ИЛИ (SELECT *

FROM табл1) FROM табл1

EXCEPT EXCEPT CORRESPONDING BY столб

(SELECT столб (SELECT *

FROM табл2); FROM табл2);

Этот запрос можно записать без использования операции EXCEPT.

SELECT DISTINCT столб ИЛИ SELECT DISTINCT столб

FROM табл1 FROM табл1 т1

WHERE столб NOT IN WHERE NOT EXIST

(SELECT столб (SELECT *

FROM табл2); FROM табл2 т2

WHERE т2.столб=т1.столб);

      1. Операции обновления базы данных.

Всякое слово ничто, если не увенчано делом”

Платон 428-347 гг. до н.э.

Язык SQLполномасштабный язык манипулирования данными. Он позволяет не только извлекать информацию из базы данных с помощью оператора выборкиSELECT, но и может модифицировать её содержимое (обновлять состояние базы данных). В основном для этого используются три оператора языкаSQL.

  • INSERT – добавляет данные в таблицу.

  • UPDATE – модифицирует данные в таблице.

  • DELETE – удаляет данные из таблицы.

Добавление данных в таблицу (оператор INSERT).

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

Соседние файлы в папке УП_ОПТ2