存储过程

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. MySQL全面瓦解13:系统函数相关

    概述 提到MySQL的系统函数,我们前面有使用过聚合函数,其实只是其中一小部分.MySQL提供很多功能强大.方便易用的函数,使用这些函数,可以极大地提高用户对于数据库的管理效率,并更加灵活地满足不同用 ...

  2. zk下的kafka节点

    zk从某种程度上说是kafka的单点失效组件. /brokers:里面保存了Kafk集群的所有信息,包括每台broker的注册信息,集群上所有topic的信息等. /controller:保存了Kaf ...

  3. redis-cli 持久化,复制,哨兵,事务,流水线

    一.持久化: 快照文件RDB 保存"开始"创建新快照一刻的内存快照,创建过程的内存变化不会被记录 创建快照的办法有几种 1.客户端可以通过想Redis发送BGSAVE来创建一个快照 ...

  4. MFC二进制文件读取

    1.mfc Document-vew doc类中读取 doc类中读取,在Vew类中可直接使用. 在菜单栏NewFile/OpenFile 后,系统自动调用Serialize()函数 if :写入文件 ...

  5. 红黑树、TreeMap、TreeSet

    事先声明以下代码基于JDK1.8版本 参考资料 大部分图片引自https://www.jianshu.com/p/e136ec79235c侵删 https://www.cnblogs.com/skyw ...

  6. 死磕以太坊源码分析之Fetcher同步

    死磕以太坊源码分析之Fetcher同步 Fetcher 功能概述 区块数据同步分为被动同步和主动同步: 被动同步是指本地节点收到其他节点的一些广播的消息,然后请求区块信息. 主动同步是指节点主动向其他 ...

  7. SpringBoot第十二集:度量指标监控与异步调用(2020最新最易懂)

    SpringBoot第十二集:度量指标监控与异步调用(2020最新最易懂) Spring Boot Actuator是spring boot项目一个监控模块,提供了很多原生的端点,包含了对应用系统的自 ...

  8. 跟我一起学Redis之Redis持久化必知必会

    前言 Redis是出了名的速度快,那是因为在内存中进行数据存储和操作:如果仅仅是在内存中进行数据存储,那就会导致以下问题: 数据随进程退出而消失:当服务器断电或Redis Server进程退出时,内存 ...

  9. python模块wifi使用小记

    安装命令 pip install wifi 连接命令 sudo wifi connect --add-hoc ssid,使用该命令会修改/etc/network/interfaces配置文件,导致启动 ...

  10. Python_爬虫养殖专业户_00

    为什么学习爬虫? 当你在夜深人静,睡不着觉,想看一些更加睡不着觉的图片/视频时... 这是一句疑似玩笑话, 现实情况是, 每一天, 整个社会都积累了大量的数据, 在数据化的社会中,没有大批量的收集和探 ...