数据库 存储过程和函数,vivo安卓开发面试

Characteristic 参数有多个取值。其取值说明如下:

LANGUAGE SQL:说明 routine_body 部分是由 SQL 语言的语句组成,这也是数据库系统默认的语言。

[ NOT ] DETERMINISTIC :指明存储过程的执行结果是否是确定的。DETERMINISTIC 表示结果是确定的。每

次执行存储过程时,相同的输入会得到相同的输出。NOT DETERMINISTIC 表示结果是非确定的,相同的输入可能得到不同的输出。默认情况下,结果是非确定的。

{ CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } :指明子程序使用 SQL 语句的限制;

CONTAINS SQL 表示子程序包含 SQL 语句,但不包含读或写数据的语句;NO SQL 表示子程序中不包含 SQL

语句;READS SQL DATA 表示子程序中包含读数据的语句;MODIFIES SQL DATA 表示子程序中包含写数据的语句。

默认情况下,系统会指定为 CONTAINS SQL;

SQL SECURITY { DEFINER | INVOKER };指明谁有权限来执行。

DEFINER 表示只有定义者自己才能够执行;

INVOKER 表示调用者可以执行。默认情况下,系统指定的权限是 DEFINER。

COMMENT ‘string’ :注释信息;

2,创建存储函数


CREATE FUNCTION sp_name ( [func_parameter[,…]] )

RETURNS type

[ characteristic… ] routine_body

sp_name 参数是存储函数的名称;func_parameter 表示存储函数的参数列表;RETURNS type 指定返回值的类型;characteristic 参数指定存储过程的特性,该参数的取值与存储过程中的取值是一样的;routine_body 参数是 SQL 代码的内容,可以用 BEGIN…E
ND 来标志 SQL 代码的开始和结束;func_parameter 可以由多个参数组成,其中每个参数由参数名称和参数类型组成,其形式如下:param_name type 其中,param_name 参数是存储函数的参数名称;type 参数指定存储函数的参数类型,该类型可以是 MySQL 数据库的任意数据类型;

3,变量的使用


3.1 定义变量

DECLARE var_name [,…] type [ DEFAULT value ]

3.2 为变量赋值

SET var_name = expr [,var_name=expr] …

SELECT col_name[,…] INTO var_name[,…]

FROM table_name WHERE condition

4,游标的使用


查询语句可能查询出多条记录,在存储过程和函数中使用游标来逐条读取查询结果集中的记录。游标的使用包括声明游标、打开游标、使用游标和关闭游标。游标必须声明在处理程序之前,并且声明在变量和条件之后。

4.1 声明游标

DECLARE cursor_name CURSOR FOR select_statement ;

4.2 打开游标

OPEN cursor_name;

4.3 使用游标

FETCH cursor_name INTO var_name [,var_name … ];

4.4 关闭游标

CLOSE cursor_name;

5,流程控制的使用


存储过程和函数中可以使用流程控制来控制语句的执行。MySQL 中可以使用 IF 语句、CASE 语句、LOOP语句、LEAVE 语句、ITERATE 语句、REPEAT 语句和WHILE 语句来进行流程控制。

5.1 IF语句

IF search_condition THEN statement_list

[ ELSEIF search_condition THEN statement_list ]…

[ ELSE statement_list ]

END IF

5.2 CASE语句

CASE case_value

WHEN when_value THEN statement_list

[WHEN when_value THEN statement_list]…

[ELSE statement_list ]

END CASE

5.3 LOOP,LEAVE 语句

LOOP 语句可以使某些特定的语句重复执行,实现一个简单的循环。但是 LOOP 语句本身没有停止循环的语句,必须是遇到 LEAVE 语句等才能停止循环。LOOP 语句的语法的基本形式如下:

5.3 LOOP,LEAVE 语句

LOOP 语句可以使某些特定的语句重复执行,实现一个简单的循环。但是 LOOP 语句本身没有停止循环的语句,必须是遇到 LEAVE 语句等才能停止循环。LOOP 语句的语法的基本形式如下:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值