Предложение UNION
Объединение множества запросов в один
Это еще один способ комбинирования данных запросов. С помощью предложения UNION можно объединить выходные данные нескольких запросов в единое множество строк и столбцов.
Пример: Получить сведения обо всех продавцах (Sales people) и покупателях (Customers) Лондона как данные одного запроса:
SELECT snum, sname
FROM Sales people
WHERE city = ‘London’
UNION
SELECT cnum, cname
FROM Customers
WHERE city = ‘London’;
Заметим, что;ставится только в самом конце. Заголовки столбцов в результате отсутствуют, поскольку это объединения столбцов snum с cnum и sname с cname.
Очевидно, что реализовать UNION можно только при соблюдении определенных условий:
- Столбцы, входящие в состав выходных данных исходных запросов должны быть совместимы по объединению- union compatible. Это значит, что в каждом из запросов может быть указано одинаковое число столбцов в порядке: первый, второй, третий и т.д., причем n-й столбец одного запроса должен быть сравним с n-м столбцом другого запроса.
- Если для n-го столбца одного запроса в UNION NULL-значения запрещены, то они запрещены и для других запросов в UNION.
- Об избыточности (замечание). UNION автоматически исключает из выходных данных дублирующие строки.
- Если в UNION применяется сортировка- ORDER BY, то приходится указывать не имя столбца, а его номер.
Например: ORDER BY 3- по возрастанию.
Эти команды образуют подраздел SQL, называемый DML (Data Manipulation Language):
INSERT (вставить), UPDATE (обновить), DELETE (удалить).
Еще их называют update command- команды обновления.
Ввод значений:
INSERT INTO <имя таблицы>
VALUES (<значение 1 поля>, <значение 2 поля>, …)
INSERT INTO Sales people
VALUES (1001, ‘Hoffman’, ‘London’,.12)
|
INSERT INTO Sales people (snum, sname, city, comm)
В остальные- значения по умолчанию (NULL и т.п.)