如何使用SQL INSERT語法正確新增資料

作者:帆軟行業化團隊

2025年7月07日 · 12 min read

來源:帆軟
sql insert.webp

你想學會正確新增資料到資料庫嗎?選擇正確的SQL語法很重要。你必須確認資料表結構,並瞭解每個欄位的用途。當你輸入資料時,請對應正確的欄位名稱與資料型態。這樣可以避免資料錯誤或違反規則。只要你多加練習,SQL插入會變得很簡單。

核心要點

  • 正確對應欄位名稱與資料型態,避免資料錯誤。
  • 插入資料時建議明確列出欄位名稱,減少錯誤發生。
  • 多筆資料可用多組VALUES一次插入,提高效率。
  • 利用INSERT INTO SELECT快速轉移或備份資料。
  • 設定主鍵與唯一鍵,避免重複資料與維護完整性。

基本語法

INSERT INTO格式

你在學習SQL插入時,首先要認識最基本的語法格式。標準的寫法如下:

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

你可以將所有欄位名稱列出,也可以省略欄位名稱。不過,當你省略欄位時,必須確保你提供的值順序和資料表的欄位順序完全一致。這樣資料才會正確對應。舉例來說,如果你的資料表有三個欄位,省略欄位名稱時,VALUES裡也要有三個值,順序不能錯。

小提醒:大多數資料庫都支援這種標準語法。你可以參考許多教學文獻和案例,這些資源都會展示完整欄位和簡寫語法,並提供實際範例,證明這種寫法非常普及。

欄位與數值對應

你在插入資料時,欄位和數值必須一一對應。假如某個欄位有NOT NULL限制,你一定要給這個欄位填值,否則資料庫會報錯。你也要注意欄位的順序,因為不同資料庫對欄位順序的要求可能略有不同。建議你在寫SQL插入語法時,盡量明確列出欄位名稱,這樣可以減少錯誤。

  • 常見的SQL插入語法應用包括:
    • 新增單筆資料時,完整列出所有欄位。
    • 只插入部分欄位時,必須明確指定欄位名稱。
    • 使用子查詢(INSERT INTO SELECT)時,也要確保欄位數量和型態一致。

你可以從許多範例中看到,這些語法不僅標準,也很靈活。你還能利用WHERE、GROUP BY等子句,讓插入資料更有彈性。

SQL插入單筆資料

SQL插入單筆資料
SQL插入單筆資料

標準寫法

你想新增一筆資料到資料表時,可以使用最基本的SQL插入語法。這種寫法很直接,也最容易理解。你只要指定資料表名稱、所有欄位名稱,然後給每個欄位一個對應的值。下面是一個簡單的範例:

INSERT INTO students (id, name, age) VALUES (1, '小明', 15);

這個語法會把一筆新資料加到students資料表。你必須確保每個值都對應正確的欄位。這樣資料庫才能正確儲存你的資料。

小提醒:你在寫SQL插入語法時,建議每次都把欄位名稱列出。這樣可以避免因為資料表結構改變而出錯。

你可以參考下表,了解欄位與數值的對應方式:

欄位名稱對應值
id1
name小明
age15

這種標準寫法最適合初學者。你只要照著欄位順序填寫,就能正確完成SQL插入。

部分欄位插入

有時候,你不需要填寫所有欄位。你可以只插入部分欄位的資料。這時候,你一定要明確指定要插入的欄位名稱。這樣資料庫才知道哪些欄位要填值,哪些欄位可以用預設值或留空。

舉個例子,如果students資料表的age欄位有預設值,你只想新增id和name,可以這樣寫:

INSERT INTO students (id, name) VALUES (2, '小華');

這個語法只會給id和name欄位填值。age欄位會自動用預設值。你在使用部分欄位插入時,請注意以下幾點:

  • 必須指定要插入的欄位名稱。
  • 不能省略有NOT NULL限制且沒有預設值的欄位。
  • 欄位順序要和VALUES裡的值順序一致。

