学习了sql语句,以及ado.net和sqlhelper的几天学习后,今天是数据库课程的最后一天了。
主要介绍了连接池,存储过程和触发器,游标的使用。
在实际使用中,触发器因为要考虑很多因素,所以很少使用触发器,赵老师没有细说,
但是做了一个例子,虽然不常用,可是觉得触发器有的到时候应该可以提高效率
游标因为效率低下所以也不怎么使用。
存储过程很像编程中的方法调用。
存储过程就想数据库中运行方法(函数)
优点:
执行速度快--在数据库中保持的存储过程语句都是编译过的
允许模块化程序设计-类似方法的复用
提高系统安全性-防止sql注入
减少网络流量-只要传输存储过程名称
定义存储过程语法:
create proc 存储过程名
@参数1 数据类型 [= 默认值 OUTPUT], @参数n 数据类型 [= 默认值 OUTPUT]
AS
begin
SQL语句
end
执行:
exec 过程名【参数】
练习:
--编写一个存储过程,从MyStudent表中,查询出大于指定年龄的所有人的信息,
--并且返回所查询出的记录的条数
--使用带输出参数的存储过程
create proc usp_selectStudentsByAge
@uage int,
@jiLuTiaoShu int output --ouput表示该参数是一个输出参数(在存储过程中为该参数赋值,然后在存储过程外部可以通过该参数获取该值。)
as
begin
select * from myStudent where fage>@uage
set @jiLuTiaoShu=(select count(*) from mystudent where fage>@uage)
end
declare @ucount int
exec usp_selectStudentsByAge @uage=70,@jiLuTiaoShu=@ucount output
print '返回的总记录条数为:'+convert(varchar(10), @ucount)
--exec usp_selectStudentsByAge 20
触发器的作用:自动化操作,减少了手动操作及出错的几率
触发器是一种特殊类型的存储过程,它不同于一般的存储过程。
【在SQL内部把触发器看做是存储过程但是不能传递参数,不能手动调用】
一般的存储过程通过存储过程名称被直接调用,而触发器主要是通过事件进行触发而被执行。
触发器是一个功能强大的工具,在表中数据发生变化时自动强制执行。触发器可以用于SQL Server约束、默认值和规则的完整性检查,还可以完成难以用普通约束实现的复杂功能。
在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。
after触发器:在语句执行完毕后触发
instead of触发器:用来替换原本的操作,可以在约束被检查之前触发
触发器语法:
CREATE TRIGGER triggerName ON 表名
after(for)(for与after都表示after触发器) | instead of
UPDATE|INSERT|DELETE(insert,update,delete)
AS
begin
…
end
触发器的建议:
尽量避免在触发器中执行耗时操作,因为触发器会与SQL语句认为在同一个事务中。(事务不结束,就无法释放锁。)
避免在触发器中做复杂操作,影响触发器性能的因素比较多(如:产品版本、所使用架构等等),要想编写高效的触发器考虑因素比较多(编写触发器容易,编写复杂的高性能触发器难!)。
触发器编写时注意对多行触发时的处理。(一般不建议使用游标,性能问题!)
游标:
SQL语句是把结果集作为一个整体(整个作为一个单元)来操作的,但有时候我们需要针对结果集中的每条记录(或某部分记录)进行特殊操作,这时就需要用到游标。
多数情况下使用查询的性能要比使用游标高效,但并不是任何情况下使用查询性能都高于使用游标
分享到:
相关推荐
数据库开发基础、Microsoft SQLServer基础、SQL语言基础、索引、事务、SQL语言高级技术(空值处理、聚合与分组、数据分页、Union、日期函数、类型转换函数、流控函数、表连接、子查询、存储过程、触发器)、数据库...
数据库 存储过程 触发器 基本简介
一、实验目的 1.了解存储过程的概念、优点 2.熟练掌握创建存储过程的方法 3.熟练掌握存储过程的调用方法 4.了解触发器的概念、优点 5.掌握触发器的方法和步骤 6.掌握触发器的使用
创建一个名为stu_pr的存储过程,该存储过程能查询出051班学生的所有资料,包括学生的基本信息、学生的选课信息(含未选课同学的信息)。要求在创建存储过程前请判断该存储过程是否已创建,若已创建则先删除,并给出...
使用CREATE PROCEDURE语句创建存储过程,ALTER PROCEDURE语句修改存储过程,DROP PROCEDURE语句删除存储过程,存储过程有不带参数的、有带输入参数的、有带输出参数(output)的,还可以有带返回值的。创建好的存储...
对于数据库存储过程和触发器的讲解,很详细,还有代码例子,能够帮助等号的掌握数据库
Oracle数据库创建存储过程和触发器,详细过程和错误分析
数据库存储过程与触发器.ppt
有关于数据库存储过程和触发器的实验,大家可以看看....
自己的学习笔记,每次写触发器和存储过程,照着写就来了。附带一个权限的关系
SQL Server 2005数据库存储过程和触发器
数据库存储过程与触发器PPT教案.pptx
基于Oracle数据库存储过程与触发器的应用.pdf
主要解释的是数据库存储过程、触发器、游标,有详细的案例分析,深入浅出的讲解,容易理解!
实验八数据库编程技术——游标、存储过程与触发器.pdf
数据库mypos存储过程触发器函数
在已建立的XSCJ和TSGL数据库和表的基础上创建,存储过程和触发器,有对数据库进行操作,以及保存操作代码和截图。
MySQL数据库函数,触发器,存储过程的视频课程,通俗易懂
SQL 数据库 触发器 SQL 数据库 触发器