mysql-17-procedure
#存储过程
/*
一组预先编译好的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的更多相关文章
- MySQL中Procedure事务编写基础笔记
原文:MySQL中Procedure事务编写基础笔记 目录: 一.PROCEDURE: 二.CREATE PROCEDURE基本语法: 三.PROCEDURE小进阶 3.1.基本的DECLARE语 ...
- 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 ...
- csharp: MySQL Stored Procedure using DAL
# 建表 塗聚文 20160907 drop table attendrecord; create table attendrecord ( seq INT NOT NULL PRIMARY KEY ...
- MySQL:procedure, function, cursor,handler
Procedure & Function Procedure 语法: CREATE [DEFINER = { user | CURRENT_USER }] PROCEDURE sp_name ...
- MYSQL alter procedure alter function 它们只可以更改过程的特性,不可以更改过程的逻辑。
例子: delimiter // create procedure proc_a(in numberA int) 这样create procedure 是正确的 begin select number ...
- mysql存储过程procedure
传送门 http://www.blogjava.net/sxyx2008/archive/2009/11/24/303497.html ) ); DROP PROCEDURE IF EXISTS ju ...
- mysql store procedure 存储过程
参考资料: 1.http://blog.sina.com.cn/s/blog_52d20fbf0100ofd5.html 2.https://dev.mysql.com/doc/refman/5.7/ ...
- mysql存储过程(procedure)
#创建带参数的存储过程 delimiter // ),out p int) begin ; end // delimiter call pro_stu_name_pass(@n,@p); select ...
- 所有子节点、Procedure、MySQL
在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点.但很遗憾,在MySQL的目前版本中还没有对应的功能. ...
- 初习mysql procedure
1.存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户 ...
随机推荐
- 揭秘|一探腾讯基于Kubeflow建立的多租户训练平台背后的技术架构
腾讯业务及组织架构现状 先简单和大家介绍一下腾讯内部的业务及相关组织架构的现状,有助于帮助大家理解为什么我们会基于后面的架构来设计整套方案. 下图的应用大多数人经常会用到,比如微信.腾讯视频.游戏等等 ...
- LightOJ - 1214-Large Division(c++取模 + java的两种写法)
Given two integers, a and b, you should check whether a is divisible by b or not. We know that an in ...
- 06_Python异常处理机制
1.异常概述 1.什么是错误: 错误是指有逻辑或语法等导致一个程序无法正常执行的问题 2.什么是异常: 异常时程序出错时标识的一种状态,程序不会向下执行而转去调用此函数的地方等待处理错误并恢复 ...
- linux 常用目录的作用
. / 根目录 . /bin 命令保存目录(普通用户就可以读取的命令) . /boot 启动目录,启动相关文件 . /dev 设备文件保存目录 . /etc 配置文件保 ...
- leetcode刷题-90子集 II
题目 给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: [1,2,2]输出:[ [2], [1], [1,2,2], [ ...
- node.js之koa安装
默认安装了node 1.cmd中工作目录下输入npm init:一路回车即可: 2.还是在此目录下输入npm i koa:我这里是安装的淘宝镜像即是输入cpm i koa. 3.打开编辑器在文件目录下 ...
- 不用写代码也能做表单 —— 加载meta即可
做增删改查要写多少代码? 一个表单一套代码,十个表单十套代码吗? 我这么懒,怎么会写这么多代码? 我想做到:即使一百个表单也只需要一套代码(而且不需要复制粘贴).实现多个表单,只需要加载不同的meta ...
- docker启动容器报错 Unknown runtime specified nvidia.
启动docker容器时,报错 问题复现 当我启动一个容器时,运行以下命令: docker run --runtime=nvidia .... 后面一部分命令没写出来,此时报错的信息如下: docker ...
- pycharm+Django启动我的第一个页面(Django二)
打开pycharm(社区版),File->open 找到由命令 django-admin startproject mysite 在D盘下创建的文件夹mysite mysite通过文件资源管理器 ...
- Robotframework自动化1-Windows环境搭建
前言: robotframework环境搭建-环境准备 1.python2,pip2 2.WxPython 3.Robot Framework 4.Robotframework-ride 5.RIDE ...