分享

T-sql 插入数据(精)

 悟静 2012-05-06

在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关键字合并组成多行数据.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多