在A**課程中S1中的使用SQL SERVER查詢和管理數(shù)據(jù)一書中,主要介紹以下幾種插入數(shù)據(jù)的方法
一、使用Insert語句插入單行數(shù)據(jù)
語法:Insert [into] 表名[列名] values(值,值)
注意:以上語句,into關(guān)鍵字可以省略,列名可以省略,但若有多個(gè)列名,以逗號(,)分隔,多個(gè)值也以逗號(,)分隔。表名必須要填寫。
例:Insert into Hamber(Id,Name,Score) values(1,'Hamber',100) 注意:(1)不能違反某列的非空約束,每次要插入一整行數(shù)據(jù),不能插入半行或者幾列數(shù)據(jù). (2)數(shù)據(jù)值的個(gè)數(shù)要與列數(shù)相同,插入的數(shù)據(jù)要與每列的數(shù)據(jù)類型相匹配. (3)Insert語句不能為標(biāo)識列插入數(shù)據(jù) (4)對于字符類型的列,其數(shù)據(jù)最好要被單引號括起來。 (5)雖然可以不指定列名,但最好將列名填寫完整 (6)若在設(shè)計(jì)表時(shí),指定某列非空,必須為該列賦值. (7)插入的每一列數(shù)據(jù)必須符合該列的檢查約束 (8)在設(shè)置了某列的默認(rèn)值后,并且還指定了列名的話,如何使用其默認(rèn)值為該列 賦值。就是使用Default關(guān)鍵字。注意,該用法只能在Insert Into Values()語句中 使用。 二、一次插入多行數(shù)據(jù) 包含三種方法 <1>使用Insert Select語句將現(xiàn)有表中的數(shù)據(jù)添加到新表中 Insert into Table1 (姓名,地址,電子郵件) Select Sname,Saddress,Semail From Table2 注意:從Table2中查詢得到的列的個(gè)數(shù),順序,數(shù)據(jù)類型必須與要插入Table1中的一致. 并且Table1中要含有姓名、地址、電子郵件三列. 并且Table1要預(yù)先創(chuàng)建好! <2>使用Select Into 語句將現(xiàn)有表中的數(shù)據(jù)添加到新表中 與上面的Insert Select語句類似,Select Into 語句也是從表中查詢數(shù)據(jù)插入到新表中的。 所不同的是,這個(gè)新表是執(zhí)行查詢語句的時(shí)候創(chuàng)建的,不能夠預(yù)先存在的。 例:Select Sname,Saddress,Semail into Table2 From Table1 按照以上方式,向新表中插入數(shù)據(jù)時(shí),怎么樣才能插入標(biāo)識列呢 因?yàn)闃?biāo)識列的數(shù)據(jù)是不允許指定的,因此我們可以創(chuàng)建一個(gè)標(biāo)識列 語法 : Select Identity(數(shù)據(jù)類型,標(biāo)識種子,標(biāo)識增量) AS 列名 INTO 新表 From 原始表 這樣,將以上語法和以上例子結(jié)合在一起,就可以向新表中添加標(biāo)識列了. <3>通過Union關(guān)鍵字合并數(shù)據(jù)進(jìn)行插入 Union語句用于將兩個(gè)不同的數(shù)據(jù)或查詢結(jié)果組合成一個(gè)新的結(jié)果集 當(dāng)向表中重復(fù)添加多行數(shù)據(jù)時(shí),可以使用Select Union語句來簡化操作. 例: Insert into Table1(Sname,Saddress,Semail) Select 'hamber','中國北京','Hamber_Bao@live.cn' Union Select '李彥宏','中國北京','baidu@.com' Union Select '史玉柱','中國上海','腦白金@.com' 這樣的效果和上面的Insert Select語句是類似的,只不過多行數(shù)據(jù)是手寫的,然后通過Union關(guān)鍵字合并組成多行數(shù)據(jù).