
- •Введение в язык sql92.
- •О нотации грамматики языка sql.
- •Оператор select.
- •Выбор строк (фраза where).
- •Сортировка результата (фраза order by).
- •Стандартные обобщающие функции языка sql.
- •Группировка результата (фраза group by).
- •Примеры простой группировки.
- •Подзапросы и другие операции.
- •Многотабличные запросы.
- •Операции union, intersect, except.
- •Операции обновления базы данных.
- •Insert into table_name [ ( colomn_list ) ]
- •Values ( data_value_list )
- •Определение данных в языке sql.
- •Типы данных языка isq sql92.
- •Integer (можно сократить до int)
- •Скалярные операторы языка sql.
- •Создание баз данных.
- •Представления (виды).
Операции 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.столб);
Операции обновления базы данных.
“Всякое слово ничто, если не увенчано делом”
Платон 428-347 гг. до н.э.
Язык SQLполномасштабный язык манипулирования данными. Он позволяет не только извлекать информацию из базы данных с помощью оператора выборкиSELECT, но и может модифицировать её содержимое (обновлять состояние базы данных). В основном для этого используются три оператора языкаSQL.
INSERT – добавляет данные в таблицу.
UPDATE – модифицирует данные в таблице.
DELETE – удаляет данные из таблицы.
Добавление данных в таблицу (оператор INSERT).
Существует две формы оператора добавления данных в таблицу. Первая из них служит для добавления строки и имеет следующий формат.