Sql Scholl
Распечатать страницу
Перейти на главную Карта сайта Отправить сообщение

Добавление данных

Копирование данных из одной таблицы в другую

     Это — другая форма добавления данных, при использовании которой оператор INSERT вообще не применяется. Чтобы скопировать содержимое какой-то таблицы в новую (которая создается "на лету"), можно использовать оператор SELECT INTO.

Не поддерживается в DB2

СУБД DB2 не поддерживает использование оператора select into описанным выше способом.

     В отличие от оператора INSERT SELECT, посредством которого данные добавляются в уже существующую таблицу, SELECT INTO копирует данные в новую таблицу (и в зависимости от того, о какой СУБД идет речь, может перезаписать таблицу, если такая уже существует).

Разница между INSERT SELECT И SELECT INTO

Одно из отличий между операторами select into и insert select состоит в том, что первый оператор экспортирует данные, а второй — импортирует.

     Следующий пример демонстрирует способ применения оператора SELECT INTO:

SELECT * INTO CustCopy FROM Customers;

     Этот оператор SELECT создает новую таблицу с именем CustCopy и копирует в нее все содержимое таблицы Customers.

     Поскольку был использован оператор SELECT *, каждый столбец таблицы Customers будет создан в таблице CustCopy (и соответственно заполнен). Чтобы скопировать только часть доступных столбцов, следует явно указать имена столбцов, а не использовать метасимвол * (звездочка).

     В СУБД MySQL и Oracle используется несколько иной синтаксис:

CREATE TABLE CustCopy AS
SELECT *
FROM Customers;

     При использовании оператора SELECT INTO нужно обращать внимание на следующие моменты.

     •     Можно использовать любые опции и предложения оператора SELECT, включая WHERE и GROUP BY.
     •     Для добавления данных из нескольких таблиц можно использовать объединения.
     •     Данные можно добавить только в одну таблицу независимо от того, из скольких таблиц они были извлечены.

Создание копий таблиц

Оператор select into является прекрасным средством создания копий таблиц для экспериментов с новыми для вас операторами SQL. Создав копию, вы получите возможность проверить возможности SQL на этой копии, а не на таблицах реальной базы данных.

Больше примеров

Вам нужны еще примеры использования оператора insert? Ознакомьтесь со сценариями заполнения таблиц.