返回
编程
分类

1、存款和储蓄进度或函数能够调用其余的进度或函数,并将那个SQL语句充任一个总体存款和储蓄在MySQL服务器中

日期: 2020-04-15 17:21 浏览次数 : 116

必威官网亚洲体育 ,存储过程和函数:

存储过程概念

创建存储过程和函数是指将经常使用的一组SQL语句组合在一起,并将这些SQL语句当作一个整体存储在MySQL服务器中。(感觉很像c中的函数和java中的方法)

创建示例代码:

存储过程基本语法

create procedure sp_name ([proc_parameter[,...]])[characteristic]routine_body
-sp_name:存储过程的名字
-proc_parameter:存储过程的参数列表
-characteristic:存储过程的特性
-routine_body:是SQL的语句代码,可以用BEGIN...END来标记SQL代码的开始和结束。

proc_parameter中的每个参数由3部分组成。输入输出类型、参数名称、参数类型
[in|out|inout] 输入输出类型
-characteristic 参数有多个取值:
-LANGUAGE SQL:说明routine_body部分是由SQL语言的语句组成,这也是数据库系统默认的语言。
-[NOT] DETERMINISTIC:指明每次存储过程的执行结果是否确定。默认情况下结果是非常确定的。
-{CONTAINS SQL|NO SQL|READS SQL DATA|MODIFIES SQL DATA}:指明子程序使用SQL语句的限制。默认情况下指定为CONTAINS SQL。

  • CONTAINS SQL:表示子程序包含SQL语句,但不含读写数据的语句。
  • NO SQL:表示子程序不包含SQL程序。
  • READS SQL DATA:表示子程序包含读数据的语句。
  • MODIFIES SQL DATA:表示子程序中包含写数据的语句。

SQL SECURITY{DEFINER|INVOKER}:指明谁有权来执行。默认是definer(定义者).invoker(调用者)

COMMENT 'string':注释信息


简单实例

create procedure pro_student(in old_name varchar(20),in new_name varchar(20),out out_no int(4))
BEGIN
    declare temp int(4);
    update student set sname=new_name where sname=old_name;
    select sno into temp from student where sname=new_name;
    set out_no=temp;
END;
call pro_student('徐凤年','徐浩程',@s_no);-- 调用
select @s_no;-- 显示输出表

必威官网亚洲体育 1

最后的显示结果

亲测有效,如显示的表,此存储过程已经将被修改的学生ID显示了出来。

DELIMITER $$CREATE PROCEDURE proc(IN c_id INT, IN c_name VARCHAR(20), OUT count INT)READS SQL DATABEGIN  SELECT *  FROM course  WHERE cou_no = c_id  OR cou_name = c_name;  SELECT FOUND_ROWS() INTO count;END $$DELIMITER

另:

1、存储过程或函数可以调用其他的过程或函数。

2、{READS SQL DATA|MODIFIES SQL DATA|NO SQL|CONTAINS SQL}:这些特征值提供子程序使用数据的内在信息,这些特征值目前只是提供给服务器,并没有根据这些特征值来约束过程实际使用数据的情况。

  • READS SQL DATA:表示子程序包含读数据的语句,但不包含写数据的语句。
  • MODIFIES SQL DATA:表示子程序包含写数据的语句。
  • NO SQL:表示子程序不包含SQL语句。
  • CONTAINS SQL:表示子程序不包含读或者写数据的语句。

如果这些特征没有明确给定,默认使用的值是CONTAINS SQL。  

测试代码(分别执行):

CALL proc(1,'信息系统',@a);SELECT @a;

删除存储过程或者函数代码:

DROP PROCEDURE proc;

NAVICAT创建存储过程和函数过程:

1、点击函数,新建函数

必威官网亚洲体育 2

2、选择“过程”

必威官网亚洲体育 3

3、开始编辑存储过程或函数

必威官网亚洲体育 4

4、点击“保存”,填写名称

必威官网亚洲体育 5