注意:如果你忘記給必要的欄位填值,資料庫會出現錯誤訊息。你要先檢查資料表的欄位設定,確保每個必填欄位都有對應的值。

你學會這些基本技巧後,SQL插入單筆資料就會變得很簡單。你可以根據實際需求,選擇標準寫法或部分欄位插入,靈活操作資料庫。

多筆資料插入

多筆資料插入
多筆資料插入

你在管理大量資料時,常常需要一次新增多筆資料。如果你每次只插入一筆,資料庫會花很多時間處理。你可以利用多筆資料插入的技巧,大幅提升效率。這種方法不僅節省時間,也能減少資料庫的負擔。根據相關研究,批次處理技術在多筆資料插入時,能有效提升快取命中率、降低平均回應時間,還能延長快閃記憶體的壽命。這些實驗數據證明,批次插入確實能帶來明顯的效能提升。

多組VALUES

你可以在一條SQL插入語法中,加入多組VALUES。這樣資料庫只需執行一次指令,就能新增多筆資料。這種寫法很適合你在短時間內大量新增資料。例如:

INSERT INTO students (id, name, age) VALUES
  (3, '小美', 16),
  (4, '小強', 17),
  (5, '小安', 15);

這個語法會一次新增三筆學生資料。你只要把每一筆資料用逗號分隔,資料庫就能同時處理。這種方式比一筆一筆插入快很多。你在處理大量資料時,建議使用這種多組VALUES的寫法。

 小提示:有些資料庫對一次插入的筆數有限制。你可以查詢資料庫的官方文件,確認最大可插入筆數。

你可以參考下表,比較單筆插入與多筆插入的差異:

插入方式執行次數效能
單筆插入多次較慢
多組VALUES一次較快

你會發現,多組VALUES的方式能大幅提升SQL插入的效率。

INSERT INTO SELECT

你有時候需要把一個資料表的資料,轉移到另一個資料表。這時候,你可以使用INSERT INTO SELECT語法。這種方法不需要你一筆一筆寫VALUES,而是直接從另一個資料表選取資料。這樣不僅省時,也能避免手動輸入錯誤。

範例如下:

INSERT INTO students_backup (id, name, age)
SELECT id, name, age FROM students
WHERE age >= 16;

這個語法會把students資料表中,年齡大於等於16歲的學生資料,全部複製到students_backup資料表。你可以利用這種方式,快速完成資料轉移或備份。

 注意:你要確保兩個資料表的欄位數量和型態一致。否則資料庫會出現錯誤訊息。

你在進行資料轉移時,INSERT INTO SELECT能幫你節省大量時間。這種批次處理方式,特別適合你在資料備份、資料遷移或資料整理時使用。

你學會這些多筆資料插入技巧後,SQL插入操作會變得更有效率。你可以根據需求,選擇多組VALUES或INSERT INTO SELECT,靈活處理各種資料情境。

進階SQL插入技巧

避免重複

你在新增資料時,常常會遇到重複資料的問題。資料表如果有主鍵(PRIMARY KEY)或唯一鍵(UNIQUE),資料庫會阻止你插入重複的值。你可以利用INSERT IGNORE語法,讓資料庫自動忽略重複的資料,不會產生錯誤。例如:

INSERT IGNORE INTO students (id, name, age) VALUES (1, '小明', 15);

這個語法如果遇到id已經存在,就會自動跳過,不會中斷整個SQL插入流程。你也可以用ON DUPLICATE KEY UPDATE,當資料重複時,自動更新指定欄位:

INSERT INTO students (id, name, age) VALUES (1, '小明', 16)
ON DUPLICATE KEY UPDATE age = 16;

這樣如果id已經存在,age欄位就會被更新。你可以用這些技巧,讓資料維持唯一性,也能避免重複錯誤。

小提醒:你在設計資料表時,建議設定主鍵或唯一鍵,這樣才能有效防止重複資料。

資料完整性

