PostgreSQL - INSERT 查詢:初學者指南

你好啊,未來的數據庫魔法師們!今天,我們將要進入 PostgreSQL 的奇妙世界,並學習其中最基本的操作之一:INSERT 查詢。別擔心如果你是編程新手 - 我會一步步引導你,就像我過去幾年來對無數學生做的那樣。所以,來一杯咖啡(或者如果你喜歡,來一杯茶),我們開始吧!

PostgreSQL - Insert Query

INSERT 查詢是什麼?

在我們深入研究語法和範例之前,讓我們先了解 INSERT 查詢到底在做什麼。想像你有一本大書(這就是我們的數據庫),裡面有許多頁(表)。INSERT 查詢就像在這些頁面中的一個寫下新的條目。這是我們向數據庫表中添加新信息的辦法。

語法

現在,讓我們來看看 PostgreSQL 中 INSERT 查詢的基本語法:

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

別讓這個嚇到你!讓我們分解一下:

  • INSERT INTO:這是告訴 PostgreSQL 我們想要添加新數據的方式。
  • table_name:這是我們想要添加數據的表名。
  • (column1, column2, column3, ...):這是我們想要填滿數據的表中的列。
  • VALUES:這個關鍵字引介了我們要插入的實際數據。
  • (value1, value2, value3, ...):這是我們添加的值,對應到我們指定的列。

範例

範例 1:插入單一行

假設我們有一個叫做 students 的表,其中有 idnameage 的列。以下是如何添加一個新學生的方法:

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 列被設為自動增加,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 子句插入

PostgreSQL 有一个很酷的功能,讓我們可以看到插入的是什麼:

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

這個查詢不僅將 David 插入我們的表,還會向我們顯示添加的完整行,包括任何默認或自動生成的值。

常見 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');
從選擇插入 從另一個表中複製數據 INSERT INTO new_students SELECT * FROM students WHERE age < 21;
带有 RETURNING 的插入 插入並返回添加的數據 INSERT INTO students (name, age) VALUES ('David', 24) RETURNING *;

結論

好了,各位!我們已經遊歷了 PostgreSQL INSERT 查詢的領地。從添加一個學生到我們的班級到一次招收一群學生,現在你可以輕鬆地填充你的數據庫了。

記住,熟能生巧。嘗試創建你自己的表並插入不同類型的數據。也許創建一個你喜歡的書籍或電影的表並開始添加到其中。在你意識到之前,你將會像專家一樣插入數據!

開心編程,願你的數據庫總是充滿且無錯誤!

Credits: Image by storyset