没有合适的资源?快使用搜索试试~ 我知道了~
MySql存储过程与事务处理教学PPT
需积分: 14 2 下载量 76 浏览量
2018-04-18
19:12:20
上传
评论
收藏 328KB PPT 举报
温馨提示
什么情况适合用存储过程? 当多个用不同语言开发的应用程序或不同平台的应用程序需要去执行相同的数据库操作. (避免为各个程序都开发相同的功能) 安全性要求较高时,使用存储程序和函数为一些公共的操作 (程序员不是数据库管理员他可能不了解很多数据库的机制比如事务,错误回滚等.银行转帐问题可以解释.) 减轻客户端应用程序的负担 (让更多的操作由数据库服务器执行) MySql存储过程与事务处理教学PPT
资源推荐
资源详情
资源评论
浙江师范大学数理与信息工程学院软件工程系
知识点
Begin…End 程序块
2
变量运算符与赋值
4
声明变量 , 游标 , 条件 , 处理 , 信号
3
3
存储过程
3
1
库函数
6
3
5
流程控制
事务处理
8
3
7
状态和处理
浙江师范大学数理与信息工程学院软件工程系
存储过程
存储过程又称存储程序它是一系列保存在数据库服务器上的 SQL 语句可以
供客户端程序调用它。
MySQL 的存储程序可分以下四大类 :
(1) 存储过程 (2) 函数 (3) 触发器 (4) 事件
与存储过程相关的系统表为 Mysql.Proc 表
适用场合
① 当多个用不同语言开发的应用程序或不同平台的应用程序需要去执行相同
的数据库操作 ( 避免为各个程序都开发相同的功能 )
② 安全性要求较高时 , 使用存储程序和函数作为一些公共的操作 ( 程序员不是
数据库管理员他可能不了解很多数据库的机制比如事务 , 错误回滚等 . 银行
转帐问题可以解释 )
③ 减轻客户端应用程序的负担 ( 让更多的操作由数据库服务器执行 )
浙江师范大学数理与信息工程学院软件工程系
存储过程的语法
CREATE
[DEFINER = { user | CURRENT_USER }]
PROCEDURE sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body
proc_parameter: /* 存储过程的参数列表 */
[ IN | OUT | INOUT ] param_name type
type: /* 参数的数据类型 */
Any valid MySQL data type
characteristic: /* 存储过程的某些特征设定 */
COMMENT 'string'
| LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
routine_body: /* 存储过程的主体部分 */
Valid SQL routine statement
作业 查一下其它删除存储过程与修改存储过程的语法
Alter Procedure 和 Drop Procedure
浙江师范大学数理与信息工程学院软件工程系
存储过程的语法
例子 :
delimiter //
CREATE DEFINER = 'admin'@'localhost' PROCEDURE account_count() SQL
SECURITY INVOKER
BEGIN
SELECT 'Number of accounts:', COUNT(*) FROM mysql.user;
END
// DEFINER 参数代表定义这个存储过程的用户 , 只有 super 权限的用户才可以
把 DEFINER 指定为自己以外的帐号
SQL SECURITY INVOKER 代表调用这个存储过程的帐户以调用者的权限来执
行 SQL 语句 , 限制了没有权限的用户对此存储过程的使用 , 因为查询系统所有的
帐号这个是需要许可的机密数据
作业查询一下其它一些与存储过程相关的关键字的含义如 :
Not Deterministic 等
浙江师范大学数理与信息工程学院软件工程系
存储过程的权限
存储过程如何调用呢 ?
Call 存储过程名 ( 参数 1, 参数 2…)
问题 :
是否阿猫阿狗都可以随便调用存储过程呢 ?
不 , 能执行存储过程的帐户需要 execute routine 权限 . 如果系统参数
automatic_sp_privileges = 1 那么 execute routine 和 alter routine 权限
会随 create routine 权限而自动创建 .
其它 :
MySQL 帐户有 28 个如下权限 :select_priv, insert_priv, update_priv, delete_priv,
create_priv, reload_priv, shutdown_priv, drop_priv, process_priv, file_priv,
grant_priv, references_priv, index_priv, show_db_priv, alter_priv, super_priv,
create_tmp_table_priv, lock_tables_priv, execute_priv, repl_slave_priv,
repl_client_priv, create_view_priv, show_view_priv, create_routine_priv,
alter_routine_priv, create_user_priv, event_priv, trigger_priv
与权限相关的系统表 :
实表 :mysql.user, mysql.tables_priv, mysql.column_priv
虚表 :Information_schema.user_privileges,
nformation_schema.table_privileges, Information_schema.schema_privileges,
Information_schema.column_privileges
剩余28页未读,继续阅读
资源评论
草莓味Haru
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功