(中职)MySQL 8.0数据库管理与应用第6章教学课件(工信版)

2022-10-20
| 27页
| 107人阅读
| 1人下载
普通

内容正文:

(中职)MySQL 8.0数据库管理与应用第6章教学课件(工信版) 第6章 存储例程 2 6.1.1 创建存储过程 使用CREATE PROCEDURE语句在数据库中创建存储过程: CREATE [DEFINER = {用户 | CURRENT_USER }] PROCEDURE 存储过程名称([参数[, ...]]) [特征 ...] 过程体 参数: [ IN | OUT | INOUT ] 参数名称 数据类型 特征: COMMENT '字符串' | LANGUAGE SQL | [NOT] DETERMINISTIC | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } | SQL SECURITY { DEFINER | INVOKER } 6.1 存储过程 6.1.2 调用存储过程 使用CALL语句调用存储过程: CALL 存储过程名称[()] CALL 存储过程名称([参数[, ...]]) CALL语句调用先前使用CREATE PROCEDURE定义的存储过程。默认情况下,CALL语句将调用包含在当前数据库中的存储过程。如果要调用包含在指定数据库中的存储过程,则应以“数据库名称.存储过程名称”格式来指定存储过程。 1. 调用无参存储过程 存储过程名称后面的圆括号可以省略不写。 2. 调用带IN参数的存储过程 将常量、用户变量或其他表达式作为输入参数传入存储过程,然后在存储过程中使用所传入的参数值。在CALL语句中使用的输入参数应与创建存储过程时定义的IN参数数量相同,数据类型一致。 3. 调用带OUT参数和INOUT参数的存储过程 要使用OUT或INOUT参数从存储过程中获取值,可以通过用户变量向存储过程传递参数,并在存储过程返回后检查和使用用户变量的值。 6.1 存储过程 6.1.2 调用存储过程 4. 在预处理语句中调用存储过程 使用预处理语句可以通过以下3个SQL语句来实现。 (1)使用PREPARE语句准备一个SQL语句并为其分配名称,以便稍后引用该语句: PREPARE stmt_name FROM preparable_stm; (2)使用EXECUTE语句执行先前通过PREPARE命名的语句: EXECUTE stmt_name [USING @var_name [, @var_name] ...]; (3)使用DEALLOCATE PREPARE语句解除先前用PREPARE生成的预处理语句,语法格式如下。 {DEALLOCATE | DROP} PREPARE stmt_name 在与PREPARE和EXECUTE一起使用的预处理的CALL语句中,占位符可以用于IN参数、OUT参数和INOUT参数。 6.1 存储过程 6.1.3 修改存储过程 使用ALTER PROCEDURE语句对存储过程的特征进行修改: ALTER PROCEDURE 存储过程名称 [特征 ...] 特征: COMMENT '字符串' | LANGUAGE SQL | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } | SQL SECURITY { DEFINER | INVOKER } 其中各个特征的作用与CREATE PROCEDURE语句相同。 6.1 存储过程 6.1.4 删除存储过程 使用DROP PROCEDURE语句从数据库中删除存储过程: DROP PROCEDURE [IF EXISTS] 存储过程名称 这个语句可以用于删除存储过程,即从服务器中删除指定的例程。要使用这个语句,必须拥有该过程的ALTER ROUTINE权限。 如果启用了automatic_sp_privileges系统变量,则在创建过程时会自动将该特权和EXECUTE权限授予过程的创建者,并在过程被删除时从创建者中删除。 IF EXISTS子句是MySQL扩展。如果存储过程不存在,使用该子句可以防止发生错误。 6.1 存储过程 6.2.1 复合语句 编写存储例程时可以使用BEGIN ... END复合语句来包含多个语句: [开始标签:] BEGIN [语句列表] END [结束标签] 其中语句列表可以包含一个或多个语句,每个语句都必须用分号“;”来结束。复合语句可以使用标签来标记。例如: lable1: BEGIN USE test; SHOW TABLES; ... END label1 使用多重语句需要客户端能发送包含语句定界符“;”的查询字符串。这个符号在命令行客户端被用DELIMITER命令来处理,即对语句结束符“;”进行修改,例如更改

资源预览图

(中职)MySQL 8.0数据库管理与应用第6章教学课件(工信版)
1
(中职)MySQL 8.0数据库管理与应用第6章教学课件(工信版)
2
(中职)MySQL 8.0数据库管理与应用第6章教学课件(工信版)
3
(中职)MySQL 8.0数据库管理与应用第6章教学课件(工信版)
4
(中职)MySQL 8.0数据库管理与应用第6章教学课件(工信版)
5
(中职)MySQL 8.0数据库管理与应用第6章教学课件(工信版)
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。