插入單一資料列
選取demodb資料庫後,滑鼠右鍵點擊新增查詢後,輸入以下SQL 指令後,按下 執行:
SELECT * FROM Units ORDER BY Id
INSERT INTO Units VALUES ('PG', '套' , '')
SELECT * FROM Units ORDER BY Id
執行結果: 可以用選取一行一行指令來觀察執行結果
- 新增前查詢
- 執行新增
- 新增後查詢
- 不選取行來一次執行
插入多個資料列
一個指令可以新增多個資料,選取demodb資料庫後,滑鼠右鍵點擊新增查詢後,輸入以下SQL 指令後,按下 執行:
SELECT * FROM Units ORDER BY Id
INSERT INTO Units VALUES ('CPY', '冊',''),('CRD', '卡','')
SELECT * FROM Units ORDER BY Id
執行前後的結果:

插入與資料表資料行順序不同的資料
指定資料值時還需指定欄位名稱,此時插入資料時與資料表結構定義的欄位順序無關,依照欄名賦予對應的值。
因為表格的結構會調整,欄位結構順序易改變,用此方法對於寫程式的人來說不易出錯。
SELECT * FROM Units ORDER BY Id
INSERT INTO Units (UnitNo , UnitName) VALUES ('CSC', '桶')
SELECT * FROM Units ORDER BY Id
備註欄位未指定,所以得到
NULL
插入自動編號欄位值(自行指定編號值)
Id 為自動編號不須給值,但如有某一筆資料被刪除後,該Id 可以讓我們重新給新值,或者指定一個 Id 是沒有用的狀態。
-- 插入前
SELECT * FROM Units ORDER BY Id
-- 設定取消自動編號功能
SET IDENTITY_INSERT Units ON
-- 讓指令 SET IDENTITY_INSERT Units ON 立即執行
GO
-- 執行插入
INSERT INTO Units (Id , UnitNo , UnitName) VALUES (50 , 'CWA', '擔')
-- 恢復自動編號功能
SET IDENTITY_INSERT Units OFF
-- 立即執行指令 SET IDENTITY_INSERT Units OFF
GO
-- 插入後查詢
SELECT * FROM Units ORDER BY Id
執行過後,下一筆會從
51開始,因New Id=Max Id+ 1
插入另一個表格中的資料
資料來自於另一個Table。
-- 顯示存放地點表格 Places 的 存放地點編號、存放地點名稱,把存放名稱當作一個單位來用
SELECT * FROM Places ORDER BY PlaceNo
-- 插入資料,只指定欄位名稱,不指定值
INSERT INTO Units (UnitNo , UnitName)
-- 欄位資料來源指定從 Places 資料表的 PlaceNo , PlaceName 取得
SELECT PlaceNo , PlaceName FROM Places
SELECT * FROM Units ORDER BY Id 執行指令一:
SELECT * FROM Places ORDER BY PlaceNo
執行指令二:
INSERT INTO Units (UnitNo , UnitName)
SELECT PlaceNo , PlaceName FROM Places執行指令三:
SELECT * FROM Units ORDER BY Id
此種用法,兩邊的資料型別要相同,資料個數要相同。







