麻辣家族討論版版's Archiver

小誌 發表於 2011-4-21 19:00

9-1-3 Insert Into 新增資料

[color=DarkRed][size=4][b]9-1-3   Insert Into 新增資料[/b][/size][/color]
Insert Into指令有兩種用法:一種是新增資料錄,另一種是將取得的資料新增到另一個已經存在的資料表內:

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

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

小誌 發表於 2011-4-21 19:01

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

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

小誌 發表於 2011-4-21 19:03

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

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

頁: [1]

麻辣家族討論版版為 麻辣學園 網站成員  由 昱得資訊工作室 © Since 1993 所提供