double arrow

Пример 2.8

Пример 2.7.

Пример 2.6.

Пример 2.5.

INSERT INTO Студент ([Фамилия]. [Имя],[Дата рождения]) VALUES ("Петров", "Иван", 23/3/80)

Возможен групповой ввод записей (пакетный режим), являю­щихся результатом выборки (запроса) из других таблиц:

INSERT INTO таблица [IN внешняя база данных] SELECT [источник.]поле1[,поле2[, ...] FROM выражение WHERE условие

Сначала выполняется оператор подзапроса SELECT, который и формирует выборку для добавления.

Фраза SELECT определяет структуру данных источника переда­ваемых записей — имена таблицы и полей, содержащих исходные данные для загрузки в таблицу.

FROM позволяет указать имена исходных таблиц, участвую­щих в формировании выборки, а фраза WHERE задает условия выполнения подзапроса. Структура данных выборки должна соот­ветствовать структуре данных таблицы, в которую производится добавление.

Добавление (перезагрузка) записей возможна и во внешнюю базу данных, для которой указывается полностью специфицирован­ное имя (диск, каталог, имя, расширение). Структуры таблиц долж­ны совпадать.

INSERT INTO Студент SELECT [Студент-заочник].* FROM [Студент-заочник]

Все записи таблицы СТУДЕНТ-ЗАОЧНИК будут добавлены в таблицу СТУДЕНТ

INSERT INTO Студент SELECT [Студент-заочник].* FROM [Студент-заочник]WHERE [Дата рождения] > = # 01/01/80 #

2.8. Обработка данных в базе

67

Записи таблицы СТУДЕНТ-ЗАОЧНИК добавляются в таблицу СТУДЕНТ, если дата рождения студента больше или равна ука­занной.

5. Операции соединения таблиц.Операцию INNER JOIN можно использовать в любом предложении FROM. Она создает симмет­ричное объединение, наиболее частую разновидность внутреннего объединения. Записи из двух таблиц объединяются, если связующие их поля содержат одинаковые значения:

FROM таблица1 INNER JOIN таблица2 ON таблица1.поле1=таблица2. поле2

Данный оператор описывает симметричное соединение двух таблиц по ключам связи (поле1;поле2). Новая запись формируется в том случае, если в таблицах содержатся одинаковые значения ключей связи.

Возможные варианты операции:

• LEFT JOIN (левостороннее) соединение — выбираются все записи «левой» таблицы и только те записи «правой» таблицы, которые содержат соответствующие ключи связи;

RIGHTJOIN (правостороннее) соединение — выбираются все записи «правой» таблицы и только те записи «левой» таблицы, которые содержат соответствующие ключи связи.

SELECT Студент.*, Оценка.* FROM Студенты INNER JOIN Оценка ON Студент.[№ зач.книжки] = Оценка.[№ зач.книжки];

SELECT Студент.*, Оценка.* FROM Студенты LEFT JOIN Оценка ON Студент.[№ зач. книжки] = Оценка.[№ зач.книжки];

SELECT Студент.*, Оценка.* FROM Студенты RIGHT JOIN Оценка ON Студент.[№ зач.книжки] = Оценка.[№ зач.книжки]

В первом случае создается симметричное соединение двух таб­лиц по полю [№ зач.книжки]. Не выводятся записи, если значение их ключей связи (указанное поле) не представлено в двух таблицах. Во втором случае будут выведены все записи таблицы СТУДЕНТ и соответствующие им записи таблицы ОЦЕНКА. В третьем случае — наоборот, все записи таблицы ОЦЕНКА и соответствующие им за­писи таблицы СТУДЕНТ.

Операции JOIN могут быть вложенными для последовательного соединения нескольких таблиц.

68

Глава 2. Использование СУБД ACCESS


Сейчас читают про: