Пример 8 Операции соединения таблиц

Пример 7.

Пример 6.

Пример 5.

Ввод данных в таблицу.

Пример4.

Удаление таблицы.

Пример 3.

CREATE INDEX Гр ON Студент([группа]) WITH DISALLOW NULL

Для удаления таблицы (одновременно и структуры, и данных) используется команда:

DROP TABLE имя таблицы

Для удаления только индекса таблицы (сами данные не разрушаются) выполняется команда:

DROP INDEX имя индекса ON имя таблицы.

DROP INDEX Адр ON Студент — удален только индекс Адр;

DROP TABLE Студент — удалена вся таблица.

Формирование новой записи в таблице выполняется командой:

INSERT INTO таблица [(поле1[, поле2[, …]])] VALUES (значение 1[, значение2[,…]),

Указывается имя таблицы, в которую добавляют запись, состав полей, для которых вводятся значения.

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 #

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

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

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

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

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

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

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

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

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

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

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



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