Модификация данных подразумевает три возможных операции: вставка, изменение и удаление. В этом разделе показывается как выполняются эти операции средствами языка SQL.
Вставка данных
Для вставки данных в таблицы служит 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.