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