仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2396|回复: 18
打印 上一主题 下一主题

[学习教程] ASP网页设计Sql表数据操作

[复制链接]
因胸联盟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-16 00:25:34 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Windows本身的所有问题都会一成不变的也累加到了它的身上。安全性、稳定性、跨平台性都会因为与NT的捆绑而显现出来;数据   表数据操作包含数据的拔出、修正和删除。
1、拔出数据

在向表中添加数据时应当注重两点:第一是用户权限,只要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参数为表或视图设置别号。

利用别号有两方面缘由:第1、当表或视图称号较长时,利用别号可以简化书写任务;第二,在自毗连

或子查询中,利用别号可以区分统一个表或视图。

在向表中拔出数据时, 假如所拔出的数据与束缚或划定规矩的请求抵触, 或是它们的数据类型不兼容

时,将招致INSERT 语句履行掉败。当利用SELECT或EXECUTE子句向表中一次拔出多行数据时,假如个中

有任一行数据有误,它将招致全部拔出操作掉败,使SQL Server中断一切数据行的拔出操作。

例1、利用数值列表体例( 假定 usertable 表中只界说了name、age和sex字段,且name、sex均为

char类型,age为int类型)。

INSERT usertable

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

例2、利用列名列表体例

INSERT usertable (age,name)

VALUES (18,'张三')

例3、在数值列表中,还可以将变量的值拔出到表中。在利用变量为列供应数据时,应包管变量的

数据类型与列数据类型不异,或是可以主动将它们转换为不异的数据类型。例如:

DECLARE @name char(16)

SET @name='张三'

INSERT usertable

VALUES (@name,DEFAULT,20)

本例中Asp中是如许的:

dim name

name="张三"

sqlstr="INSERT usertable VALUES ('"&name&"','女',20)"

……


例4、将SELECT子句的所前往的了局纠合拔出到表中。例如:

INSERT usertable (name,sex,age)

SELECT 's'+name,sex,age

FROM usertable

WHERE name like '张%%'


2、修正数据

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属性列的列值。

例1、将usertable表中一切人员的性别改成'男'

UPDATE usertable

SET sex='男'


例2、将性别为null的一切人员的性别改成'男'

UPDATE usertable

SET sex='男'

WHERE sex IS NULL

例3、将一切姓名为null的人员的姓名改成'张三'、性别改成'女',岁数改成18

UPDATE usertable

</p>  缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-10 09:56

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表