Главная » Программирование » Основы SQL. Оператор Insert
Русфонд

Основы SQL. Оператор Insert

28 июля 2012 - Рубрики Программирование

1384 просмотров

В сайдбар справа добавлена кнопка Google+. Если вам поможет данный материал, прошу вас нажмите на кнопку - порекомендуйте сайт в Google.

Здравствуй, уважаемый читатель!

Продолжаем изучение языка запросов SQL. Переходим к оператору Insert. Как следует из названия этот оператор позволяет вставить данные в таблицу. Синтаксис оператора выглядит следующим образом:

 

 

INSERT INTO <Название таблицы> (список полей через запятую) 
Values (список значений);

Если производится вставка во все поля таблицы, то допускается запись оператора в сокращенном виде

INSERT INTO <Название таблицы> Values (список значений);

Например, давайте вставим в таблицу Employees нового сотрудника. Данная таблица имеет следующий вид

Первое поле автоинкрементное (identity), поэтому мы его не заполняем

Обращу ваше внимение, что в СУБД ORACLE нет автоинкриментных полей. Генерация значений производится с помощью так называемых последовательностей (sequence) и для первого поля необходимо было бы в запросе написать sequence.nextval

Возможна вставка не конкретных значений, а написание вместо них подзапросов.
Например, вставим в таблицу tab1 значения департамента и средний возраст сотрудников для департамента

insert into tab1 (dept_id, average_age)
select e.dept_id, avg(e.age)
from employees e
group by e.dept_id

Ну и, как вы понимаете, подзапросы допускаются и в списке значений Values.

Также стоит заметить, что при вставке таблица должна существовать — таблицу необходимо сначала создать. Но возможно автоматическое создание таблицы на основе результата оператора Select. Для этого необходимо перед ключевым словом FROM указать ключевое слово INTO с названием таблицы
Например,

select *
into tab2
from tab1 where dept_id in (1,2)

Иногда такой вариант применяют, когда нужно скопировать структуру таблицы. В таком случае ставят в условии WHERE 1=2, при этом запрос SELECT вернет 0 строк, но структура данной таблицы будет скопирована. В ORACLE такая конструкция работать не будет. Там используется другой синтаксис оператора DDL Crate Table, мы его пока разбирать не будем.

Оперотор Insert используется не так часто, как допустим, оператор Select. Помимо прямой вставки в таблицы, данный оператор я использую для работы в отчетах. К примеру есть очень большая таблица с данными за несколько лет. В большинстве случаев все эти данные в отчете не нужны, поэтому я сначала выбираю данные во временную таблицу за период, заданный в параметрах отчета, и потом с этой временной таблицей работаю.
На этом на сегодня все. Теперь вы знаете как вставлять строки в таблицу.

Если этот материал оказался вам полезен, порекомендуйте его в в Google, нажав кнопку Google+ справа в сайдбаре или через кнопки социальных сервисов ниже.

П.С. не забудьте оставить комментарий к статье, а также поделиться ссылкой с друзьями и коллегами через социальные сервисы или скопировав ссылку на статью ниже. Кроме того, вы можете предложить тему статьи через кнопку слева "Предложить тему статьи". Там же можно оставить пожелания, идеи по развитию сайта, а также благодарности (ну а вдруг)
П.П.С. предлагаю вам также вступить в Группа Вконтакте!группу Вконтакте, где вы сможете пообщаться с участниками на интересующие вас темы. Смелее!!!
Если вы больше времени проводите в Twitter, то за обновлениями на сайте можно следить, подписавшись на мою лентуTwitter: follow me!

Возможно вам также будут интересны статьи :

 

Предыдущие материалы из данной категории:

Комментариев: 0 , , , , , , , , , ,

Понравилась статья? Поделитесь ссылкой




Оставьте комментарий:




:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)

Я человек, а не бот.