Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
15
Добавлен:
03.06.2015
Размер:
718.47 Кб
Скачать

Управление данными

SQL

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

Зудилин А.Э. 2013

Добавление данных. Оператор INSERT

SELECT является наиболее часто используемым оператором языка SQL. Но помимо него в SQL часто применяются еще три оператора, которыми вам необходимо уметь пользоваться.

Первый из них — оператор INSERT.

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

Добавление можно осуществить несколькими способами:

1)добавить одну полную строку;

2)добавить часть одной строки;

3)добавить результаты запроса.

2

Добавление полных строк Вариант 1

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

Столбцы должны заполняться в том порядке, в котором они появились в определении таблицы.

Если для какого-то столбца не имеется соответствующего значения, следует использовать значение NULL.

INSERT INTO Имя_Таблицы

VALUES( Список_значений )

INSERT INTO Студент VALUES (8, 1, 'Михайлов', 'Михаил', 'Михайлович')

3

Недостатки варианта 1

Этот синтаксис довольно прост, но он не вполне безопасен, поэтому его применения следует всячески избегать.

Результаты применения вышеприведенного оператора SQL весьма

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

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

4

Добавление полных строк Вариант 2

Безопасный (и, к сожалению, более громоздкий) способ записи оператора INSERT таков:

INSERT INTO Имя_Таблицы

( Список_полей ) VALUES

( Список_значений )

INSERT INTO Студент

( id, Группа, Фамилия, Имя, Отчество )

VALUES

(8, 1, 'Михайлов', 'Михаил', 'Михайлович')

Преимущество этого способа таково:

даже если расположение столбцов в таблице изменяется, оператор INSERT все равно будет работать корректно.

5

Добавление части строки

Второй способ использования оператора INSERT состоит в явном указании имен столбцов таблицы.

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

Это означает, что вы вводите значения для одних столбцов и не предлагаете для других.

Если вы пропускаете столбец таблицы, которая не

допускает появления в своих строках значений

NULL (и не имеет значения, определенного для использования по умолчанию), СУБД выдаст сообщение

об ошибке, и эта строка не будет добавлена.

6

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

Существует и другая форма оператора INSERT, она может быть использована для добавления в таблицу результата применения оператора SELECT.

Известна эта форма как оператор

INSERT SELECT .

Данный оператор выполняет то же самое, что делают операторы INSERT и SELECT.

7

Пример

Предположим, вы хотите ввести в таблицу Client список клиентов из другой таблицы.

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

INSERT INTO Client(cli_id, cli_contact, cli_email, cli_name, cli_address)

SELECT cli_id, cli_contact, cli_email, cli_name, cli_address

FROM Client2;

Оператор SELECT, используемый в INSERT SELECT, может включать предложение WHERE для фильтрации данных, которые должны быть добавлены.

8

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

Оператор SELECT INTO - это другая форма добавления данных, при использовании которой оператор INSERT вообще не применяется.

Чтобы скопировать содержимое какой-то таблицы в другую, можно использовать оператор SELECT INTO.

В отличие от оператора INSERT SELECT, посредством которого данные добавляются в уже существующую таблицу, SELECT INTO копирует данные в новую таблицу.

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

9

Оператор SELECT INTO

SELECT *

INTO CustCopy

FROM Client

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

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

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

10

Соседние файлы в папке Управл_данными