MySQL一个简单的存储过程demo
使用的工具是Navicat for MySQL。
首先创建一个学生表
mysql> create table student(s_name varchar(20) not null default '不详',sex varchar(4) not null default '不详',s_no int(5) auto_increment,age int(3) not null,height int(3) not null,primary key(s_no));
Query OK, 0 rows affected mysql> insert into student (s_name,sex,age,height) values('小张','男',21,176);
Query OK, 1 row affected mysql> insert into student (s_name,sex,age,height) values('小李','男',22,175);
Query OK, 1 row affected mysql> insert into student (s_name,sex,age,height) values('小明','男',25,178);
Query OK, 1 row affected mysql> insert into student (s_name,sex,age,height) values('小红','女',23,165);
Query OK, 1 row affected mysql> insert into student (s_name,sex,age,height) values('小丽','女',19,160);
Query OK, 1 row affected mysql> select * from student;
+--------+-----+------+-----+--------+
| s_name | sex | s_no | age | height |
+--------+-----+------+-----+--------+
| 小张 | 男 | 1 | 21 | 176 |
| 小李 | 男 | 2 | 22 | 175 |
| 小明 | 男 | 3 | 25 | 178 |
| 小红 | 女 | 4 | 23 | 165 |
| 小丽 | 女 | 5 | 19 | 160 |
+--------+-----+------+-----+--------+
5 rows in set
然后写一个存储过程,传入姓名s_name,返回学号s_no
delimiter $$
drop procedure if exists pro_gets_no;
create procedure pro_gets_no(in pname varchar(20),out pno int(5))
begin
select s_no into pno from student where s_name=pname;
end $$
delimiter;
运行之后调用
set @pname='小红';
set @pno=0;
call pro_gets_no(@pname,@pno);
select * from student where s_no=@pno;
结果如下

再创建一个存储过程,将传入姓名的学生身高height修改为175,并且将之后的姓名改为身高姓名作为姓名输出
delimiter $$
drop procedure if exists pro_updateHeight;
create procedure pro_updateHeight(inout pname varchar(20))
begin
update student set height=175 where s_name=pname;
select concat(height,s_name) into pname from student where s_name=pname;
end $$
delimiter;
运行之后调用
set @pname='小李';
call pro_updateHeight(@pname);
select @pname;
结果如下

MySQL一个简单的存储过程demo的更多相关文章
- C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序
C#中缓存的使用 缓存的概念及优缺点在这里就不多做介绍,主要介绍一下使用的方法. 1.在ASP.NET中页面缓存的使用方法简单,只需要在aspx页的顶部加上一句声明即可: <%@ Outp ...
- mysql 如何创建一个简单的存储过程
1 用mysql客户端登入2 选择数据库 mysql>use test3 查询当前数据库有哪些存储过程 mysql>show procedure status where Db='test ...
- SQL点滴28—一个简单的存储过程
原文:SQL点滴28-一个简单的存储过程 在表中写入一条数据同事要向另外一个表中写入信息,所以会使用到事务.实际使用的时候还会一次向一个表中吸入多条数据,下面的存储过程,将字符串拆分成数组然后写入到表 ...
- .net core api +swagger(一个简单的入门demo 使用codefirst+mysql)
前言: 自从.net core问世之后,就一直想了解.但是由于比较懒惰只是断断续续了解一点.近段时间工作不是太忙碌,所以偷闲写下自己学习过程.慢慢了解.net core 等这些基础方面学会之后再用.n ...
- spring boot一个简单用户管理DEMO
概述 该Demo旨在部署一个简单spring boot工程,包含数据编辑和查看功能 POM配置 <?xml version="1.0" encoding="UTF- ...
- 实现一个简单的虚拟demo算法
假如现在你需要写一个像下面一样的表格的应用程序,这个表格可以根据不同的字段进行升序或者降序的展示. 这个应用程序看起来很简单,你可以想出好几种不同的方式来写.最容易想到的可能是,在你的 JavaScr ...
- 1020关于mysql一个简单语句的执行流程
MySQL的语句执行顺序 转自http://www.cnblogs.com/rollenholt/p/3776923.html MySQL的语句一共分为11步,如下图所标注的那样,最先执行的总是FRO ...
- (转)一个简单的rest_framework demo
转发:https://www.cnblogs.com/fu-yong/p/9100559.html models.py 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 from ...
- 一个简单的rest_framework demo
models.py from django.db import models class UserInfo(models.Model): username = models.CharField(max ...
随机推荐
- 第六讲:CPU虚拟化
虚拟化技术的分类主要有服务器虚拟化.存储虚拟化.网络虚拟化.应用虚拟化. 服务器虚拟化技术按照虚拟对象来分,可分为:CPU虚拟化.内存虚拟化.I/O虚拟化: 按照虚拟化程度可分为:全虚拟化.半虚拟化. ...
- 基于Struts自定义MVC-1
自定义MVC 数据库:Oracle表:User(id,uname,upwd)自定义Struts框架一.定义Action接口 1 import javax.servlet.http.*; ...
- oracle数据库命令-持续更新
一.系统命令 登录 dba用户命令 sqlplus / as sysdba 2. 用户命令 删除用户 DROP USER **** CASCADE; DROP SCHEMA **** CASCADE; ...
- 棋盘覆盖(一) ACM
棋盘覆盖 描述 在一个2k×2k(1<=k<=100)的棋盘中恰有一方格被覆盖,如图1(k=2时),现用一缺角的2×2方格(图2为其中缺右下角的一个),去覆盖2k×2k未被覆盖过的方格,求 ...
- 【NodeJs】记录一个阿里云redis的坑
背景 一个风和日丽的下午,一个上线的大好日子,以为一切准备好,上个线也就三五分钟的事.但是... 图样图森破. 背景是这样的,项目需要,在阿里云开通redis,在项目中配好redis的连接字符串后,以 ...
- 2620: [Usaco2012 Mar]Haybale Restacking
2620: [Usaco2012 Mar]Haybale Restacking Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 201 Solved: ...
- Tyvj P1813 [JSOI2008]海战训练
P1813 [JSOI2008]海战训练 时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述 为了准备高层峰会,元首命令武装部队必须处于高度戒备.警察将监视每一条 ...
- H5 音频
HTML 5 音频 HTML5 视频/DOM HTML5 拖放 HTML5 提供了播放音频的标准. Web 上的音频 直到现在,仍然不存在一项旨在网页上播放音频的标准. 今天,大多数音频是通过插件(比 ...
- linux虚拟机安装演示
做为一名linux初学者来说,在本机上安装linux虚拟机做为平时练习工具极为重要,此方式在充分体验linux操作乐趣的同时,又能保证不破坏已经配置好的服务器.所以虚拟机是一种很好的学习工具了.下面总 ...
- Struts2中ActionContext及ServletActionContext介绍(转载)
1. ActionContext 在Struts2开发中,除了将请求参数自动设置到Action的字段中,我们往往也需要在Action里直接获取请求(Request)或会话(Session)的一些信息, ...