5-7-2
来源:百度文库 编辑:神马文学网 时间:2024/04/28 22:45:18
概 述
SQL是一种非过程性语言,有很强的表达能力。随着基于数据库的应用逻辑日益复杂,在应用中仅仅使用顺序执行的SQL语句序列表现出很大的局限性。减少局限性的方法之一是使用SQL标准的存储过程(stored procedure)和SQL/PSM(persistent stored module,持久存储模块)技术。 5.7.1 数据库存储过程与函数
1.缘由
(1)现在数据库系统往往采用客户机/服务器计算模式,很多工作可以在客户端完成,也可以在服务器端完成。
(2)客户机/服务器系统与传统的数据库系统的一个很重要的区别是:在传统的数据库系统中只存放数据,所有的应用程序都在用户端,都与用户实际运行的应用程序捆绑在一起;而在客户机/服务器系统中,在数据库中还存放程序,由于这种程序以数据库对象的形式存储在数据库中,因此称为存储过程。
(3)存储过程是使用SQL语句和流程控制语句编写的模块,存储过程经编译和优化后存储在数据库服务器端的数据库中,使用时调用即可。
2.使用存储过程的优点
(1)提高运行速度
在运行存储过程前,数据库服务器对其进行语法和语义分析,并给出优化执行方案
而调用存储过程时,其执行SQL语句的大部分准备工作已经完成,所以存储过程能以很快的速度执行
相比之下,交互执行的SQL语句是解释执行的,所以其速度较慢
(2)增强了SQL的功能和灵活性
存储过程可以用流程控制语句编写,有很强的灵活性
能完成复杂的逻辑判断和复杂的运算
(3)可以降低网络的通信量
存储过程存储在服务器端
执行全部逻辑流程仅需要向服务器发送一次过程请求即可
避免了交互模式下处理逻辑执行中额外的中间通信开销
(4)减轻了程序编写的工作量
存储过程可以反复调用
并可供其它前端应用程序共享应用逻辑
(5)间接实现安全控制功能
若不允许某些用户直接在表和视图上进行查询
但可授权他们执行某个存储过程来完成允许范围内的信息查询
3.声明存储过程的一般形式
(1)申明存储过程
CREATE PROCEDURE <过程名> (<参数>)
<局部声明>
<过程体>;
(2)申明函数
CREATE FUNCTION <函数名> (<参数>)
RETURNS <返回类型>
<局部声明>
<函数体>;
(3)调用语句的形式
CALL <过程名> (<参数列表>); 5.7.2 SQL/PSM
1.顺序执行
(1)顺序执行是基本控制流程
(2)语句按照自然顺序连续执行
2.条件分支语句
(1)形式
IF <条件> THEN <语句列表>
ELSEIF <条件> THEN <语句列表>
……
ELSEIF <条件> THEN <语句列表>
ELSE <语句列表>
END IF;
(2)例句
CREATE FUNCTION CourseSize(IN courseno INTEGER)
RETURNS VARCHAR[7];
DECLARE NoOfStudents INTEGER;
SELECT COUNT(*) INTO NoOfStudents FROM SC WHERE CNO = courseno;
IF NoOfStudents > 100 THEN RETURN “HUGE”
ELSEIF NoOfStudents>60 THEN RETURN “LARGE”
ELSEIF NoOfStudents>20 THEN RETURN “MEDIUM”
ELSE RETURN “SMALL”
END IF;
(3)说明(针对上述程序)
第1行:IN整型参数courseno,给出课程编号
第2行:函数返回一个字符串值,该值描述每门课程学生人数的规模
第3行:声明一个局部变量NoOfStudents
第4、5行:查询返回该门课程的学生人数
第6~9行:根据学生的数量返回以下某个值:{“HUGE”,“LARGE”,“MEDIUM”,“SMALL”}
3.循环语句
(1)标准的WHILE循环结构
WHILE <条件> DO
<语句列表>
END WHILE;
(2)标准的REPEAT循环结构
REPEAT
<语句列表>
UNTIL <条件>
END REPEAT;
(3)基于游标的循环结构
FOR <循环名> AS <游标名> CURSOR FOR <查询> DO
<语句列表>
END FOR;
5-7-2
7-2-5
7选5中2=160元!准确率65%
5-7
7-2-7
7-2
2-5
7-2-2
5-5-2
警察酒后驾车撞死2人伤5人被判3年缓刑5年(海峡都市报 2008-7-28)
男子闯入警局捅死5民警(新京报 2008-7-2)
成都6-5公交特大放火案告破 嫌犯已当场死亡(新华网 2009-7-2)
真正的7选5中2=160元!准确率65%!(绝对赢利方案)
网帖曝长沙官员公开家庭财产 有5套房2辆车(新京报 2010-4-7)
Raize Components 4.3.2 FS for Delphi 5,6,7,8,9,10,11
全国能力大赛案例集《观潮》1、2、3、4、5、6、7、8、9
黑客技术【5-7】
5-7-3
7-3-5
7天瘦5公斤
虎5、7晴
2-2-5
2-5-2
李连杰豪宅封顶面积5千多平米 估价超过2亿(南都周刊 2006-12-7)