你要確保資料正確無誤,必須維護資料完整性。主鍵和唯一鍵可以幫你防止重複資料。NOT NULL限制可以避免欄位出現空值。你在進行SQL插入時,應該檢查每個欄位的限制,確保資料符合規則。

限制類型功能說明
PRIMARY KEY保證每筆資料唯一
UNIQUE防止欄位重複
NOT NULL不允許空值

你如果忽略這些限制,資料庫會出現錯誤訊息。你可以先查詢資料表結構,確認每個欄位的規則,再進行插入。這樣可以大幅減少錯誤發生。

 注意:你在大量SQL插入時,建議先測試小量資料,確保資料格式正確,再批次新增。

常見錯誤

欄位錯誤

你在寫SQL插入語法時,最常遇到的問題就是欄位錯誤。這種錯誤通常發生在欄位名稱拼錯、欄位數量不一致,或是欄位順序對應錯誤。資料庫會出現錯誤訊息,像是「Unknown column」或「Column count doesn't match value count」。你可以參考下表,快速檢查常見欄位錯誤:

錯誤類型可能原因解決方法
欄位名稱拼錯拼字有誤檢查資料表結構
欄位數量不一致VALUES數量不正確對應欄位與數值
欄位順序錯誤欄位與值順序不符明確列出欄位名稱

小提醒:你在插入資料前,建議先用DESCRIBE 資料表名稱;查詢欄位資訊。這樣可以減少欄位錯誤的發生。

資料違規

你在新增資料時,還會遇到資料違規的情況。這些錯誤通常和資料型態、NOT NULL限制、唯一鍵或主鍵有關。舉例來說,如果你把文字資料插入到數字欄位,資料庫會報錯。如果你忘記填寫NOT NULL欄位,或是插入重複的主鍵值,也會失敗。

常見資料違規錯誤包括:

  • 資料型態不符(如將字串插入整數欄位)
  • 必填欄位未填(NOT NULL違規)
  • 主鍵或唯一鍵重複

你可以這樣排解:

  1. 檢查每個欄位的資料型態,確保輸入的值正確。
  2. 填寫所有必填欄位,不要遺漏。
  3. 插入前先查詢資料表,避免重複主鍵或唯一值。

 注意:你在練習SQL插入時,遇到錯誤訊息不要緊張。你可以根據錯誤內容,逐步檢查欄位設定與資料內容,很快就能找到問題。

 

你已經學會正確使用SQL INSERT語法。請記得每次插入資料時,對應正確欄位與資料型態。遇到錯誤時,先檢查欄位設定與資料內容。

小提醒:多加練習可以幫助你熟悉語法。你也可以學習進階插入技巧,讓資料操作更有效率。

  • 維護資料完整性
  • 避免常見錯誤
  • 持續提升SQL能力

FAQ

如何避免插入重複資料?

你可以使用 INSERT IGNOREON DUPLICATE KEY UPDATE。這樣資料庫會自動忽略重複資料,或直接更新現有資料。

小提醒:記得設定主鍵或唯一鍵,才能正確判斷重複。

插入資料時忘記填寫必填欄位怎麼辦?

資料庫會顯示錯誤訊息。你需要檢查資料表結構,確認所有 NOT NULL 欄位都有填值。

  • 建議先用 DESCRIBE 資料表名稱; 查詢欄位資訊。

可以一次插入很多筆資料嗎?

你可以在一條 SQL 指令中加入多組 VALUES。這樣能大幅提升插入效率,減少資料庫負擔。

INSERT INTO 表名 (欄位1, 欄位2) VALUES (1, 'A'), (2, 'B');

欄位型態不符會發生什麼事?

資料庫會拒絕這筆資料,並顯示錯誤訊息。你要檢查每個欄位的型態,確保輸入的資料正確。

注意:數字欄位不能插入文字,日期欄位要用正確格式。

如何查詢資料表的欄位資訊?

你可以使用下列指令快速查詢:

DESCRIBE 資料表名稱;

