PostgreSQL - INSERT Запрос: Пособие для начинающих

Здравствуйте, будущие маги баз данных! Сегодня мы окунемся в чудесный мир PostgreSQL и узнаем о одной из его самых основных операций: запрос INSERT. Не волнуйтесь, если вы новички в программировании - я проведу вас через это шаг за шагом, как я делал это для countless студентов за годы преподавания. Так что возьмите杯 кофе (или чай, если это ваше дело), и давайте начнем!

PostgreSQL - Insert Query

Что такое запрос INSERT?

Прежде чем мы перейдем к синтаксису и примерам, давайте поймем, что на самом деле делает запрос INSERT. Представьте себе большую книгу (это наша база данных) с несколькими страницами (таблицами). Запрос INSERT как если бы вы писали новую запись на одной из этих страниц. Это то, как мы добавляем новую информацию в наши таблицы базы данных.

Синтаксис

Теперь давайте посмотрим на базовый синтаксис запроса INSERT в PostgreSQL:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

Не позволяйте этому напугать вас! Давайте разберем это:

  • INSERT INTO: Это как мы говорим PostgreSQL, что хотим добавить новые данные.
  • table_name: Это имя таблицы, в которую мы хотим добавить наши данные.
  • (column1, column2, column3, ...): Это колонки в нашей таблице, которые мы хотим заполнить данными.
  • VALUES: Этот ключевой запрос introduces actual данные, которые мы вставляем.
  • (value1, value2, value3, ...): Это значения, которые мы добавляем, соответствующие колонкам, которые мы указали.

Примеры

Пример 1: Вставка одной строки

Давайте представим, что у нас есть таблица students с колонками id, name, и age. Вот как мы можем добавить нового студента:

INSERT INTO students (id, name, age)
VALUES (1, 'John Doe', 20);

Что происходит здесь? Мы добавляем нового студента с ID 1, по имени John Doe, которому 20 лет. Это как если бы мы заполняли форму для нового студента, который присоединяется к нашему классу!

Пример 2: Вставка нескольких строк

PostgreSQL позволяет нам вставлять несколько строк одним махом. Это как если бы мырегистрировали нескольких студентов сразу:

INSERT INTO students (id, name, age)
VALUES
(2, 'Jane Smith', 22),
(3, 'Bob Johnson', 21),
(4, 'Alice Brown', 23);

Этот запрос добавляет три новых студента в нашу таблицу одним выстрелом. Эффективно, правда?

Пример 3: Вставка с умолчательными значениями

Иногда наши таблицы имеют умолчательные значения для某些 колонок. Мы можем пропустить указание этих:

INSERT INTO students (name, age)
VALUES ('Charlie Davis', 19);

В этом случае, если наша колонка id настроена на автоматическое increment, PostgreSQL автоматически присвоит следующий доступный ID.

Результат

После выполнения запроса INSERT, PostgreSQL обычно возвращает сообщение, указывающее, сколько строк было вставлено. Например:

INSERT 0 1

Это означает, что одна строка была успешно вставлена. Если мы вставляли несколько строк, это может выглядеть так:

INSERT 0 3

Это указывает на то, что три строки были добавлены.

Продвинутые техники INSERT

Вставка данных из другой таблицы

Иногда нам может понадобиться скопировать данные из одной таблицы в другую. PostgreSQL делает это легко:

INSERT INTO new_students (name, age)
SELECT name, age FROM students WHERE age < 21;

Этот запрос копирует всех студентов младше 21 года из таблицы students в таблицу new_students. Это как если бы мы создавали особый класс для младших студентов!

Вставка с использованием RETURNING Clause

PostgreSQL имеет полезную функцию, которая позволяет нам видеть, что было вставлено:

INSERT INTO students (name, age)
VALUES ('David Wilson', 24)
RETURNING *;

Этот запрос не только вставляет Davida в нашу таблицу, но и показывает нам complete строку, которая была добавлена, включая любые умолчательные или автоматически сгенерированные значения.

Общие методы INSERT

Вот таблица, резюмирующая методы INSERT, о которых мы говорили:

Метод Описание Пример
Базовая вставка Вставляет одну строку INSERT INTO students (name, age) VALUES ('John Doe', 20);
Вставка нескольких строк Вставляет несколько строк одним махом INSERT INTO students (name, age) VALUES ('Jane', 22), ('Bob', 21);
Вставка с умолчаниями Позволяет базе данных заполнить умолчательные значения INSERT INTO students (name) VALUES ('Alice');
Вставка из SELECT Копирует данные из другой таблицы INSERT INTO new_students SELECT * FROM students WHERE age < 21;
Вставка с RETURNING Вставляет и возвращает добавленные данные INSERT INTO students (name, age) VALUES ('David', 24) RETURNING *;

Заключение

И вот мы и добрались до конца, друзья! Мы совершили путешествие через землю запросов INSERT в PostgreSQL. От добавления одного студента к нашему классу до регистрации целой группы сразу, вы теперь обладаете возможностью populate ваши базы данных с легкостью.

помните, что практика делает мастера. Попробуйте создавать свои таблицы и вставлять разного рода данные. Может быть, создайте таблицу для ваших любимых книг или фильмов и начните добавлять в нее. Before you know it, вы будете вставлять данные как профи!

Счастливого кодирования, и пусть ваши базы данных всегда будут хорошо заполнены и свободны от ошибок!

Credits: Image by storyset