Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
1.73 Mб
Скачать

Раздел into. Использование команды select...Into

При указании этой конструкции результат выполнения запроса будет сохранен в новой таблице. Синтаксис раздела INTO следую­щий:

INTO <имя_новой_таблицы>

Аргумент <имя_новой_таблицы> определяет имя таблицы, в ко­торую будут вставлены результаты.

При выполнении запроса SELECT...INTO автоматически созда­ется новая таблица с нужной структурой и в нее заносится получен­ный набор строк. При этом в базе данных не должно существовать таблицы, имя которой совпадает с именем таблицы, указанной в ко­манде SELECT...INTO. Если необходимо быстро создать таблицу со структурой, позволяющей сохранить результат выполнения запроса, то лучшим выходом будет использование команды SELECT...INTO.

Синтаксис команды SELECT...INTO следующий:

SELECT {<имя столбца> [[AS] <псевдоним_столбца>] [, ..., n]}

INTO <имя_новой_таблицы> FROM {<имя_исходной таблицы> [,..., n]}

Приведенный вариант синтаксиса далеко не исчерпывает все возможности вставки данных с помощью команды SELECT...INTO. Допускаются практически все варианты синтаксиса запроса SELECT, то есть можно выполнять группировку, сортировку, объе­динение и т. д.

Рассмотрим назначение аргументов команды.

<имя_столбца> [[AS] <псевдоним_столбца>].

Аргумент <имя_столбца> задает имя столбца таблицы, который будет включен в резуль­тат. Указанный столбец должен принадлежать одной из таблиц, пе­речисленных в списке FROM {<имя_исходной_таблицы> [,..., n]}. Если столбцы, принадлежащие разным таблицам, имеют одинако­вые имена, то для столбцов необходимо использовать псевдонимы. В противном случае произойдет попытка создать таблицу со столб­цами, имеющими одинаковые имена, что приведет к ошибке, и вы­полнение запроса будет прервано. Указание псевдонимов также обязательно для столбцов, значения в которых формируются на ос­нове вычисления выражений (по умолчанию такие столбцы не име­ют никакого имени, что недопустимо для таблицы) и когда пользо­ватель хочет задать столбцам в создаваемой таблице новые имена (отличные от исходных). Имя псевдонима задается с помощью па­раметра <псевдоним_колонки>.

INTO <имя_новой_таблицы>.

Аргумент <имя_новой_таблицы> содержит имя создаваемой таблицы. Это имя должно быть уникаль­ным в пределах базы данных.

FROM {<имя_исходной_таблицы> [,..., n]}.

В простейшем слу­чае конструкция FROM содержит список исходных таблиц. В более сложных запросах с помощью этой конструкции определяются ус­ловия связывания двух и более таблиц.

С помощью команды SELECT..INTO, например, можно разде­лить таблицу «Студенты» на две, выделив в отдельную таблицу «Контакты» адреса и телефоны, а затем удалив эти столбцы из таб­лицы «Студенты»:

SELECT ID_Студент, Адрес, Телефон

INTO Контакты

FROM Студенты

Запрос для таблицы «Контакты»:

SELECT *

FROM Контакты

WHERE Телефон LIKE '120%'

Построим внешний ключ для таблицы «Контакты», обеспечив связь с таблицей «Студенты»:

ALTER TABLE Контакты ADD CONSTRAINT FK_Kонтакт

FOREIGN KEY (ID_Студент)

REFERENCES Студенты

Модифицируем запрос для таблицы «Контакты»:

SELECT *

FROM Студенты

INNER JOIN Контакты

ON Студенты.ID_Студент = Контакты. ID_Студент

WHERE Телефон LIKE '120%'

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]