MySQL入门之存储过程与存储函数
-------------------------------------------------------------------------------------------------------------
教程大纲:
http://blog.csdn.net/qq78442761/article/details/76018310
-------------------------------------------------------------------------------------------------------------
存储过程
存储过程的特点:
1.可增强SQL语言的功能和灵活性
2.良好的封装性
3.高性能
4.可减少网络流量
5.存储过程可以作为一种安全机制来确保数据库的安全性和数据的完整性
创建存储过程
将mysql结束符修改为两个叹号再修改回来
给test_1中创建一个存储过程,用于实现给定表customers中一个cust_id 即可修改表中该客户的性别为一个指定的性别
注意:创建存储过程必须具有create routine权限
查看数据库中存在哪些存储过程
查看某个存储过程的具体信息
存储过程体
1.局部变量
a) 声明局部变量用于存储存储过程中的临时结果
b) 使用declare
c) 只存在于begin end 中
d) 必须在存储过程体的开头处声明
e) 用户变量要用@,用户变量存在于整个会话中
下面演示申请局部变量
Set语句
在存储变量中使用set语句为局部变量赋值,如下操作
Select into 语句
把选定列的值直接存储到局部变量中
语法如下
Select col_name into var_name table_expr
1.col_name:指定列名
2.Var_name:用于指定要赋值的变量名
3.Table_expr:表示select语句中的from子句
4.返回结果只有一行数据
流程控制语句
1.条件判断语句
if search_condition then statement_list
[elseif search_condition then statement_list]
[else statement_list]
End if
1.search_condition:用于指定判断的条件
2.Statement_list:用于包含了一条或多条的SQL语句
Case语句
Case case_value
When when_value then statement_list
[when when_value then statement_list]
[else statement_list]
End case
或者
Case
When search_condition then statement_list
[when search_condition then statement_list]
[else statement_list]
End else
一般使用第二种方法
循环语句
常用的循环语句有 while,repeat(复述),loop(环-跳转)
下面先介绍while语句
[begin_label:]while search_condition DO
Statement_list
End while[end_label]
1.首先判断search_condition是否为真 为真则循环
2.Begin_label和end_label是whlie语句的标注,名字必须相同并且成对出现
Repeat语句
[begin_label:]repeat
Statement_list
Until search_condition
End repeat[end_label]
1.repeat语句首先执行statement_list语句
2.Search_condition是否为真
3.可以使用begin_label和end_label进行标注
4.Repeat类似于do循环,先执行再判断
Loop语句
[begin_label:]loop
Statement_list
End loop[end_label]
1.可用begin_label和end_label进行标注
2.使用leave语句循环才退出
游标
1.游标是一个被select语句检索出来的集合
2.5.0之后的版本才会有
3.只用于存储过程
4.游标是结果,不是语句
下面说明语法
游标声明
1.declare cursor_name cursor for select_statement
2.Select_statement:指定一个select语句,其会返回多行数据,记住不能有into
打开游标
1.在5.5以后的版本中才有
2.Open cursor_name
读取游标
1. mysql5.5以后的版本才会有
2. Fetch cursor_name into var_name
3. Var_name:用于存放指定数据的变量名
关闭游标
1.在5.5之后的版本才有
2.Close cursor_name
3.如果没有明确关闭游标,mysql在end的时候会自动关闭
下面举一个例子
在test_1中创建一个存储过程,用于计算表customers1中的数据行的行数
调用存储过程sp_sumofrow进行调用再查看存储过程sp_sumofrow后的结果
调用存储过程
我们先创建一个存储过程
下面我们先查看一下customers1表
现在来调用并查看存储过程
修改存储过程
用alter procedure修改部分,但一般是先删除在创建
删除存储过程
存储函数
1.与存储过程十分相似
2.不能拥有输出函数
3.可以直接调用,不需要call语句
4.必须包含一个return语句
下面来创建一个存储函数,给出id返回性别,无id的返回”没有改客户“
下面来调用存储函数和删除存储函数
MySQL入门之存储过程与存储函数相关推荐
- 【MySQL进阶】存储过程及存储函数
5.存储过程 5.1.介绍 存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率 ...
- MySQL初级篇——存储过程、存储函数的相关概念及应用举例
文章目录: 1.什么是存储过程? 2.存储过程操作相关SQL 3.存储过程实操SQL 4.存储函数操作相关SQL 5.存储函数实操SQL 6.存储过程.存储函数的优缺点 1.什么是存储过程? 含义:存 ...
- MYSQL中如何创建存储过程和存储函数(上篇)
存储程序分为存储过程和存储函数.在MySQL中创建存储过程和存储函数的语句分别是create procedure 和create function.使用call语句来调用存储过程,只能用输出变量返回值 ...
- MySQL存储过程与存储函数
1.创建存储过程 存储过程就是一条或者多条 SQL 语句的集合,可以视为批文件.它可以定义批量插入的语句,也可以定义一个接收不同条件的 SQL. 创建存储过程的语句为 "create pro ...
- 15【存储过程和存储函数】
上一篇:14[视图] 下一篇:16[数据库的范式] 目录:[MySQL零基础系列教程] 文章目录 15[存储过程和存储函数] 15.1 存储程序优缺点 15.2 存储过程的使用 15.3 存储过程的语 ...
- 数据库存储过程与存储函数
数据库存储过程与存储函数_伱糸淂忄-CSDN博客 MySQL数据库之存储过程与存储函数 - 奥辰 - 博客园 1.数据库存储过程与存储函数 存储过程是一组为了完成特定功能的SQL语句集,经过编译后存储 ...
- Mysql存储过程和存储函数
存储过程和存储函数 前言 存储过程的相关操作 创建 调用 查看 删除 语法 变量的定义与赋值 if条件判断 参数 case结构 while循环 repeat循环结构 loop语句 leave语句 游标 ...
- oracle存储过程与函数的区别及作用,Oracle存储过程与存储函数-入门
文章思维导图 一. 存储过程和存储函数的定义 定义:存储在数据库中,供所有用户程序调用的子程序叫做存储过程/存储函数.复杂点的解释:存储过程(Stored Procedure),就是一组用于完成特定数 ...
- 【宋红康 MySQL数据库】【基础版】【15】存储过程与存储函数
文章目录 存储过程与存储函数 定义存储过程与存储函数 对比存储函数和存储过程 存储过程概述 理解 分类 创建存储过程 语法分析 代码举例 调用存储过程 调用格式 代码举例 如何调试 存储函数的使用 语 ...
最新文章
- 关于理解Perl的fork函数的一个范例
- 前端每日实战:140# 视频演示如何用纯 CSS 创作文本的淡入动画效果
- VS2008 快捷键大全
- 一棵树的生物量怎么算_宾利的眼镜盒价值2万,算坑人吗?网友:良心产品,不坑穷人...
- 在Bootstrap中使用类的按钮类型
- Python让你成为AI 绘画大师,简直太惊艳了!(附代码)
- Quartus17下使用Modelsim10进行仿真
- Mac中的黑科技软件——CrossOver
- xml和TreeView
- FHJ学长的心愿 QDUOJ 数论
- 数据结构课程设计-商品货架管理(C语言)
- ROS安装教程(详细)
- 据说200G网盘资料
- 微信小程序中图表可视化
- 纯CSS实现多行文本溢出显示省略号(兼容不同浏览器)
- 30张被厂商阉割掉的Andorid7.0原生2K壁纸,我们为你优选最优质的10张
- 小米200万的新LOGO 一行代码就能修改?
- mysql 介绍 怎么下载 驱动jar包 各种细节问题大详解
- [nRF52832开发板:Nordic Thingy:52]Nordic Thingy:52到手
- 智能问答开源_7个开源问答平台