Board logo

標題: 9-1-3 Insert Into 新增資料 [打印本頁]

作者: 小誌    時間: 2011-4-21 19:00     標題: 9-1-3 Insert Into 新增資料

9-1-3   Insert Into 新增資料
Insert Into指令有兩種用法:一種是新增資料錄,另一種是將取得的資料新增到另一個已經存在的資料表內:

新增資料錄
使用Insert Into指令新增資料錄到資料表內,其格式如下:
新增資料錄
  1. Insert Into 資料表名(欄位1,欄位2,…)
  2. Values(欄位1值,欄位2值…)
複製代碼
要新增一筆資料到資料表中,必須先指定各欄位的名稱,再將欄位值逐一的指定給相對應的欄位:
[attach]5690[/attach]
圖9-12   新增資料錄的Insert Into指令。

假若,在Values(…)中的欄位值順序與原始資料表中所定義的欄位順序完全相同,並且,在Values(…)中所填入的欄位值數量與原始資料表中的欄位數目是相同的,則我們可以不必指定欄位名稱,例如:
  1. Insert Into transcript Values(957862,’陳小魚’,90,80,92)
複製代碼
[attach]5691[/attach]
圖9-13   省略欄位指定。
作者: 小誌    時間: 2011-4-21 19:01

新增資料到已存在的資料表
將Select指令所選取的資料錄新增到另一個已經存在的資料表內,可使用下列格式的Insert Into格式敘述:
新增資料錄到資料表
  1. Insert Into 資料表名 (欄位1,欄位2,…)Select…  
複製代碼
注意:上式中的「資料表名」是指原本就已經存在的資料表!
[attach]5692[/attach]
圖9-14  欄位格式與順序相同的資料表 。

如果,有兩個資料表的欄位格式與順序一模一樣,如圖9-15中的「transcript」、「mytranscript」資料表,如果要將「成績單」資料表中國文分數大於90的同學資料新增到「我的成績單」資料表時,因為兩個資料表的欄位名稱及順序都一樣,那麼在Insert Into指令敘述中就可以省略指定欄位名稱的敘述:
  1. Insert Into mytranscript
  2. Select * From transcript Where 國文>90
複製代碼
則上式的執行結果如下圖:
[attach]5693[/attach]
圖9-15   指令敘述執行結果。
作者: 小誌    時間: 2011-4-21 19:03

假若,兩個資料表欄位順序是不同的,如圖9-16中的「transcript」、「yourtranscript」資料表。
[attach]5694[/attach]
圖9-16   欄位順序不同的資料表。

如果要將「transcript」資料表中國文分數大於95的同學資料新增到「yourtranscript」資料表時,就必須一一的指定欄位名稱:
  1. Insert Into yourtranscript(學號, 姓名,國文,英文,數學)
  2. Select * From transcript Where 國文>95
複製代碼
上的執行結果如下圖:
[attach]5695[/attach]
圖9-17   指令敘述執行結果。




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)