CodeGym /課程 /SQL SELF /用 INSERT INTO 插入資料的基礎

用 INSERT INTO 插入資料的基礎

SQL SELF
等級 21, 課堂 0
開放

什麼是插入資料?

想像一下你開了一間大學。你有一個資料庫,裡面有一些資料表,比如 students,用來存學生的資訊。現在要公佈有哪些學生錄取了,然後把他們的資料加到資料表裡。在 SQL 裡,這就要用 INSERT INTO 這個指令。它可以幫你加一筆新資料進資料表——就像你在 Excel 裡手動填一行,但更快、更強大,還能用程式碼搞定!

插入資料不只是基本任務,幾乎到處都會用到——從網路商店記錄訂單,到銀行存交易資訊。大學的話,就是學生名單、老師名單,還有課表什麼的。

INSERT INTO 指令的基本語法

在 SQL 裡,INSERT INTO 指令就是最簡單的加新資料到資料表的方法。來看一下基本語法:

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

語法說明:

  1. table_name — 你要加資料的資料表名稱。
  2. (column1, column2, column3, ...) — 欲指定值的欄位清單。
  3. VALUES (value1, value2, value3, ...) — 你要插入到對應欄位的值。

舉個例子:加一個新學生到 students 資料表。假設我們有這樣的表:

id name age course
1 Otto Song 18 數學

現在用 INSERT INTO 加第二個學生:

INSERT INTO students (id, name, age, course)
VALUES (2, 'Anna Lin', 19, '資訊科學');

執行完後,資料表會變這樣:

id name age course
1 Otto Song 18 數學
2 Anna Lin 19 資訊科學

插入所有欄位的資料

如果你想要一次插入所有欄位的值,可以不用寫欄位名稱。前提是你要照正確順序給每個欄位一個值。

語法:

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

舉例:再加一個學生到 students:

INSERT INTO students
VALUES (3, 'Dan Sim', 20, '物理');

結果:

id name age course
1 Otto Song 18 數學
2 Anna Lin 19 資訊科學
3 Dan Sim 20 物理

不過這種寫法有點危險,如果資料表結構改了就容易出錯。所以建議還是寫欄位名稱,比較不會出包。

實戰:加一個學生

來試試看用 INSERT INTO 的全部功能,幫 students 表加一個新學生。

步驟 1:先查現有資料

開始前,先查一下表裡現在有什麼資料。用 SELECT:

SELECT * FROM students;

步驟 2:加新學生

現在加一個學生 Peter Chi,他讀「生物」課程,今年 21 歲:

INSERT INTO students (id, name, age, course)
VALUES (4, 'Peter Chi', 21, '生物');

步驟 3:確認資料有加進去

再查一次全部資料:

SELECT * FROM students;

結果:

id name age course
1 Otto Song 18 數學
2 Anna Lin 19 資訊科學
3 Dan Sim 20 物理
4 Peter Chi 21 生物

很酷吧?Peter 現在已經加到我們大學了。

INSERT INTO 常見錯誤

欄位和數值數量不符。 比如你寫了 4 個欄位,但只給 3 個值,SQL 會直接報錯:

INSERT INTO students (id, name, age)
VALUES (5, 'Eva Green', 22, '化學');

錯誤:欄位數量和數值數量不一致。

違反限制。 如果欄位有 UNIQUE 或 NOT NULL 限制,違規就會失敗。

資料型態錯誤。

如果你把文字塞進數字欄位,PostgreSQL 也會不爽:

INSERT INTO students (id, name, age, course)
VALUES (5, 'Axel Linz', '二十', '化學');

這在實際專案裡有什麼用?

會用 INSERT INTO 這招,幾乎所有跟資料庫有關的應用都會用到。現實生活裡,你會用這個指令來:

  • 註冊新用戶到系統。
  • 網路商店加訂單。
  • 支付系統存付款資料。
  • 教育系統每天更新學生、出席、成績資料。

每次你的應用程式要跟用戶或外部資料來源互動時,INSERT INTO 就是把資料寫進資料庫的主力工具。

如果你在寫 backend 應用,或打算做 API 來處理資料,會用 SQL 插入資料這招,雖然很基礎,但超級重要!

2
任務
SQL SELF, 等級 21, 課堂 0
上鎖
插入多行到資料表
插入多行到資料表
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION