通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 my小屋
联系我们
设为首页
加入收藏

 

qq,asp,php,jsp,xml,sql,.net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 网络赚钱 | 网站地图 | 广告服务 | 服务
当前位置:首页>>编程开发>>sql专区>>正文 新版上线![旧版]
注:打开慢时请稍等
sql表数据操作

http://www.iyit.net  日期:2006-5-3 19:20:22  来源:  点击:
参加讨论
表数据操作包括数据的插入、修改和删除。
一、插入数据

在向表中添加数据时应该注意两点:第一是用户权限,只有sysadmin角包成员、数据库和数据库对

象所有者及其授权用户才有权限向表中添加数据;第二是数据格式,对于不同的数据类型,插入数据的

格式也不一样,应严格遵守它们各自的格式要求。

transact-sql语言中用insert语句向表或视图中插入新的数据行。insert语句的语法格式为:

insert [into] table_source

{[column_list]

values ({default | constant_expression} [,…n])

|default values

|select_statement

|execute_statement

}

}

其中,column_list参数为新插入数据行中一列或多列列名列表,它说明insert 语句只为指定列插

入数据。在给表或视中部分列插入数据时,必须使用列名列表方式指出这部分列名。其余未指定列的列

值要根据它们的默认值和空值属性情况而定,它们有以下几种可能取值:

(1)对于timestamp列或具有identity属性列,它们的列值由sql server计算后自动赋值。

(2)如果这些列有默认值或关联有默认数据库对象,插入新列时,它们的值为默认值。

(3)当这些列没有默认值设置时,但它们允许空值时,该列值为空。

(4)当这些列既没有默认值设置,也不允许空值时,sql server在执行insert 语句时将产生错误,

导致插入操作失败。

当未指定column_list 参数时,为各列所提供的数据顺序应严格按照表中各列的定义顺序,而使用

column_list参数则可以调整向表中所插入数据的列顺序,只要values子句所提供的数据顺序与column_

list参数中指定的列顺序相同即可。

values子句为新插入行中column_list 参数所指定列提供数据,这些数据可以以常量表达式形式提

供,或使用default关键字说明向列中插入其默认值。

default values说明向表中所有列插入其默认值。对于具有indentity 属性或timestamp 数据类型

列,系统将自动插入下一个适当值。对于没有设置默认值的列,如果它们允许空值,sql server将插入

null,否则返回一错误消息。

select_statement是标准的数据库查询语句,它是sql server为insert语句所提供的又一种数据插

入方式。insert语句将select_statement子句所返回的结果集合数据插入到指定表中。查询语句结果集

合每行中的数据数量、 数据类型和排列顺序也必须与表中所定义列或 column_list 参数中指定列的数

量、数据类型和排列顺序完全相同。

sql server为insert语句提供的第四种数据插入方式是通过执行系统存储过程,其数据来自于过程

执行后所产生的结果集合。所执行的过程可以为存储过程、系统存储过程或扩展存储过程,它们既可以

为本地存储过程,又可以是远程服务器上的存储过程,只要用户具有它们的执行权限即可。有关存储过

程请参阅对应的内容。

table_source说明insert语句插入数据时所操作的表或视图,其语法格式可简单书写为:

{table_name [[as] table_alias]

| view_name [[as] table_alias]

}

table_name和view_name说明被插入数据的表或视图名称,table_alias参数为表或视图设置别名。

使用别名有两方面原因:第一、当表或视图名称较长时,使用别名可以简化书写工作;第二,在自连接

或子查询中,使用别名可以区别同一个表或视图。

在向表中插入数据时, 如果所插入的数据与约束或规则的要求冲突, 或是它们的数据类型不兼容

时,将导致insert 语句执行失败。当使用select或execute子句向表中一次插入多行数据时,如果其中

有任一行数据有误,它将导致整个插入操作失败,使sql server停止所有数据行的插入操作。

例一、使用数值列表方式( 假定 usertable 表中只定义了name、age和sex字段,且name、sex均为

char类型,age为int类型)。

insert usertable

values ('张三','女',18)

例二、使用列名列表方式

insert usertable (age,name)

values (18,'张三')

例三、在数值列表中,还可以将变量的值插入到表中。在使用变量为列提供数据时,应保证变量的

数据类型与列数据类型相同,或是可以自动将它们转换为相同的数据类型。例如:

declare @name char(16)

set @name='张三'

insert usertable

values (@name,default,20)

本例中asp中是这样的:

dim name

name="张三"

sqlstr="insert usertable values ('"&name&"','女',20)"

……

例四、将select子句的所返回的结果集合插入到表中。例如:

insert usertable (name,sex,age)

select 's'+name,sex,age

from usertable

where name like '张%%'


二、修改数据

transact-sql中的update语句用于修改表中数据,该语句的语法格式为:

update ()

set (

column_name={expression | default }

| @variable = expression

} [,…n]

[from

{

| (select_statement) [as] table_alias [,…m]) ]

}

[,…n]

]

[where

| current of ({[global] cursor_name } | cursor_variable_name} }

]

别看写了一大堆,最常用的只是下列格式:

update table_name

set column_name1=variable1,column_name2=variable2

where search_conditions

其中table_or_view参数指出待修改的表或视图名称,其格式与insert语句中该参数的格式相同。

set子句指出表中被修改的列或变量,以及它们的新值。column_name为被修改的列名,@variable

为一个已经声明的局部变量名称,它们修改后的值由expression表达式提供,或使用default关键字将

默认值赋给指定列。

from子句引出另一个表,它为update语句的数据修改操作提供条件。

where子句中的search_conditions 参数说明update语句的修改条件,它指出表或视图中的哪些行

需要修改。省略where子句时,说明对指定的表或视图中的所有行进行修改!!!!

where子句中的current of说明在游标的当前位置处执行修改操作,游标由curror_name 或游标变

量cursor_variable_name指定。

update不能修改具有identity属性列的列值。

例一、将usertable表中所有人员的性别改为'男'

update usertable

set sex='男'

例二、将性别为null的所有人员的性别改成'男'

update usertable

set sex='男'

where sex is null

例三、将所有姓名为null的人员的姓名改为'张三'、性别改为'女',年龄改为18

update usertable

set name='张三',sex='女',age=18

where name is null


三、删除数据

transact-sql中,delete和truncate table语句均可以删除表中的数据。delete语句的语法格式为:

delete

{table_name | view_name}

from

{

| (select_statement) [as] table_alias [(column_alias [,…m])]

}[,…n]

[where

{

|{ [current of {{[global] cursor_name}

|cursor_variable_name

}

delete语句的结构与update语句有些类似,其中也包含from子句和where子句。where子句为数据删

除指定条件。不使用where子句时,delete语句将把有或视图中所有的数据删除。from子句是transact-

sql在ansi基础上对delete语句的扩展,它指定要连接的表名,提供与相关子查询相似的功能。

truncate table语句语法格式为:

truncate table table_name

truncate table语句删除指定表中的所有数据行,但表结构及其所有索引继续保留,为该表所定义

约束、规则、默认和触发器仍然有效。如果所删除表中包含有identity列,则该列将被复位到其原始基

值。使用不带where子句的delete语句也可以删除表中所有行,但它不复位identity列。

与delete语句相比,truncate table语句的删除速度更快。因为delete语句在每删除一行时都要把

删除操作记录到日志中,而truncate table语句则是通过释放表数据页面的方法来删除表中数据,它只

在释放页面做一次事务日志记录。所以使用truncate table语句删除数据后,这些行是不可恢复的,而

delete操作则可回滚,能够恢复原来数据。

因为truncate table语句不做操作日志,它不能激活触发器,所以truncate table语句不能删除一

个被其它表通过foreign key约束所参照的表。

例一、使用delete语句删除usertable表中name为'张三'的数据行

delete usertable

where name='张三'

例二、下面使用from子句和where子句指定条件,然后从tb_update表中删除数据

delete tb_update

from tb_constraint as a,tb_update as b

where a.name=b.name

and a.country='china'

delete tb_update

from (select * from tb_constraint

where country='usa') as a

where a.name=tb_update.name

编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:sql2k中新增加的function的sqlbook 的帮助
下一篇:使用ms sql7的linked server(一)
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
第十七章 sql编程(二) 第十七章 sql编程(一) windows2000下安装apache php4 mysql  
windows 2000下安装php4及mysql大揭密  win2000 + php + mysql + tomcat + jsp 超级服务器apache+mysql+php+ssl之完全
超级服务器apache+mysql+php+ssl之完全 linux下快速安装“apache+php3+mysql” 如何集成linux、apache、php4、fastcgi
接触 solaris : 安装 apache + php + m linux服务器配置方案mysql(上) sql server 7.0与以前的版本相比,安全
设置proxy server和sql server实现互联 microsoft sql server 7.0安全问题     mysql安全性指南(3)(转)            
mysql安全性指南 (2)(转)            mysql安全性指南 (1)(转)            怎样才能限制sql server只能让指定的机
远程检测ms sql server账号安全性      模拟sql server的两个日期处理函数     用dbsql类加快开发mysql数据库程序的速
将access数据库移植到microsoft sql se microsoft sql server 7.0数据库设置与 microsoft sql server 7.0数据库升级转
最新更新 热点排行 推荐新闻
sql server 7.0与以前的版本相比,安全
设置proxy server和sql server实现互联
microsoft sql server 7.0安全问题   
mysql安全性指南(3)(转)           
mysql安全性指南 (2)(转)          
在frontpage 2000中插入flash动画
用frontpage 2000使图像“减肥”
提高frontpage 2002使用效率
用frontpage 2000创建网页动画
用frontpage 2000巧做样式表
用frontpage 2000制作鼠标光照特效
用frontpage轻松转换图片格式
frontpage10全透视教程(9)
frontpage10全透视教程(8)
frontpage10全透视教程(7)
sql server 7.0与以前的版本相比,安全
sql简明教程(6)
sql简明教程(5)
sql简明教程(4)
sql简明教程(3)
qq珊瑚虫外挂4.0版本发布!
多个广告位招商!
摄影后期系列一:1分钟为数码相片去红眼
教您显示器亮度对比度的调节
qq挂机说明
asp进度条
photoshop通道抠图:给秀发飞扬的mm照
新版上线,今日正式开通!!!
更多精彩图文广告等着您!
asp中使用sql语句教程
sql简明教程(1)
第二十章 开发delphi对象式数据管理功
sql简明教程(1)
vbscript和javascript互相调用 
jsp教程(四)-jsp actions的使用
操作系统被入侵后的修复过程
五一别忘电脑防毒 养成良好上网习惯
google对ie浏览器将捆绑搜索功能表担忧
新版上线,今日正式开通!!!
用photoshop创意图形“岁月”
摄影后期系列一:1分钟为数码相片去红眼

 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights © 2004-2006 iyit.net all rights reserved.
网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息