
Вставка, выборка, модификация и удаление записей таблиц
После изучения вопросов, связанных с созданием и модификацией структуры таблиц, закономерно возникает вопрос о том, каким образом можно создавать, модифицировать, удалять данные, которые будут в них храниться, а также получать доступ к данным.
В данном случае необходимо перейти от изучения языка определения данных DDL (Data Definition Language) к изучению языка манипуляции данными DML (Data Manipulation Language).
Рассмотрим последовательно все основные операции, выполняемые над информацией, которая хранится в таблицах базы данных.
7.4.1. Операции вставки строк
Для выполнения вставки строк в таблицы предназначен оператор INSERT, который имеет следующий синтаксис:
INSERT INTO [имя_схемы.]имя_таблицы
[(имя_колонки1, имя_колонки2, ...)]
VALUES (выражение1, выражение2, ...)
Необязательный параметр имя_схемы используется для уточнения имени схемы, в которой находится таблица Oracle. По умолчанию используется схема пользователя, выполняющего операцию.
Перечисление колонок (имя_колонки1, имя_колонки2, ...) является необязательным. В случае его отсутствия подразумевается, что при вставке строки будут заполнены поля соответствующие всем колонкам, при этом порядок следования колонок будет использоваться тот, который был задан при создании таблицы с помощью команды CREATE TABLE.
Параметры (выражение1, выражение2, ...) заменяются на вычисляемые значения.
Рассмотрим использование команды INSERT на примерах. Пусть таблица project была создана следующей командой:
CREATE TABLE project (
proj_no NUMBER(4),
proj_name VARCHAR2(30),
bdate DATE,
budget NUMBER(10,2) )
Тогда для вставки строк в таблицу project можно использовать следующие команды:
INSERT INTO project (proj_name, proj_no, budget, bdate,) VALUES (’Проект 1’,1, ,123.45, TO_DATE(’01.06.2009’,’DD.MM.YYYY’))
INSERT INTO project (proj_no, proj_name) VALUES (2, ’Проект 2’)
INSERT INTO project VALUES (1, ’Проект 1’, TO_DATE(’01.06.2009’,’DD.MM.YYYY’), 123.45)
В команде (1) перечислены все колонки таблицы project в произвольном порядке. После ключевого слова VALUES записаны выражения, значения которых будут вычислены и помещены в соответствующие поля таблицы project.
При заполнении колонок, имеющих тип DATE, в прикладных программах пользовательский интерфейс позволяет вводить дату в обычном национальном формате (например, 2 символа числа, 2 символа месяца и 4 символа года, разделенные точкой). Однако при составлении запроса, выполняющего вставку строки, в которой есть колонки типа DATE, необходимо использовать встроенную функцию TO_DATE, которой в качестве параметров передаются строка, содержащая дату (’01.06.2009’), и строка, содержащая формат даты (’DD.MM.YYYY’).
В команде (2) перечислены не все колонки. При выполнении такой команды поля, соответствующие отсутствующим колонкам, будут заполнены неопределенным (NULL) значением.
В команде (3) перечисление колонок отсутствует, то есть по умолчанию подразумеваются тот состав и тот порядок колонок, которые были использованы в команде CREATE TABLE.
Строки, которые необходимо вставить в таблицу, могут быть результатом запроса к другой таблице или представлению. При этом синтаксис команды INSERT будет иметь следующий вид: