#存储过程
/*
一组预先编译好的sql语句集合,理解成批处理语句 好处:
1、提高代码重用性
2、简化操作
3、减少了编译次数并减少了和数据库服务器的连接次数,提高了效率
*/ #一、创建
/*
create procedure 存储过程名(参数列表)
begin
一组合法的sql语句
end 注意:
1、参数列表
参数模式 参数名 参数类型
in stuname varchar(20) 2、参数模式
in 该参数可以作为输入,传入值
out 该参数可以作为输出,返回值
inout 输入输出都可以 3、如果存储过程体只有一句话,begin end可以省略 4、存储体中,每条sql语句的结尾要求必须加分号;存储过程的结尾可以用delimiter重新设置
*/ #二、调用
/*
call 存储过程名(实参列表);
*/ #1、空参列表
#案例:插入到admin表中五条记录
use girls;
select * from admin; delimiter &
create procedure myp1()
begin
insert into admin(username, password)
values('john1', '0000'), ('lily', '1000');
end & call myp1()&
select * from admin& #2、创建带in模式参数的存储过程
#案例1:根据女生名,查询对应的男生信息
delimiter &
create procedure mpv2(
in beauty_name varchar(20)
)
begin
select bo.*
from beauty as b
left join boys as bo
on bo.id = b.boyfriend_id
where b.name=beauty_name;
end & call mpv2('柳岩')& #案例2:创建存储过程实现,用户是否登录成功
create procedure mpv3(
in username varchar(20),
in password varchar(20)
)
begin
declare result varchar(20) default '';
select count(*) into result #赋值
from admin
where admin.username = username and admin.password = password;
select if(result>0, '成功', '失败');
end& call mpv3('张飞', '8888')&
call mpv3('john', '8888')& #3、创建带out模式的存储过程
#案例1:根据女生名,返回对应的男生名
create procedure mpv4(
in beautyName varchar(20),
out boyName varchar(20)
)
begin
select bo.boyName into boyName
from boys as bo
inner join beauty as b on bo.id = b.boyfriend_id
where b.name = beautyName;
end& #调用
call mpv4('小昭', @bName)&
select @bName; #4、带inout模式的存储过程
#案例1:传入a和b两个值,最终a和b都翻倍并返回
create procedure mpv5(
inout a int,
inout b int
)
begin
set a = a*2;
set b = b*2;
end& set @v1 = 10&
set @v2 = 20&
call mpv5(@v1, @v2)&
select @v1, @v2& #存储过程的删除
#只能一次删一个
# drop procedure 存储过程名; #查看存储过程
show create procedure mpv5; delimiter ;

  

mysql-17-procedure的更多相关文章

  1. MySQL中Procedure事务编写基础笔记

    原文:MySQL中Procedure事务编写基础笔记 目录: 一.PROCEDURE: 二.CREATE PROCEDURE基本语法: 三.PROCEDURE小进阶   3.1.基本的DECLARE语 ...

  2. MySQL Error: PROCEDURE xmdk.query_all_plan can't return a result set in the given context

    C++调用存储过程失败!出现如下错误:MySQL Error: PROCEDURE xmdk.query_all_plan can't return a result set in the given ...

  3. csharp: MySQL Stored Procedure using DAL

    # 建表 塗聚文 20160907 drop table attendrecord; create table attendrecord ( seq INT NOT NULL PRIMARY KEY ...

  4. MySQL:procedure, function, cursor,handler

    Procedure & Function Procedure 语法: CREATE [DEFINER = { user | CURRENT_USER }] PROCEDURE sp_name ...

  5. MYSQL alter procedure alter function 它们只可以更改过程的特性,不可以更改过程的逻辑。

    例子: delimiter // create procedure proc_a(in numberA int) 这样create procedure 是正确的 begin select number ...

  6. mysql存储过程procedure

    传送门 http://www.blogjava.net/sxyx2008/archive/2009/11/24/303497.html ) ); DROP PROCEDURE IF EXISTS ju ...

  7. mysql store procedure 存储过程

    参考资料: 1.http://blog.sina.com.cn/s/blog_52d20fbf0100ofd5.html 2.https://dev.mysql.com/doc/refman/5.7/ ...

  8. mysql存储过程(procedure)

    #创建带参数的存储过程 delimiter // ),out p int) begin ; end // delimiter call pro_stu_name_pass(@n,@p); select ...

  9. 所有子节点、Procedure、MySQL

    在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点.但很遗憾,在MySQL的目前版本中还没有对应的功能. ...

  10. 初习mysql procedure

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

随机推荐

  1. CF1203D2 Remove the Substring (hard version) 题解

    这题初赛让我白给了6分,于是我决定回来解决一下它. 说实话,看原题题面和看CCF代码真是两种完全不同的感受…… ------------思路分析: 把$s$串删去一部分之后,会把$s$串分成两部分,当 ...

  2. 总结java创建文件夹的4种方法及其优缺点-JAVA IO基础总结第三篇

    本文是Java IO总结系列篇的第3篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...

  3. JDK源码分析-ArrayList

    ArrayList 储存结构 private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}; transient Objec ...

  4. laravel在视图中使用类似于“__PUBLIC__”,“__UPLOADS__”的操作

    首先在config文件夹下建立static.php文件 然后在里面定义常量 例: <?php define('__PUBLIC__', '/'); define('__UPLOADS__', ' ...

  5. Android,java,php开发最基本的知识,mysql sqlite数据库的增删改查代理,sql语句

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985转载请说明出处. 下面是代码: 增加:insert into 数据表(字段1,字段2,字段3) valu ...

  6. laya资源版本管理

    layaair-cmd https://ldc.layabox.com/doc/?nav=zh-as-3-4-2 Laya的版本管理 https://blog.csdn.net/qq_43287088 ...

  7. ffmpeg 编译Android

    环境 macOS 10.15.4    NDK 21.3.6528147   ffmpeg 4.2.3 1.执行sudo xcodebuild -license,防止编译的时候找不到一些文件报错 2. ...

  8. CMOS设计手册—基础篇

    模拟CMOS 衬底噪声:由于相邻的电阻互相注入电流而产生的衬底噪声.解决方法:在两个电阻之间加入一个P+注入区(作为P衬底晶圆的衬底接触).P+注入区保护电路免受载流子的影响,由于注入区是一个环形,所 ...

  9. ElasticSearch7.6.1 安装及其head插件安装

    本来打算写一篇ES和Solr的差别的,后来想想算了简单说说吧, 如果是对已存在数据建立完成索引的情况下,Solr更快 一但进行索引的操作的时候,Solr的IO是阻塞的 对于大数据量的实时检索,还是El ...

  10. ubuntu 18.04下修改python3指向

    起因 ubuntu18.04下默认带的是python3.6,但是因为需求需要升级为python3.7 步骤 安装 sudo apt install python3.7 修改环境变量 修改默认的pyth ...