Добавление новых строк в таблицу
Первой мы собираемся обсудить операцию манипулирования данными, приводящую к их изменению, которая представляет собой операцию по вставке в таблицу новых строк. Как известно, сразу после создания таблицы данные в ней отсутствуют, если только таблица не была создана и заполнена данными, выбранными из другой таблицы. Но даже в этом случае данные должны откуда-то взяться. Это самое "откуда-то" и есть пользователи, которые вводят данные в таблицы с помощью операторов insert. Синтаксис оператора insert отличается от синтаксиса оператора select. В самом общем случае синтаксис оператора insert имеет следующий вид: insert into имя_таблицы (список_столбцов) values (список_значений). Здесь имя_таблицы— это имя той таблицы, в которую вы хотите вставить данные, список_столбцов — это перечень столбцов, для которых вы хотите определить значения из вставляемой записи, а список_значений — это перечень тех значений, которые вы желаете определить, Тип данных, которые используются вами в качестве значений в операторе insert, должен соответствовать типу данных для столбца, определенного в соответствующем месте списка столбцов. Давайте с помощью следующего блока кода вспомним состав определенной нами в лекции 5 таблицы EMPLOYEE:
SQL> desc employee
Name Null? Type
EMPJD NOT NULL VARCHAR2S5)
LASTNAME NOT NULL VARCHAR2(25)
FIRSTHAME VARCHAB2(25)
SALARY NUMBER(10,4)
HIREJDATE DATE
DEPT VARCHAR2(10)
СоветМы решили иметь дело со своей собственной таблицей EMPLOYEE, которую создали в лекции 5, чтобы не изменять постоянно содержимое таблицы ЕМР, поставляемой в каждом комплекте базы данных Oracle.
Ниже приводятся, три примера использования оператора insert для вставки новых значений в эту таблицу:
SQL> insert into employee (empid, lastname, firstnams,
2 salary, dept, hire_date)
3 values ('39334', 'SMITH', 'GINA', 75000, null, '15-MAR-97');
1 row created.
SQL> insert into employee (empid, lastname, firstname, salary,
2 dept, hire_date)
3 values ('49539', 'LEE', 'QIANT, 9COOO, '5Q4A', '25-MAY-99');
1 row created.
SQL> insert into employee (empid, lastname, firstname, salary,
2 dept, hire_date)
3 values ('60403' , 'HARPER', 'ROD', 45000, '504A', '30-APR-79'};
1 row created.
СоветЕсли вы желаете работать с собственной базой данных, помните, что ранее при обсуждении ограничений нами было создано несколько различных версий таблицы EMPLOYEE. Поэтому нужно убедиться, что ваша версия таблицы содержит все столбцы, перечисленные в приведенном выше операторе describe, и использовать для нее все необходимые операторы alter table, прежде чем начать вставлять в нее данные.
Каждый из предшествующих операторов insert состоит из двух частей. В первой части определяется таблица, в которую будут вставляться данные, вместе с теми столбцами таблицы, куда будут вставлены значения. Во второй части оператора определяются реальные значения данных для вводимой строки. Эта часть оператора обозначается ключевым словом values. Обратите внимание, как каждое значение из списка значений позиционно соответствует определенному в списке столбцов столбцу. А если вы вспомните информацию, описывающую таблицу, то заметите, что тип данных каждого из вводимых значений соответствует тем типам данных, которые Oracle ожидает получить для данного столбца. Проверьте также, не забыли ли вы заключить в одиночные кавычки символьные данные и даты.
Дата добавления: 2015-08-21; просмотров: 781;