Реляционные базы данных предполагают наличие механизма объединения информации об объекте, хранящейся в нескольких таблицах. Процесс и результат сбора данных об определённом объекте, хранящихся в нескольких таблицах, называется объединением таблиц. Рассмотрим операторы, которые работают при объединении таблиц.
Оператор JOIN работает с двумя аргументами-таблицами. Существуют три разновидности конструкций JOIN.
Оператор INNER JOIN
Конструкция INNER JOIN позволяет возвратить все записи, для которых выполняется условие равенства содержимого столбцов двух объединяемых таблиц.
SELECT * FROM имя INNER JOIN имя ON имя поля =имя поля
таблицы1 таблицы2 из таб.1 из таб.2
Оператор LEFT JOIN
Оператор LEFT JOIN применяется в тех случаях, когда следует вернуть все записи левой таблицы и только те строки правой, значения полей которых соответствуют данным левой таблицы.
SELECT * FROM имя LEFT JOIN имя ON имя поля =имя поля
таблицы1 таблицы2 из таб.1 из таб.2
Оператор RICHT JOIN
Конструкция RIGHT JOIN прямо противоположна по назначению оператору
|
|
LEFT JOIN. При использовании RIGHT JOIN возвращённый набор данных будет содержать все записи правой таблицы, и только те строки левой, для которых в правой таблице имеются соответствия.
SELECT * FROM имя RIGHT JOIN имя ON имя поля =имя поля
таблицы1 таблицы2 из таб.1 из таб.2
Добавление записей
Можно копировать данные из одной таблицы в другую.
Синтаксис:
INSERT INTO ИмяТаблицыПриёмника
(ИмяПоля1 [. ИмяПоля2,……])
SELECT ИмяТаблицыИсточника.ИмяПоля1 [,
ИмяТаблицыИсточника.ИмяПоля2, ….]
FROM ИмяТаблицыИсточника
Обновление данных
Команда UPDATE применяется для единовременного изменения содержимого полей одной или нескольких записей.
Синтаксис:
UPDATE ИмяТаблицы
SET ИмяПоля1=Значение1 [,ИмяПоля2=Значение2, …. ]
[WHERE Предложение0 ]
Удаление данных
При необходимости удаления записей из таблицы используется конструкция:
Синтаксис:
DELETE FROM ИмяТаблицы [WHERE Предложение ]
Организация запроса на выборку
Дана таблица “Товары”. Получить список товаров, начинающихся на заданную букву.
Private Sub Кнопка2_Click()
Dim basa As Database, zapros As QueryDef, s As String, bucva As String
Set basa = CurrentDb
s = "Select * from Товары where Товар like 'М*'" ‘Cтрока запроса
Set zapros = basa.CreateQueryDef("Запрос1", s) ‘ Создание запроса
DoCmd.OpenQuery ("Запрос1") ‘Открытие запроса
basa.QueryDefs.Delete "Запрос1"
Set basa = Nothing