在A**课程中S1中的使用SQL SERVER查询和管理数据一书中,主要介绍以下几种插入数据的方法 一、使用Insert语句插入单行数据 语法:Insert [into] 表名[列名] values(值,值) 注意:以上语句,into关键字可以省略,列名可以省略,但若有多个列名,以逗号(,)分隔,多个值也以逗号(,)分隔。表名必须要填写。 例:Insert into Hamber(Id,Name,Score) values(1,'Hamber',100) 注意:(1)不能违反某列的非空约束,每次要插入一整行数据,不能插入半行或者几列数据. (2)数据值的个数要与列数相同,插入的数据要与每列的数据类型相匹配. (3)Insert语句不能为标识列插入数据 (4)对于字符类型的列,其数据最好要被单引号括起来。 (5)虽然可以不指定列名,但最好将列名填写完整 (6)若在设计表时,指定某列非空,必须为该列赋值. (7)插入的每一列数据必须符合该列的检查约束 (8)在设置了某列的默认值后,并且还指定了列名的话,如何使用其默认值为该列 赋值。就是使用Default关键字。注意,该用法只能在Insert Into Values()语句中 使用。 二、一次插入多行数据 包含三种方法 <1>使用Insert Select语句将现有表中的数据添加到新表中 Insert into Table1 (姓名,地址,电子邮件) Select Sname,Saddress,Semail From Table2 注意:从Table2中查询得到的列的个数,顺序,数据类型必须与要插入Table1中的一致. 并且Table1中要含有姓名、地址、电子邮件三列. 并且Table1要预先创建好! <2>使用Select Into 语句将现有表中的数据添加到新表中 与上面的Insert Select语句类似,Select Into 语句也是从表中查询数据插入到新表中的。 所不同的是,这个新表是执行查询语句的时候创建的,不能够预先存在的。 例:Select Sname,Saddress,Semail into Table2 From Table1 按照以上方式,向新表中插入数据时,怎么样才能插入标识列呢 因为标识列的数据是不允许指定的,因此我们可以创建一个标识列 语法 : Select Identity(数据类型,标识种子,标识增量) AS 列名 INTO 新表 From 原始表 这样,将以上语法和以上例子结合在一起,就可以向新表中添加标识列了. <3>通过Union关键字合并数据进行插入 Union语句用于将两个不同的数据或查询结果组合成一个新的结果集 当向表中重复添加多行数据时,可以使用Select Union语句来简化操作. 例: Insert into Table1(Sname,Saddress,Semail) Select 'hamber','中国北京','Hamber_Bao@live.cn' Union Select '李彦宏','中国北京','baidu@.com' Union Select '史玉柱','中国上海','脑白金@.com' 这样的效果和上面的Insert Select语句是类似的,只不过多行数据是手写的,然后通过Union关键字合并组成多行数据. |
|
来自: 悟静 > 《.net和asp.net》