`
hpjianhua
  • 浏览: 241838 次
  • 性别: 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-->
分享到:
评论

相关推荐

    数据库大型实验设计 包含游标触发器存储过程

    本实验设计涉及的核心概念是数据库中的高级特性,如存储过程、触发器和游标,这些都是数据库管理系统(DBMS)中实现复杂业务逻辑和自动化操作的关键工具。 首先,我们来深入理解一下“存储过程”。存储过程是一组...

    触发器和游标理论 中文

    因此,在设计数据库方案时,应谨慎考虑是否真正需要使用触发器和游标,并尽量优化其使用。 总结一下,触发器是数据库级别的事件监听器,负责在特定操作后执行附加逻辑,确保数据完整性和业务规则的遵循。而游标则...

    存储过程触发器 游标

    总的来说,存储过程、触发器和游标是数据库编程的三个核心元素,它们共同构建了数据库应用的复杂逻辑和自动化流程。熟练掌握这些工具,开发者可以设计出更加高效、健壮和适应性强的数据库解决方案。在学习过程中,应...

    二级openGauss数据库程序设计考试大纲(2022年版)1

    【全国计算机等级考试二级openGauss数据库程序设计考试大纲(2022年版)】主要涵盖以下几个核心知识点: 1. **数据库基本概念与方法**: - **数据库系统**:理解其基本概念,包括数据库、数据库管理系统、数据库...

    SQL语句大全(程序设计、视图、索引、游标、事务、触发器、锁、存储过程、XML、权限管理……)

    本资源“SQL语句大全”涵盖了多个关键概念,包括程序设计、视图、索引、游标、事务、触发器、锁、存储过程、XML以及权限管理。以下是对这些主题的详细阐述: 1. **程序设计**:T-SQL(Transact-SQL)是SQL Server中...

    《游标和触发器》PPT课件.ppt

    3. 桥接了面向集合的数据库管理系统(RDBMS)与面向行的程序设计方法,使得两者可以通过游标相互协作。 使用游标通常涉及以下步骤: 1. 声明游标:使用`DECLARE`语句定义游标的名称和特性,如是否可滚动、是否可...

    PLSQL操作存储过程、函数、游标、触发器、定时任务等实例SQL脚本.zip

    这个压缩包“PLSQL操作存储过程、函数、游标、触发器、定时任务等实例SQL脚本.zip”包含了关于如何使用PL/SQL来处理数据库的各种关键概念的实例脚本。下面,我们将详细探讨这些知识点。 1. **存储过程**:存储过程...

    oracle触发器,过程,游标

    在Oracle中,触发器、过程和游标是数据库编程的重要组成部分,它们各自扮演着不可或缺的角色。 **触发器(Triggers)** 触发器是一种数据库对象,它在特定的数据库事件(如INSERT、UPDATE或DELETE)发生时自动执行...

    数据库实验报告-存储过程、触发器

    触发器是数据库级别的事件驱动程序,当特定的DML操作(如INSERT、UPDATE或DELETE)发生时,触发器自动执行。触发器的优点包括: 1. 数据完整性:可以通过触发器强制执行复杂的业务规则,确保数据的一致性和准确性。 ...

    游标、存储过程和触发器.pptx

    游标、存储过程和触发器是Oracle数据库程序设计中的核心概念,它们对于高效地管理和操作数据库数据至关重要。在本章中,我们将详细探讨这三个概念。 首先,游标(Cursor)是一种用于处理SQL查询结果集的机制,允许...

    mysql触发器,游标

    MySQL触发器是数据库管理...总之,MySQL触发器和游标都是数据库管理中的重要概念,它们分别用于自动化数据处理和遍历查询结果。然而,在实际应用中,需要权衡它们带来的便利与潜在的性能影响,以选择最适合的解决方案。

    SQL数据库编程(课件)

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

    SQL Server 2000程序设计(PDF).

    在本教程中,我们将深入探讨SQL Server 2000的程序设计,包括如何使用SQL进行数据库的创建、查询、更新和删除等基本操作,以及更高级的概念如存储过程、触发器和视图。 首先,让我们从数据库的创建开始。在SQL ...

    数据库程序设计(1)1

    【数据库程序设计(1)1】的描述涵盖了数据库系统的基础知识,主要集中在SQL语言的使用上,特别是关于数据库对象、PL/SQL中的过积函数包、游标和循环,以及索引和事务的概念。以下是对这些知识点的详细阐述: 1. **...

    数据库及VF程序设计考试题.doc

    * VF程序设计的高级技术:使用游标、存储过程、触发器等技术。 六、考试题解析 * 单项选择题:考察考生的数据库基础知识、VF程序设计基础知识和数据表的建立和索引的创建等方面的知识。 * 多项选择题:考察考生的...

    Oracle9i PL/SQL程序设计,存储过程、包、数据库触发器设计,PPT

    Oracle9i PL/SQL程序设计是数据库开发中的一个重要领域,主要涉及存储过程、包和数据库触发器等核心概念。这些工具允许开发人员在数据库层面上编写逻辑,提高应用程序的性能和效率。 1. 存储过程: 存储过程是预先...

    MYSQL数据库的索引、视图、触发器、游标和存储过程.pdf

    在MySQL中,索引、视图、触发器、游标和存储过程是数据库设计和开发中经常使用的关键特性,它们极大地增强了数据库的功能和灵活性。 索引是数据库中用来快速寻找特定数据行的数据库对象。在MySQL中,索引可以极大地...

    Orcal 数据库触发器文件

    - 触发器应该作为最后的手段,当其他数据库约束、存储过程或应用程序逻辑无法满足需求时使用。 - 为触发器编写详尽的文档,以便其他开发人员理解其功能和可能的影响。 6. 替代方案: - 使用应用程序层的逻辑,将...

    ORACLE增删改查,游标,包,过程,触发器

    接下来我们将深入探讨这些概念以及与之相关的游标、包、过程和触发器。 1. **增删改查 (CRUD)** - **创建 (Create)**:在Oracle中,创建数据表通常通过`CREATE TABLE`语句实现,定义表结构,包括字段名、数据类型...

Global site tag (gtag.js) - Google Analytics