Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава19.docx
Скачиваний:
3
Добавлен:
25.08.2019
Размер:
2.42 Mб
Скачать

19.3. Реляционные языки манипулирования данными 733

Опция ADD обеспечивает добавление поля, опция DROP — удаление поля таблицы, добавление опции CONSTRAINT означает подобные действия для индексов таблицы.

Пример 19.61.

ALTER TABLE Студент ADD COLUMN [Группа] ТЕХТ(5)

Для создания нового индекса для существующей таблицы можно использовать также команду:

CREATE [ UNIQUE ] INDEX индекс

ON таблица (поле[, ...])

[WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }]

Фраза WITH обеспечивает наложение условий на значения полей, включенных в индекс."

DISALLOW NULL — запретить пустые значения в индексированных полях новых записей;

IGNORE NULL — включать в индекс записи, имеющие пустые значения в индекси­рованных полях.

Пример 19.62.

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

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

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

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

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

Пример 19.63.

DROP INDEX Адр ON Студент

— удален только индекс Адр

DROP TABLE Студент

— удалена вся таблица

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

INSERT INTO таблица_куда [(поле1[, поле2[,...]])]

VALUES (значение 1[, значение2[,...]);

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

734 Глава 19. Инструментальные средства пользователя в среде microsoft office

Пример 19.64.

INSERT INTO Студент ([Фамилия], [Имя], [Дата рождения])

VALUES ("Петров", "Иван", 23/3/80)

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

INSERT INTO таблица_куда [IN внешняя_база_данных]

SELECT [источник.] поле 1[, поле2[,...]

FROM выражение

WHERE условие

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

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

Пример 19.65.

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

Все записи таблицы [Студент-заочник] в полном составе полей будут добавлены в таблицу Студент.

Примечание. Структуры таблиц должны совпадать.

Пример 19.66.

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

Записи таблицы [Студент-заочник] добавляются в таблицу Студент, если дата рож­дения студента больше или равна указанной.

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

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

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

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