编写和执行SQL例程与模块---触发器和存储过程---SQL编程元素

一、什么是触发器?什么是存储过程?

1.触发器和存储过程都是一种SQL程序模块,都是存储并作为数据库的一部分。

2.触发器在特定数据修改动作发生时才被激活并执行,存储过程在应用程序中使用SQL CALL命令进行调用。

3.不同的数据库管理系统对SQL编程的支持的差异性非常大,在针对某个数据库管理系统进行SQL编程的时候,一定要以该数据库管理系统的文档为依据。

二、SQL编程元素

1.什么是例程?

例程是SQL持久存储模块的最小单元。通常情况下,一个例程将会执行一个单独的操作。

多个例程被聚焦在一起就形成了模块。

2.例程的类型

过程(Procedure):过程使用SQL CALL命令来执行,无返回值。

函数(Function):函数将会返回一个类型化的数值,它可以用于其他SQL语句(特别是SELECT语句)当中。

方法(Method):方法用于SQL的对象扩展关系中。它们使用与过程和函数同种编程元素编写(不理解)。

3.编写例程的语法

过程

使用CREATE PROCEDURE命令

CREATE PROCEDURE

        procedure_name (input_parameters)

LANGUAGE SQL

MODIFIES SQL DATA

BEGIN

       produce_body

END

函数

必须包含用于返回的类型化数据和一个RETURN语句

CREATE FUNCTION

        function_name(input_parameters)

RETURNS return_data_type

LANGUAGE SQL

CONTAINS SQL

        function_body

RETURN return_value

UDF--用户自己编写的函数

BIE--系统内置函数

对上述语句的解读:

LANGUAGE language_name:指明例程中所使用的程序语言,若没有LANGUAGE语句,默认使用语言是SQL。

SQL语句类型:

CONTAINS SQL:表示该例程所包含的SQL语句不会去获取或者修改数据。

READS SQL DATA:表示该例程所包含的SQL语句只从数据库中读取数据,而不修改数据。(有疑问:若我在此例程中放置修改数据库的SQL语句,会出现什么情况?)

MODIFIES SQL DATA:表示该例程将会使用SQL语句来修改数据,也可能会读取数据。

4.创建SQL模块

创建

CREATE MODULE module_name

      module_contents

END MODULE

除去某个例程或模块

DROP ROUTINE routine_name

DROP MODULE module_name

5.在一个模块当中,SQL将会使用BEGIN和END关键字来识别复合语句(不理解)。

三、变量及其赋值

1.参考:MySQL变量使用总结

http://www.cnblogs.com/wangtao_20/archive/2011/02/21/1959734.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值