UNION – объединение. Этот тип соединения отличается от оператора UNION, который используется для объединения выходной информации нескольких запросов. Соединение типа UNION является обратным по отношению к INNER: оно включает только те строки из таблиц, для которых не найдено совпадений. В них используются значения NULL для столбцов, полученных из другой таблицы. Если взять полное внешнее соединение и удалить из него строки, полученные путем внутреннего соединения тех же таблиц, то в результате получится соединение типа «объединения» (union). Этот тип соединения иллюстрируется в таблице 2.7.
Тип соединения только определяет, из каких строк будут состоять выходные данные. Другие возможные соединения могут быть напрямую заданы с помощью ON или USING. USING определяет соединение по столбцам. Если это естественное соединение, то имена столбцов и типы данных должны совпадать. USING отличается от NATURAL тем, что позволяет соединять в таблицах только заданное подмножество столбцов с совпадающими именами, a NATURAL автоматически соединяет все столбцы с одинаковыми именами.
ON определяет предикат, который представляет собой выражение, подобное Сity='Тверь', например, A.NAME=B.NAME. Результатом вычисления выражения могут быть TRUE, FALSE или UNKNOWN (если присутствует значение NULL). Значение предиката в данном случае может вычисляться с использованием значений, взятых из строки-кандидата соединения. Под строкой - кандидатом понимается строка, которая, в свою очередь, получается, как декартово произведение строк таблиц, участвующих в соединении.
INSERT
INSERT INTO имя таблицы [(столбец_1, столбец_2,...)]
VALUES (выражение_1, выражение_2,...),
или
INSERT INTO имя таблицы [(столбец_1, столбец_2,...)]
SELECT ...
Оператор INSERT вставляет новые строки в существующую таблицу. Форма данной команды INSERT ... VALUES вставляет строки в соответствии с точно указанными в команде значениями. Форма INSERT ... SELECT вставляет строки, выбранные из другой таблицы или таблиц.
Имя таблицы - таблица, в которую должны быть внесены строки. Столбцы, для которых заданы величины в команде, указываются в списке имен столбцов.
Если не указан список столбцов для INSERT ... VALUES или INSERT ... SELECT, то величины для всех столбцов должны быть определены в списке VALUES() или в результате работы SELECT.
Любой столбец, для которого явно не указано значение, будет установлен в свое значение по умолчанию. Например, если в заданном списке столбцов не указаны все столбцы в данной таблице, то не упомянутые столбцы устанавливаются в свои значения по умолчанию.
Выражение_i может относится к любому столбцу, который ранее был внесен в список значений. Например, можно указать следующее:
INSERT INTO tbl_name (col1, col2) VALUES(15, col1*2)
Но нельзя указать:
INSERT INTO tbl_name (col1, col2) VALUES(col2*2, 15)
Оператор INSERT ... SELECT обеспечивает возможность быстрого внесения большого количества строк в таблицу из одной или более таблиц.
Для оператора INSERT ... SELECT необходимо соблюдение следующего условия. Целевая таблица команды INSERT не должна появляться в утверждении FROM части SELECT данного запроса, поскольку в SQL запрещено производить выборку из той же таблицы, в которую производится вставка.
В следующем примере показано добавление в таблицу Clients новой строки о заказчике Бобров, 41 год, из г.Тула.
INSERT INTO Clients (ID_NUM, Name, City, Age)
VALUES (1225, 'Бобров', 'Тула', 41)
UPDATE
UPDATE имя таблицы
SET столбец_1 = выражение_1 [,столбец_2 = выражение_2 ...]
[WHERE условие отбора строк]
Оператор UPDATE обновляет столбцы в соответствии с их новыми значениями в строках существующей таблицы. В выражении SET указывается, какие именно столбцы следует модифицировать и какие величины должны быть в них установлены. В выражении WHERE, если оно присутствует, задается, какие строки подлежат обновлению. В остальных случаях обновляются все строки.
Если доступ к столбцу из указанного выражения осуществляется по аргументу имя столбца, то оператор UPDATE использует для этого столбца его текущее значение. Например, следующая команда устанавливает в столбце Age значение, на единицу большее его текущей величины:
UPDATE Clients SET Age = Age + 1
Если в UPDATE изменяются значения нескольких столбцов, то новые значения присваиваются слева направо, т.е. сначала столбец_1 = выражение_1, потом столбец_2 = выражение_2 и т.д.
DELETE
DELETE FROM имя таблицы
[WHERE условие отбора строк]
Оператор DELETE удаляет из таблицы, удовлетворяющие заданному условию отбора строк. Условие отбора строк формулируется по тем же правилам, что и операторе SELECT. В том числе допускается использование вложенных запросов.
В следующем примере из таблицы Clients удаляются записи о заказчиках из города Тула.
DELETE FROM Clients WHERE City = 'Тула'
Рекомендуемая литература
- Бен Форта. Освой самостоятельно SQL. 10 минут на урок. 3-е издание. Изд. Вильямс. Серия: 10 минут на урок, 2005
- Бхамидипати К. SQL. Справочник программиста. 2003
- Вейскас Дж. Эффективная работа: Microsoft Office Access 2003. Изд. Питер. Серия: Эффективная работа, 2005
- Вьейра Р. SQL Server 2000.Программирование. в 2-х томах. Изд. Бином. Серия: Лаборатория знаний, 2004
- Грабер М. SQL. Справочное руководство, 2004
- Гроф Дж. Р., Вайнберг П.Н. SQL: полное руководство. К.: Издательская группа BHV, 1999.
- Дейт К.Дж. Введение в системы баз данных. К.; М.; СПб.: Издательский дом «Вильямс», 2000.
- Дибетт П. Знакомство с Microsoft SQL Server 2005. Изд. Русская Редакция. Серия: Разработка ПО, 2005
- Избачков Ю. С., Петров В. Н. Информационные системы: Учебник для вузов. 2-е издание. Изд. Питер. Серия: Учебное пособие, 2005
- Крёнке Д. Теория и практика построения баз данных. 9-е издание. Изд. Питер, 2004
- Кузнецов С.Д. SQL. Язык реляционных баз данных. Изд. Майор. Серия: Мой компьютер, 2001
- Малыхина М.П. Базы данных: основы, проектирование, использование. Изд. Питер. Серия: Учебное пособие, 2004
- MySQL AB. MySQL. Руководство администратора. Изд. Вильямс, 2005 г.
- Полякова Л. Основы SQL. Серия: Основы информационных технологий, 2004
- Селко Д. SQL для профессионалов. Изд. Современная экономика и право, 2004
- Тейлор А.Дж. SQL для "чайников", 5-е издание. Изд. Диалектика. Серия: Для чайников, 2005
- Тоу Д.. Настройка SQL. Изд. Питер. Серия: Для профессионалов, 2004
- Хернандес М. и др. SQL-запросы для простых смертных. Практическое руководство по манипулированию данными в SQL. 2003
- Кириллов В.В., Громов Г.Ю., Структуризированный язык запросов (SQL). http://www.citforum.ru/database/sql_kg/index.shtml
- Кузнецов С.Д. Системы обработки информации - язык баз данных SQL со средствами поддержания целостности. http://www.citforum.ru/database/sql/index.shtml
- Кузнецов С.Д. Язык реляционных баз данных SQL и его стандарты. ComputerWorld #4/97 http://www.citforum.ru/database/articles/art_18.shtml
- Кузнецов С.Д. Введение в стандарты языка баз данных SQL. http://www.citforum.ru/database/sqlbook/index.shtml
- Кузнецов С.Д. Основы современных баз данных. Информационно-аналитические материалы Центра Информационных Технологий. Http:// www.citmgu/ru/