Добавить новую строку в таблицу можно с помощью команды INSERT:
INSERT INTO <таблица> [(<столбец> [, <столбец>…]) | subquery]
VALUES (<значение> [, <значение>…]);
Где <таблица> – имя таблицы;
<столбец> – имена столбцов таблицы, в которые вносятся значения;
subquery – подзапрос;
<значение> – соответствующие значения столбцов.
Поскольку можно вставить новую строку, содержащую значения для каждого столбца, перечисление столбцов в предложении INSERT необязательно. Но последовательность самих значений должна соответствовать стандартной последовательности столбцов в этой таблице.
Пример 12
INSERT INTO ORDER
VALUES (61, 105, SYSDATE , SYSDATE , 14, NULL, “credit”, Y);
Пример 13
INSERT INTO ORDER (ID, CUSTOMER_ID, DATE_ORD)
VALUES (61, 105 , SYSDATE );
Вставка неопределенных значений возможна двумя способами:
1 способ – неявный: необходимо опустить столбец в списке столбцов.
2 способ – явный: нужно либо задать ключевое слово NULL в списке VALUES, либо задать пустую строку в списке VALUES (только для символьных строк и дат).
Пример 14
INSERT INTO CUSTOMER (ID, NAME)
VALUES (111, 'MIS');
Обратите внимание! Проверив статус Null с помощью команды DESCRIBE SQL*PLUS, убедитесь в том, что столбец допускает неопределенное значение.
Вставка значений с помощью переменных подстановки
Команда INSERT позволяет пользователю вводить значения в интерактивном режиме с помощью переменных подстановки SQL*PLUS.
Пример 15
INSERT INTO CUSTOMER (ID, NAME, CITY)
VALUES ('&ID', '&NAME', '&CITY');
Для дат и символьных значений амперсант и имя переменной должны быть заключены в апострофы.
Команду INSERT можно использовать для вставки в таблицу новых строк, значения которых копируются из уже существующих таблиц. Вместо предложения VALUES используется подзапрос.
Пример 16
INSERT INTO ORDER_HISTORY
(SELECT * FROM ORDER
WHERE DATE_ORD < '05/10/2000');
|