В этом учебном пособии вы узнаете, как использовать PostgreSQL оператор INSERT с синтаксисом и примерами.
Описание
PostgreSQL оператор INSERT используется для вставки одной или нескольких записей в таблицу в PostgreSQL.
Синтаксис
Синтаксис для PostgreSQL оператора INSERT при вставке записи (записей) с использованием ключевого слова VALUES:
(column1, column2,... )
VALUES
(expression1 | DEFAULT, expression2 | DEFAULT,... ),
(expression1 | DEFAULT, expression2 | DEFAULT,... ),
...;
Или
Синтаксис для оператора INSERT при вставке одной записи с использованием ключевого слова DEFAULT VALUES в PostgreSQL:
(column1, column2,... )
DEFAULT VALUES;
Или
Синтаксис для оператора INSERT при вставке нескольких записей с использованием подзапроса в PostgreSQL:
(column1, column2,... )
SELECT expression1, expression2,...
FROM source_table
[WHERE conditions];
Параметры или аргументы
- table
- Таблица для вставки записей.
- column1, column2
- Столбцы в table для вставки значений.
- expression1 | DEFAULT, expression2 | DEFAULT
- Используется в первом синтаксисе. Эти значения присваиваются столбцам в таблице. Если указано expression1, тогда column1 будет присвоено значение expression1, column2 будет присвоено значение expression2 и так далее. Если указано DEFAULT, соответствующий столбец будет заполнен значением по умолчанию.
- DEFAULT VALUES
- Используется во втором синтаксисе. Все столбцы будут заполнены значениями по умолчанию.
- source_table
- Используется в третьем синтаксис. Это исходная таблица при вставке данных из другой таблицы.
- WHERE conditions
- Необязательный. Используется в третьем синтаксис. Это условия, которые должны быть соблюдены для вставки записей.
Примечание
- При вставке записей в таблицу с помощью PostgreSQL операторе INSERT необходимо указать значение для каждого столбца NOT NULL.
- Вы можете опустить столбец в PostgreSQL операторе INSERT, если столбец допускает значения NULL.
Пример - использование ключевого слова VALUES
Самый простой способ создать PostgreSQL запрос INSERT для получения списка значений с помощью ключевого слова VALUES.
Например:
1 2 3 4 |
INSERT INTO contacts (contact_id, last_name, first_name, country) VALUES (250, 'Abramova', 'Irina', DEFAULT); |
Этот PostgreSQL оператор INSERT приведет к вставке одной записи в таблицу contacts. Эта новая запись будет иметь contact_id 250, last_name 'Abramova', first_name 'Irina', и любое значение по умолчанию для поля country.
Вы можете использовать приведенный выше синтаксис для вставки более одной записи одновременно.
Например:
1 2 3 4 5 |
INSERT INTO contacts (contact_id, last_name, first_name, country) VALUES (250, 'Abramova', 'Irina', DEFAULT), (251, 'Arbatova', 'Vitalina', 'Russia'); |
Этот PostgreSQL оператор INSERT приведет к вставке двух записей в таблицу contacts. Первая запись будет иметь contact_id 250, last_name 'Abramova', first_name 'Irina' и любое значение по умолчанию для поля country . Вторая запись будет иметь contact_id 251, last_name 'Arbatova', first_name 'Vitalina' и country 'Russia'.
Это будет эквивалентно следующим двум операторам INSERT:
1 2 3 4 5 6 7 8 9 |
INSERT INTO contacts (contact_id, last_name, first_name, country) VALUES (250, 'Abramova', 'Irina', DEFAULT); INSERT INTO contacts (contact_id, last_name, first_name, country) VALUES (251, 'Arbatova', 'Vitalina', 'Russia'); |
Пример - использование ключевого слова DEFAULT VALUES
В PostgreSQL вы также можете вставить запись в таблицу, используя синтаксис DEFAULT VALUES.
Например:
1 2 3 |
INSERT INTO contacts (contact_id, last_name, first_name, country) DEFAULT VALUES; |
Этот PostgreSQL оператор INSERT приведет к вставке одной записи в таблицу contacts. Эта новая запись будет создана со значениями по умолчанию для полей contact_id, last_name, first_name и country.
Пример - использование подзапроса
Вы также можете создавать более сложные PostgreSQL операторы INSERT, используя подзапросы.
Например:
1 2 3 4 5 |
INSERT INTO contacts (last_name, first_name) SELECT last_name, first_name FROM customers WHERE customer_id > 3500; |
Поместив оператор SELECT в оператор INSERT, вы можете быстро выполнить несколько операций вставки.
При таком типе вставки вы можете проверить количество вставляемых строк. Вы можете определить количество строк, которые будут вставлены, выполнив следующий SELECT оператор PostgreSQL перед выполнением вставки.
1 2 3 |
SELECT count(*) FROM customers WHERE customer_id > 3500; |