SQL 筆記:新增資料 INSERT INTO

在 SQL 裡,INSERT 語法用來新增資料,屬於 CRUD 四大操作中的 Create 部分。

INSERT INTO 基本語法:指定欄位與對應值

INSERT INTO 表名稱 (欄位1, 欄位2, 欄位3, ...)
VALUES (值1, 值2, 值3, ...);

範例:

假設有一個 users 表格如下:

id name email age
1 Simon Simon@mail.com 25
2 Allen Allen@mail.com 30

現在要新增一個使用者:

INSERT INTO users (name, email, age)
VALUES ('Charlie', 'charlie@example.com', 28);

精簡語法:不指定欄位,直接塞值

INSERT INTO 表名稱
VALUES (值1, 值2, 值3, ...);

這個寫法雖然比較簡潔,但風險也比較高。因為必須確保欄位的順序、數量、型態與表格定義完全一致,否則就可能會資料寫錯欄位,甚至執行失敗。

範例(基於上面的 users 表格):

INSERT INTO users
VALUES (3, 'Daisy', 'daisy@mail.com', 22);

部分欄位新增

不一定要一次填滿所有欄位。只要該欄位允許為 NULL,或有預設值就可以不提供對應值。

INSERT INTO users (name, email)
VALUES ('Eva', 'eva@mail.com');

在這個例子中,假設 age 欄位允許為 NULL 或有預設值,這樣的語法就能成功執行,而 age 欄位會顯示為空或預設值。

一次新增多筆資料

也可以一口氣新增多筆資料,適合匯入初始資料或加快效能。

INSERT INTO users (name, email, age)
VALUES 
  ('Frank', 'frank@mail.com', 33),
  ('Grace', 'grace@mail.com', 27),
  ('Henry', 'henry@mail.com', 31);

這樣比起一筆筆 INSERT,在效能與可讀性上都更好一些。

結語

INSERT 是每個資料表的起點,就像填寫表單一樣,清楚明確的資料輸入方式能讓整個資料系統更穩定、好維護。