Читать в оригинале

<< ПредыдущаяОглавлениеСледующая >>


2.3 Средства модификации данных языка SQL

Модификация данных подразумевает три возможных операции: встав­ка, изменение и удаление. В этом разделе показывается как выполняются эти операции средствами языка SQL.

2.3.1 Вставка данных

Для вставки данных в таблицы служит SQL-оператор INSERT. Этот оператор имеет две формы, в зависимости от того, всем ли столбцам таб­лицы присваиваются значения. Если указываются значения всех столбцов, то оператор имеет следующий вид:

INSERT INTO WORK
VALUES (505, 'Mystic Fabric', 'One of the only pr', '99/135', 14);

Обратите внимание, что значения типа Integer и Numeric не заключа­ются в кавычки, в отличие от Char и VarChar.

Если данные для каких-то столбцов отсутствуют, можно использовать ключевое слово NULL для пропускаемых значений:

INSERT INTO ARTIST
VALUES (15, 'Matisse', 'French', NULL, NULL);

Вторая форма оператора INSERT, которая допускает пропуск значений некоторых столбцов, предполагает перечисление имен столбцов, которым будут присвоены значения. Например, следующий оператор добавляет в таблицу ARTIST строку, в которой столбцам ArtistID, Name и Nationality присвоены значения, а столбцы BirthDate и DeceasedDate оставлены пу­стыми:

INSERT INTO ARTIST (Name, Nationality, ArtistID)
VALUES ('Repin', 'Russian', 20);

Если для какого-либо столбца при создании таблицы было определено начальное значение, тогда несмотря на то, что в операторе INSERT значе­ние этому столбцу может и не присваиваться, СУБД все равно установит его равное значению по умолчанию.

Есть несколько дополнительных замечаний, которые следует сделать по поводу второй формы оператора INSERT. Во-первых, порядок, в кото­ром перечисляются значения столбцов, должен соответствовать порядку следования их имен. В предыдущем примере имена столбцов идут в по­рядке (Name, Nationality, ArtistID), поэтому сначала должно быть указано значение столбца Name, затем - Nationality и, наконец, ArtistID. Следует отметить, что столбцы в таблице идут в другом порядке (см. табл. 1.1). Во-вторых, чтобы вставка была выполнена, необходимо задать значения всех столбцов, определенных как NOT NULL.

Если требуется скопировать большое количество данных из другой таб­лицы, их значения можно получить с помощью оператора SELECT. На­пример, следующий оператор копирует значения столбцов ArtistID, Name и Nationality из таблицы ARTIST в таблицу ARTIST_NEW (которая должна быть создана заранее):

INSERT INTO ARTIST_NEW (ArtistID, Name, Nationality)
SELECT ArtistID, Name, Nationality
FROM ARTIST;

Обратите внимание, что в этом случае ключевое слово VALUES не вхо­дит в оператор SELECT.

 



<< ПредыдущаяОглавлениеСледующая >>