存储过程

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存储过程的更多相关文章

  1. MySQL存储过程(转)

    一.MySQL 创建存储过程 "pr_add" 是个简单的 MySQL 存储过程,这个存储过程有两个 int 类型的输入参数 "a"."b" ...

  2. MySql存储过程

    MySQL 存储过程 ```sql CREATE PROCEDURE myprocedure (IN para01 INTEGER) BEGIN DECLARE var01 CHAR(10); IF ...

  3. mysql存储过程和存储函数

    mysql存储过程和存储函数 存数函数代码示例: DROP PROCEDURE IF EXISTS calc_ci_day_suc_rate; delimiter // CREATE FUNCTION ...

  4. mysql存储过程编写-入门案例-遁地龙卷风

    (-1)写在前面 这篇文章只是简要的叙述了mysql存储过程编写的基本概念. 我使用的mysql版本是5.7.9-log. 参照<<深入浅出MySQL>>. (0) delim ...

  5. MySQL存储过程动态SQL语句的生成

    用Mysql存储过程来完成动态SQL语句,使用存储过程有很好的执行效率: 现在有要求如下:根据输入的年份.国家.节假日类型查询一个节假日,我们可以使用一般的SQL语句嵌入到Java代码中,但是执行效率 ...

  6. MySQL 存储过程

    MySQL 存储过程 存储过程是通过给定的语法格式编写自定义的数据库API,类似于给数据库编写可执行函数. 简介 存储过程是一组为了完成特定功能的SQL语句集合,是经过编译后存储在数据库中. 存储过程 ...

  7. mysql存储过程详解

    mysql存储过程详解 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的S ...

  8. PHP调用MYSQL存储过程实例

    PHP调用MYSQL存储过程实例 标签: mysql存储phpsqlquerycmd 2010-09-26 11:10 11552人阅读 评论(3) 收藏 举报 实例一:无参的存储过程$conn = ...

  9. mysql存储过程语法及实例

    存储过程如同一门程序设计语言,同样包含了数据类型.流程控制.输入和输出和它自己的函数库. --------------------基本语法-------------------- 一.创建存储过程cr ...

  10. java, mybatis, 调用mysql存储过程

    Map<String, Object> bindinfo = new HashMap<String, Object>();            bindinfo.put(&q ...

随机推荐

  1. python—数据类型和变量

    在python中,能够直接处理的数据类型和变量有整数.浮点数.字符串.布尔值.空值.变量. 一.整数 1.python可处理任意大小的整数,包括负整数,在程序中的表示方法与在数学中的方法一样.例如:0 ...

  2. 2014_07_11_VGA基础及封装

    -- VR1201 Color Filter LCOS Microdisplays QVGA (320*240 Pixel) Color Filter LCOS Microdisplays -- VR ...

  3. C和指针课后练习题3

    1.在你的机器上,字符的范围有多大?有那些不同的整数类型以及他们的范围? C语言中数据输入输出格式: %d 有符号10进制整数%i 有符号10进制整数%o 无符号8进制整数%u 无符号10进制整数%x ...

  4. 孪生网络入门(上) Siamese Net及其损失函数

    最近在多个关键词(小数据集,无监督半监督,图像分割,SOTA模型)的范畴内,都看到了这样的一个概念,孪生网络,所以今天有空大概翻看了一下相关的经典论文和博文,之后做了一个简单的案例来强化理解.如果需要 ...

  5. Mysql-索引分析查询性能

    explain 全文只有一个关键点,那就是explain,explain 显示了MySQL如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句.简单讲,它的作用就 ...

  6. DockerFile理解与应用

    1.DockerFile是什么? DockerFile是用来构建Docker镜像的构建文件,一般分为四部分:基础镜像信息.维护者信息.镜像操作指令和容器启动时执行指令,'#' 为 Dockerfile ...

  7. 被老猿误解的Python匿名函数lambda

    在<第2.3节 Python运算符大全>老猿这样描述lambda:"上述运算符中有个lambda,这是个lambda就是用来定义一个匿名函数的.老猿认为用处不大,具体内容大家可以 ...

  8. 第10.6节 Python包的概念

    一. 引言 在<第10.2节 Python的模块及模块导入>介绍了模块的概念及导入的几个关键点,Python中的模块是一个单个的py文件,当我们开发的项目或功能集由多个文件构成时,我们需要 ...

  9. mysql中table schema的基本操作

    我们通常对数据库进行的增删插检操作,是针对数据库中的文件.mysql数据库中还有一些表(是view,只能做select操作)记录了现有表的meta data,比如某个column的名字,它的定义是什么 ...

  10. 使用postman发送http请求

    postman使用详解: http://gold.xitu.io/entry/57597a62a341310061337885 https://www.getpostman.com/docs/writ ...