這樣你能看到所有欄位名稱、型態和限制,方便你正確插入資料。

帆軟產品免費試用

企業戰情室報表軟體

企業戰情室報表軟體

複雜報表/戰情室/資料填報/數位孿生

企業商業智慧BI軟體

企業商業智慧BI軟體

自助資料處理/Dashboard/探索分析

一站式資料整合平台

一站式資料整合平台

資料同步/ETL資料開發/API資料服務

免費資源下載

×

立即下載

姓名

郵箱

公司完整名稱

管道了解

-- 您是怎麽瞭解的我們 --

網路搜尋
Facebook臉書
媒體/部落格/論壇
YouTube
電子報
線下展會
線下課程
他人推薦
其他

職位

-- 選擇您的職稱 --

IT資訊&數據部門
一般部門
管理/ 決策者
老師
學生
其他

是否有報表/BI/數位建設需求?

-- 請選擇 --

沒有
不確定

手機號碼

SMS 驗證碼

×

立即下載

姓名

郵箱

公司完整名稱

管道了解

-- 您是怎麽瞭解的我們 --

網路搜尋
Facebook臉書
媒體/部落格/論壇
YouTube
電子報
線下展會
線下課程
他人推薦
其他

職位

-- 選擇您的職稱 --

IT資訊&數據部門
一般部門
管理/ 決策者
老師
學生
其他

是否有報表/BI/數位建設需求?

-- 請選擇 --

沒有
不確定

手機號碼

SMS 驗證碼

×

立即下載

姓名

郵箱

公司完整名稱

管道了解

-- 您是怎麽瞭解的我們 --

網路搜尋
Facebook臉書
媒體/部落格/論壇
YouTube
電子報
線下展會
線下課程
他人推薦
其他

職位

-- 選擇您的職稱 --

IT資訊&數據部門
一般部門
管理/ 決策者
老師
學生
其他

是否有報表/BI/數位建設需求?

-- 請選擇 --

沒有
不確定

手機號碼

SMS 驗證碼

×

立即下載

姓名

郵箱

公司完整名稱

管道了解

-- 您是怎麽瞭解的我們 --

網路搜尋
Facebook臉書
媒體/部落格/論壇
YouTube
電子報
線下展會
線下課程
他人推薦
其他

職位

-- 選擇您的職稱 --

IT資訊&數據部門
一般部門
管理/ 決策者
老師
學生
其他

是否有報表/BI/數位建設需求?

-- 請選擇 --

沒有
不確定

手機號碼

SMS 驗證碼

×

立即下載

姓名

郵箱

公司完整名稱

管道了解

-- 您是怎麽瞭解的我們 --

網路搜尋
Facebook臉書
媒體/部落格/論壇
YouTube
電子報
線下展會
線下課程
他人推薦
其他

職位

-- 選擇您的職稱 --

IT資訊&數據部門
一般部門
管理/ 決策者
老師
學生
其他

是否有報表/BI/數位建設需求?

-- 請選擇 --

沒有
不確定

手機號碼

SMS 驗證碼

×

立即下載

姓名

郵箱

公司完整名稱

管道了解

-- 您是怎麽瞭解的我們 --

網路搜尋
Facebook臉書
媒體/部落格/論壇
YouTube
電子報
線下展會
線下課程
他人推薦
其他

職位

-- 選擇您的職稱 --

IT資訊&數據部門
一般部門
管理/ 決策者
老師
學生
其他

是否有報表/BI/數位建設需求?

-- 請選擇 --

沒有
不確定

手機號碼

SMS 驗證碼

我們很樂意傾聽你的需求,解答您的疑問,並提供專業建議, 助力您的企業實現智慧轉型!

×

意見回饋

姓名

電郵

公司

國家/地區

-- select an option --

電話

投訴原因

請選擇投訴原因

代理商問題
產品問題
技術支援服務問題
專案問題
銷售問題
商務問題
行銷問題
其他

投訴內容