INSERT ОПЕРАТОР

В этом учебном пособии вы узнаете, как использовать Oracle оператор INSERT с синтаксисом и примерами и практическими упражнениями.

Описание

Oracle оператор INSERT используется для вставки одной записи или несколько записей в таблицу Oracle.

Синтаксис

Синтаксис Oracle оператора INSERT при вставке одной записи с помощью ключевого слова VALUES:

INSERT INTO table
(column1, column2, ... column_n )
VALUES
(expression1, expression2, ... expression_n );

ИЛИ синтаксис Oracle оператора INSERT при вставке нескольких записей с помощью оператора SELECT:

INSERT INTO table
(column1, column2, ... column_n )
SELECT expression1, expression2, ... expression_n
FROM source_table
[WHERE conditions];

Параметры или аргументы

table
Таблица для вставки в нее записей.

column1, column2, ... column_n
Столбцы таблицы для вставки значений

expression1, expression2, ... expression_n
Значения для столбцов таблицы. Так column1 будет присвоено значение expression1, column2 будет присвоено значение expression2, и так далее.

source_table
Исходная таблица из которой будут вставляться данные.

WHERE conditions
Необязательный. Условия, которые должны быть выполнены для вставляемых записей.

Примечание

  • При вставке записей в таблицу с помощью оператора Oracle INSERT, необходимо указать значение NOT NULL для каждого столбца.
  • Вы можете опустить столбец из Oracle оператора INSERT, если столбец принимает NULL значения.

Пример использования ключевого слов VALUES

Самый простой способ создания Oracle запроса INSERT с использованием ключевого слова VALUES.

Например:

Этот Oracle INSERT приведет к вставке одной записи в таблицу suppliers. Эта новая запись будет иметь supplier_id 5000 и supplier_name 'Nike'.

Пример использования SELECT

Кроме того, можно создавать более сложные Oracle предложения INSERT с помощью оператора SELECT.

Например:

Размещая SELECT внутри предложения INSERT, вы можете быстро выполнить многократные вставки.

С этим типом вставки, вы можете проверить количество строк, которые вставляете. Вы можете определить количество строк, которые будут вставлены, выполнив следующий SELECT, перед выполнением вставки.

Часто задаваемые вопросы

Вопрос: Я создал базу данных клиентов. Я знаю, что вы используете Oracle оператор INSERT для вставки информации в базу данных, но как я могу убедиться, что не ввел ту же информацию о клиенте снова?

Ответ: Вы можете убедиться, что не вставить повторяющуюся информацию, используя условие EXISTS.

Например, если у вас была таблица с названием clients с первичным ключом client_id, вы можете использовать следующий INSERT:

Это Oracle предложение INSERT вставляет несколько записей с подзапросом.

Если вы хотите вставить одну запись, вы можете использовать следующее Oracle предложение INSERT:

Использование таблицы dual позволяет ввести значения в операторе select, даже если значения не хранятся в настоящее время в таблице.

Вопрос: Как я могу вставить несколько строк явных данных в одном предложении INSERT в Oracle?

Ответ: Ниже приведен пример того, как можно вставить 3 строки в таблицу suppliers в Oracle, используя оператор INSERT:

Практическое упражнение № 1:

На основании таблицы contacts, вставить запись контакта contact_id=1000, last_name является John, first_name Smit, и address 10 Somewhere St.:

Решение для практического упражнения № 1:

Следующий Oracle оператор INSERT будет вставить эту запись в таблицу contacts:

Практическое упражнение № 2:

На основании таблицы contacts и customers, вставить в таблицу contacts всех customers, которые проживают в штате Nevada.

Решение для практического упражнения № 2:

Следующий оператор Oracle INSERT вставит запись в таблицу customers:

Так как количество полей в таблицах contacts и customers одинаковы и поля перечислены в том же порядке, то вы могли бы записать решение следующим образом (хотя это, как правило, лучшая практика, перечислить весь список имен столбцов в случае изменения определения таблицы):