6.mysql存储过程
存储过程
1、命令
创建及调用
定义分隔符
DELIMITER $
创建存储过程
delimiter $$
create procedure 名称()
begin
语句
end$$
delimiter ;
调用存储过程
call 名称();
查看存储过程
show procedure status where db='';
show create procedure pro_name;
删除存储过程
drop procedure pro_name;
2、参数
in
create procedure getname(in name varchar(100) default 'stone')
out
create procedure getsalary(in n varchar(100), out sla int)
call getsalary(‘stone’,@s)
select @s;
inout
结合了输入输出的功能,尽量少用
3、存储过程语句
IF语句
IF expression THEN
statements;
END IF;
IF expression THEN
statements;
ELSE
else-statements
END IF;
CASE语句
CASE
WHEN [condition1]
THEN [result1]
……
WHEN [conditionn]
THEN [resultn]
ELSE result(n+1)
END;
WHILE语句
先检验条件,再执行循环体
while 条件 do
--循环体;
end while;
repeat语句
先执行一遍循环体,再检验条件
repeat
--循环体;
until 循环条件
end repeat;
4、自定义函数
CREATE FUNCTION 函数(参数 类型,[参数 类型,...])
RETURNS 返回类型
BEGIN
return
END;
5、储存过程和函数的区别
1、存储过程可以有多个in,out,inout参数,而函数只有输入参数类型,而且不能带in
2、存储过程实现的功能要复杂一些;而函数的单一功能性(针对性)更强。
3、存储过程可以返回多个值;存储函数只能有一个返回值。
4、存储过程一般独立的来执行;而存储函数可以作为其它sql语句的组成部分来出现。
5、存储过程可以调用存储函数。函数不能调用存储过程。
6、实例
delimiter $$
create procedure insert_c(num int)
begin
declare ran_name varchar(100) default 'QWERTYUIOPASDFFGHJKLZXVCBNMqazwsxedcrfvtgbyhnujmikolp';
declare ran_age int;
declare name varchar(50) default '';
declare i int default 0;
declare j int default 0;
start transaction;
while i < num do
set ran_age = floor(rand()*100);
while j < 20 do
set name = concat(name,substring(ran_name,floor(1+rand()*53),1));
set j=j+1;
end while;
insert into course(cname,age) values(name,ran_age);
set i = i+1;
set name = '';
set j = 0;
end while;
commit;
end$$
delimiter ;
6.mysql存储过程的更多相关文章
- MySQL存储过程(转)
一.MySQL 创建存储过程 "pr_add" 是个简单的 MySQL 存储过程,这个存储过程有两个 int 类型的输入参数 "a"."b" ...
- MySql存储过程
MySQL 存储过程 ```sql CREATE PROCEDURE myprocedure (IN para01 INTEGER) BEGIN DECLARE var01 CHAR(10); IF ...
- mysql存储过程和存储函数
mysql存储过程和存储函数 存数函数代码示例: DROP PROCEDURE IF EXISTS calc_ci_day_suc_rate; delimiter // CREATE FUNCTION ...
- mysql存储过程编写-入门案例-遁地龙卷风
(-1)写在前面 这篇文章只是简要的叙述了mysql存储过程编写的基本概念. 我使用的mysql版本是5.7.9-log. 参照<<深入浅出MySQL>>. (0) delim ...
- MySQL存储过程动态SQL语句的生成
用Mysql存储过程来完成动态SQL语句,使用存储过程有很好的执行效率: 现在有要求如下:根据输入的年份.国家.节假日类型查询一个节假日,我们可以使用一般的SQL语句嵌入到Java代码中,但是执行效率 ...
- MySQL 存储过程
MySQL 存储过程 存储过程是通过给定的语法格式编写自定义的数据库API,类似于给数据库编写可执行函数. 简介 存储过程是一组为了完成特定功能的SQL语句集合,是经过编译后存储在数据库中. 存储过程 ...
- mysql存储过程详解
mysql存储过程详解 1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的S ...
- PHP调用MYSQL存储过程实例
PHP调用MYSQL存储过程实例 标签: mysql存储phpsqlquerycmd 2010-09-26 11:10 11552人阅读 评论(3) 收藏 举报 实例一:无参的存储过程$conn = ...
- mysql存储过程语法及实例
存储过程如同一门程序设计语言,同样包含了数据类型.流程控制.输入和输出和它自己的函数库. --------------------基本语法-------------------- 一.创建存储过程cr ...
- java, mybatis, 调用mysql存储过程
Map<String, Object> bindinfo = new HashMap<String, Object>(); bindinfo.put(&q ...
随机推荐
- Jmeter-BeanShell断言的运用二(不同Json格式的字段提取和断言判断)
前言 为了更加熟悉BeanShell,所以用几个实例来记录说明下,不同的Json格式是怎么提取相应字段和判断断言的.(会持续更新...) 一.第一种Json格式 1.Json响应数据内容如下: { & ...
- 面试官:说一下List排序方法
1. 前言 排序算是比较高频的面试题了,节前面试了的两家公司都有问到排序问题,整理后分享给大家(文末见总结). 通常我们想到实现排序就是 Collections 工具类的 sort() 方法,而 so ...
- 【GDOI2014模拟】JZOJ2020年8月14日提高组 服务器
[GDOI2014模拟]JZOJ2020年8月14日提高组 服务器 题目 Time and Memory Limits Description 我们需要将一个文件复制到n个服务器上,这些服务器的编号为 ...
- 原创题目 白银之春 Problem and Solution
白银之春 Solution 比赛用题面.题解.标程和数据生成器都挂在 git@github.com:sun123zxy/spring.git 上. Problem 白银之春 (spring.cpp/. ...
- Oracle表操作-创建及增删改查
数据类型: 1.CHAR:定长字符类型,默认长度是1,最长不超过2000字节. 2.CARCHAR2(length):可变字符类型,默认长度是1,最长不超过4000字符. 3.NUMBER(P,S): ...
- 使用XPath爬取西刺代理
因为在Scrapy的使用过程中,提取页面信息使用XPath比较方便,遂成此文. 在b站上看了介绍XPath的:https://www.bilibili.com/video/av30320885?fro ...
- 敏捷开发(Scrum)与敏捷测试
1.敏捷测试流程和传统测试流程 软件测试是贯穿整个软件开发生命周期.对软件产品(包括阶段性产品)进行验证和确认的活动过程,也是对软件产品质量持续的评估过程,其目的是尽快尽早地发现在软件产品(包括阶段性 ...
- 手写Json解析器学习心得
一. 介绍 一周前,老同学阿立给我转了一篇知乎回答,答主说检验一门语言是否掌握的标准是实现一个Json解析器,网易游戏过去的Python入门培训作业之一就是五天时间实现一个Json解析器. 知乎回答- ...
- 第六篇 Scrum 冲刺博客
一.站立式会议 1. 会议照片 2. 工作汇报 团队成员名称 昨日完成的工作 今天计划完成的工作 工作中遇到的困难 陈锐基 - 完成关注/取关功能以及动态绑定- 完成点赞/取消点赞功能以及动态绑定 - ...
- 团队作业part6--复审与事后分析
一.Alpha阶段项目复审:https://www.cnblogs.com/3Jax/p/13127401.html 二.事后诸葛亮分析:https://www.cnblogs.com/3Jax/p/ ...