`
hpjianhua
  • 浏览: 235829 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类

游标,触发器,数据库程序设计

阅读更多

六.触发器的用途

1.触发器的介绍:

触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insertdelete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS USER_TRIGGERS 数据字典中查到。

2.

3.

七.SQL Server的程序设计

1.用户自定义函数:

1).创建标量用户自定义函数:

-----------------------------------------------

create function avg_book1(@出版社 nchar(20))

returns float

as 

begin

declare @平均定价 float

set @平均定价=(select avg(定价

from book1 

where 出版社=@出版社)

return @平均定价

end

------------------------------------------------

select dbo.avg_book1('中国长安') as '平均价格'

------------------------------------------------

2).创建直接表值用户定义函数:

------------------------------------------------

create function 书摘要(@出版社 nchar(20))

returns table

as

return(select 书名,定价,出版社 

from book1

where 出版社=@出版社)

------------------------------------------------

select * from dbo.书摘要('海南')

------------------------------------------------

3).创建多语句表值用户自定义函数:

------------------------------------------------

create function higher_money(@highermoney money)

returns @higher_money Table(编号 nvarchar(255),

书名 nvarchar(255),定价 money,出版社 

nvarchar(255))

AS

Begin

insert @higher_money

select bookin.编号,书名,定价,出版社

from bookin,book1

where bookin.编号=book1.编号 and 定价>@highermoney

return

end

------------------------------------------------

select * from dbo.higher_money(500)

------------------------------------------------

2.流程控制语句:

declare @定价 money,@message varchar(250)

set @定价 =2000

if exists (select * 

from book1

where 定价>@定价)

begin

select distinct book1.编号,书名,定价

from book1

where 定价>@定价

end

else

set @message='不存在高于8000元的书!'

print @message

3.等待0小时010秒后才执行Select语句:

waitfor delay '00:01:00' select * from book1

4.GOTO语句:

declare @sum smallint,@i smallint

set @i = 1

set @sum=0

beg:

if(@i<100)

begin

set @sum=@sum+@i

set @i=@i+1

goto beg

end

print @sum

5.

6.

7.

八.游标的使用与定义

1.游标(CURSOR)是一种数据访问机制,它允许用户访问单独的数据行,而并非对整个行集合进行操作。

2.游标的定义:

游标是一个与Transact-SQLSELECT语句相关联的符号名,它使用户可逐行访问由SQL Server返回的结果集。游标包括以下两个部分:

1)游标结果集(Crusor Result Set):由定义该游标的Select语句返回的行集合.

2)游标位置(Cursor Position):指向这个行集合某一行的当前指针。

3.游标的优点:

1)允许程序对由查询语句Select返回的行集合中的每一行执行相同或不同的操作,而不是对整个行集合执行同一个操作。

2)提供对基于游标位置的表中的行进行删除与更新的能力。

3)游标实际上是作为面向集合的数据库管理系统(DBMS)和面向行的程序设计之间的桥梁。

4.游标的使用:

1)游标的声明:

DECLARE crusor_name CURSOR

FOR select_statement

[FOR { READ ONLY | UPDATE [OF column_name_list [,...]]}]

2)打开游标:

OPEN cursor_name

3)使用FETCH语句,从结果集中检索单独的行

FETCH [ [ NEXT | FRIOR | FIRST | LAST] FROM] cursor_name [ INTO fetch_target_list]

4)使用游标修改数据:

UPDATE DELETE都是集合操作语句,如果只想修改或者删除其中某个记录,则需要用带游标的SELECT 语句查出所有满足条件的记录,从中进一步找出要修改的记录。

5)关闭游标:

CLOSE cursor_name

6)释放游标:

DWALLOCATE CURSOR cursor_name

其中:如果释放一个已经打开但没有关闭的游标,SQL Server 会自动先关闭这个游标,然后再释放它。

<!--EndFragment-->
分享到:
评论

相关推荐

    SQL数据库编程(课件)

    数据库编程的课件 T-SQL程序设计基础 存储过程 游标 触发器

    数据库程序设计(1)1

    725到体系结构复习 范围 : 选择题 30分, 编程题30分, 语句题 简答题数据库对象PLMSQL : 过积函数包 、游标 循环 (不考触发器)索引概念 事

    数据库编程-存储过程-触发器-级联更新-SQL-server-游标、全网最全最详细编程实战

    2.触发器不接受用户应用程序传递的参数。 五、实验学时:6学时 六、实验重点及难点 1. 函数的使用方法和技巧。 2. 创建和调用存储过程的语法。 3. 创建触发器的语法。 七、实验步骤 第一部分: 7.1 建库、表并...

    实验六-触发器实验报告.doc

    PL/SQL程序设计 [实验原理] 1. 建立触发器 CREATE [OR REPLACE] TRIGGER &lt;触发器名&gt; BEFORE"AFTER INSERT"DELETE"UPDATE OF &lt;列名&gt; ON &lt;表名&gt; [FOR EACH ROW] WHEN (&lt;条件&gt;) 程序块&gt; ON 子句中的名称识别与数据库...

    PL/SQL程序设计

    PL /SQL是一种高级数据库程序设计语言,该语言专门用于在各种环境下对ORACLE数据库进行访问。由于该语言集成于数据库服务器中,所以PL/SQL代码可以对数据进行快速高效的处理。除此之外,可以在ORACLE数据库的某些...

    达梦数据库_SQL语言手册

    设计触发器的原则 触发器的删除 禁止和允许触发器 触发器应用举例 使用触发器实现审计功能 使用触发器维护数据完整性 使用触发器保障数据安全性 使用触发器派生字段值 第章安全管理 创建角色语句 删除...

    SQL Server 2008高级程序设计 2/6

    SQL Server 2008高级程序设计 2/6 SQL Server 2008 2010 高级程序设计 作者:(美)维埃拉 著,杨华,腾灵灵 译 出版社:清华大学 出版日期:2010-4-1 ISBN:9787302222729 字数:1250000 页码:730 ----------------...

    学生成绩管理系统Oracle全部SQL语句.txt

    3、要求使用sqlplus,pl/sql或developer建立存储过程,触发器和程序包等代码,其中要求用到游标,异常,各种语句等对表中数据进行处理; 4、使用自己熟悉的开发语言,加入界面,连接数据库; 5、报告要有操作截图...

    Microsoft SQL Server 2005技术内幕: T-SQ程序设计.pdf

    SQL程序设计的方方面面,如基于集合的编程技术、日期和时间相关的XML和CLR数据类型的使用、临时对象、T-SQL和CLR用户自定义函数、存储过程、触发器、事务和新的错误处理结构、应用并发模型支持并发用户、使用Service...

    PL/SQL 程序设计

    PL/SQL 程序设计 本章主要重点:  PL/SQL概述  PL/SQL块结构  PL/SQL流程  运算符和表达式  游标  异常处理  数据库存储过程和函数  包  触发器

    PLSQL程序设计

    第一章 PL/SQL 程序设计简介 4 §1.2 SQL与PL/SQL 4 §1.2.1 什么是PL/SQL? 4 §1.2.1 PL/SQL的好处 4 §1.2.2 PL/SQL 可用的SQL语句 5 §1.3 运行PL/SQL程序 5 第二章 PL/SQL块结构和组成元素 6 §2.1 PL/SQL块 6 ...

    SQL Server 2008高级程序设计 5/6

    SQL Server 2008高级程序设计 5/6 SQL Server 2008 2010 高级程序设计 作者:(美)维埃拉 著,杨华,腾灵灵 译 出版社:清华大学 出版日期:2010-4-1 ISBN:9787302222729 字数:1250000 页码:730 ----------------...

    SQL Server 2008高级程序设计 4/6

    SQL Server 2008高级程序设计 4/6 SQL Server 2008 2010 高级程序设计 作者:(美)维埃拉 著,杨华,腾灵灵 译 出版社:清华大学 出版日期:2010-4-1 ISBN:9787302222729 字数:1250000 页码:730 ----------------...

    SQL Server 2008高级程序设计 6/6

    SQL Server 2008高级程序设计 6/6 SQL Server 2008 2010 高级程序设计 作者:(美)维埃拉 著,杨华,腾灵灵 译 出版社:清华大学 出版日期:2010-4-1 ISBN:9787302222729 字数:1250000 页码:730 ----------------...

    SQL Server 2008高级程序设计 3/6

    SQL Server 2008高级程序设计 3/6 SQL Server 2008 2010 高级程序设计 作者:(美)维埃拉 著,杨华,腾灵灵 译 出版社:清华大学 出版日期:2010-4-1 ISBN:9787302222729 字数:1250000 页码:730 ----------------...

    SQL Server 2008高级程序设计 1/6

    《SQL Server 2008高级程序设计》由世界顶尖SQL Server权威专家Robert Vieira编写,旨在指导您熟练运用一系列日趋复杂的功能,助您更高效地管理数据。  本书首先介绍SQL Server 2008的新功能,然后在更详实的示例...

    精通sql结构化查询语句

    以SQL Server为工具,讲解SQL语言的应用,提供了近500个曲型应用,读者可以随查随用,深入讲解SQL语言的各种查询语句,详细介绍数据库设计及管理,详细讲解存储过程、解发器和游标等知识,讲解了SQL语言在高级语言中...

    Oracle实际操作应用

    oracle的一些简单应用! 第一章 走进Oracle 1 第二章 SQL数据操作和查询...第六章 PL/SQL程序设计 第七章 子程序和程序包 第八章 游标、内置程序包 第九章 触发器、数据字典 第十章 数据库管理 附录 数据库导入导出

    oracle学习资料

    第一章 PL/SQL 程序设计简介 4 §1.2 SQL与PL/SQL 4 §1.2.1 什么是PL/SQL? 4 §1.2.1 PL/SQL的好处 4 §1.2.2 PL/SQL 可用的SQL语句 5 §1.3 运行PL/SQL程序 5 第二章 PL/SQL块结构和组成元素 6 §2.1 PL/SQL块 6 ...

Global site tag (gtag.js) - Google Analytics