|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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> 缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。 |
|