procedure存储数据的过程
注:在测试过程中,已存在数据不满足当前测试时,我们就需要构造数据来满足我们的测试工作。
如:现在需要1万条数据来模拟母猪上树时的坠亡事件(注:例子,,当然没人会像我一样无聊)!!!这个时候就需要数据起作用了,。那么我们简单的构造数据怎么做呢?那我们就开始吧
一、什么是存储过程。
-- 存储过程 procedure
-- 存储过程是一组为了完成特定功能的SQL语句集合
-- 创建存储过程语法:
delimiter // -- 自定义结束符
create procedure 存储过程名(输入输出类型 参数名1 参数类型,输入输出类型 参数名2 参数类型,……)
begin
sql语句集;
end //
-- 使用存储过程
call 存储名称( 参数1,参数2... );
drop procedure if exists hello world;
delimiter $$
create procedure hello world()
begin
select * from emp ;
select * from dept ;
select * from student ;
end $$
call hello world();
-- 例子
-- 创建一个存储过程,名称为hello world
-- 要求存储过程实现,查询emp和dept,列出姓名和部门名称 ;
drop procedure if exists hello world;
delimiter $$
create procedure hello world()
begin
select e.ename , d.dname from emp e inner join dept d on e.deptno = d.deptno ;
end $$ //这里用到多表查询
call hello world();
二、定义变量
-- 定义变量的语法 declare 申明的是一个成员变量,成员变量的作用域仅限于申明的空间范围
declare 变量名 数据类型(长度) default 默认值;
drop procedure if exists hello world;
delimiter $$
create procedure hello world()
begin
declare h varchar(20) default 'hello' ;
select h ;
select ename into ttt from emp where id = 1;
select h ;
end $$
call hello world();
三、输入参数
-- 输入参数
-- 示例:输入一个姓名,查出他属于哪个部门
drop procedure if exists hello world;
create procedure hello world( in name varchar(20) )
begin
select d.dname from emp e , dept d where e.deptno = d.deptno and e.ename = name ;
end
call hello world( '彭于晏' );
-- 示例: 输入两个工资范围,列出这个范围工资的员工是哪些
drop procedure if exists hello world;
delimiter $$
create procedure hello world( sal1 int(20) , sal2 int(20) )
begin
select ename from emp where sal between sal1 and sal2 ;
end $$
delimiter ;
call hello world( 8000 , 15000 );
-- 示例:更新指定部门员工的工资上涨20%
drop procedure if exists hello world;
delimiter $$
create procedure hello world( dept_name varchar(10) )
begin
-- 更新之前的数据
select e.ename , e.sal , d.dname from emp e , dept d where e.deptno = d.deptno and d.dname = dept_name order by e.sal ;
-- 更新操作
update emp set sal = sal * 1.2 where deptno = ( select deptno from dept where dname = dept_name );
-- 更新之后的数据
select e.ename , e.sal , d.dname from emp e , dept d where e.deptno = d.deptno and d.dname = dept_name order by e.sal ;
end $$
delimiter ;
四、变量赋值(全局)
-- 变量
drop procedure if exists hello world;
delimiter $$
create procedure hello world()
begin
declare name varchar(20) default '张飞';
declare sal1 int(20) default 0;
-- 查询name的值
select name ;
-- 查询出结果赋值给name,但不输出结果 赋值方法1
select ename ,sal into name , sal1 from emp where empno = 10005 ;
-- 查询name的值
select name , sal1 ;
-- 赋值方法2
set name = '李白';
-- 查询name的值
select name ;
end $$
call hello world();
drop procedure if exists hello world;
create procedure hello world()
begin
declare emp_name varchar(20) default '小豆'; -- 作用域
set emp_name = '小红' ; -- 给局部变量赋值为小红
set @name = '小白'; -- 全局变量
select emp_name , @name ;
end
call hello world();
select emp_name ;
select @name ;
drop procedure if exists hello world;
create procedure hello world()
begin
declare emp_name varchar(20) default '小豆'; -- 作用域
select emp_name , @name ;
end
set @name = '小白'; -- 全局变量
call hello world() ;
五、输出参数
-- 1输出参数
drop procedure if exists hello world;
create procedure hello world( out name varchar(20) )
begin
select name ;
select ename into name from emp where empno = 10001;
select name ;
end
set @name = '小白';
select @name ;
call hello world( @name );
select @name ;
-- 2示例
drop procedure if exists hello world;
create procedure hello world( out name varchar(20) )
begin
select name ;
set name = @name ;
select name ;
end
set @name = '小白';
call hello world( @name );
select @name;
drop procedure if exists hello world;
create procedure hello world( out name varchar(20) )
begin
set name= '小河' ;
end
set @name = '小韦' ;
call hello world( @name ) ;
select @name ;
-- 变量的生命周期,存在于数据开启时,一旦关闭或重启数据库,变量则失去
-- 输入输出参数
drop procedure if exists hello world;
delimiter $$
create procedure hello world( inout name varchar(20) )
begin
select name ;
set name = '小红';
end $$
delimiter ;
set @name = '小白'
call hello world( @name );
select @name ;
六、交换变量值(==)
-- 交换两个边量的值
drop procedure if exists hello world;
delimiter $$
create procedure hello world( )
begin
declare one int(10) default 11;
declare two int(10) default 99;
declare three int(10) default 0;
select one , two ; -- 交换之前
set three = one ;
set one = two ;
set two = three ;
select one , two ; -- 交换之后
end $$
call hello world(); --输出结果
---------------------元旦加班!!!快下班了,先这样,后续更新构造数据方法---------------------------
procedure存储数据的过程相关推荐
- mysql数据库存储数据的过程_[数据库]MySql存储过程总结
[数据库]MySql存储过程总结 0 2014-06-12 01:00:50 之前总是在MSSQL上写存储过程,没有在MYSQL上写过,也基本没有用过,今天需要用到MYSQL,研究了下,把项目的需要的 ...
- 数据存储方式_寻找要操作数据的存储地址的过程称为寻址,几种寻址的方式分享...
单片机工作时,在程序指令的控制下,对数据进行各种操作(如存取数据.对数据进行运算等),然后输出控制信号.指令要对数据进行操作,必须先找到操作的数据,数据存放在存储器中,只有找到要操作数据的存储地址,才 ...
- oracle表空间,角色,权限,表,索引,序列号,视图,同义词,约束条件,存储函数和过程,常用数据字典,基本数据字典信息,查看VGA信息,维护表空间,创建表空间等信息
查看当前用户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前用户的角色 SQL>select * fr ...
- Oracle数据库PL/SQL块-存储函数和过程
PL/SQL块 PL/SQL程序由三个块组成,即声明部分.执行部分.异常处理部分 结构如下: declare /*声明部分,在此声明变量,类型及游标*/begin /*执行部分,过程及sql语句, ...
- 2021年大数据HBase(十三):HBase读取和存储数据的流程
全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 HBase读取和存储数据的流程 一.HBase读取数据的流程 ...
- string生成固定长度的哈希_Redis 选择Hash还是String 存储数据?
点击上方"Java之间",选择"置顶或者星标" 你关注的就是我关心的! 作者:goodspeed 微信公众号:四月(ID:hiiiapril) 在stackov ...
- DTCC:数据库安全重点在数据拷贝过程中
本文讲的是DTCC:数据库安全重点在数据拷贝过程中,2017年5月11日-13日,2017中国数据库技术大会于北京国际会议中心盛大开幕.作为国内最受关注的数据库技术大会,本届大会以"数据驱动 ...
- 如何完美隐藏Disposable的存储和销毁过程(一)
如何完美隐藏Disposable的存储和销毁过程(一) –致敬我目前最喜欢的语言Kt 又到了写我最最喜欢的RxJava的时刻了,写点函数式的操作,很多时候都能让我莫名其妙地high的不行! 今天来讲讲 ...
- Hello程序的转换处理过程及程序执行时的数据流动过程
文章目录 1 Hello程序的转换处理过程 2 Hello程序执行时的数据流动过程 1 Hello程序的转换处理过程 经典的" hello.c "C-源程序: hello.c的AS ...
最新文章
- oracle列名无效字符,案例学习Oracle错误:ORA-00904 invalid column name
- 第十六届全国大学生智能汽车竞赛 讯飞智慧餐厅 全国总决赛竞赛规则
- UA MATH564 概率不等式 QE练习题
- yolo 负样本_目标检测介绍之YOLO与SSD
- Mysql升序排序对为空的排在最后面is null
- 卫星系统采用的轨道类型
- Redis(3-3):列表类型
- 【CF551D】GukiZ and Binary Operations
- 18.看板方法---精益的一种经济学模型
- 天津智慧路灯+“新基建”示范区建设启动、沪苏通长江公铁大桥
- 多元时间序列预测 —— 向量自回归(VAR)
- 教你简单制作视频滚动字幕
- 百度网站收录批量查询 介绍百度网站收录批量查询3种方式
- 鸟与虫(六)拉勾网,我可不可以找到工作
- uniapp 金额输入框
- android dialog遮挡键盘,彻底解决软键盘遮挡DialogFragment
- 面试题----单链表实现栈
- qq屏幕识图如何一次复制所有文字
- 太给力了!40000字整理了机器学习面试200题!
- [W pthreadpool-cpp.cc:90] Warning:Leaking Caffe2 thread-pool after fork.(function pthreadpool)
热门文章
- 黄帝内经.素问.热论篇(31)
- 【产业互联网周报】财报季:阿里云上半年营收245.6亿,市场份额连续四个季度增长,还将全面服务北京城市大脑建设...
- 记录idea整合git 创建分支 合并分支提交
- 汇编语言实验——大数相乘
- 【SAP】没有为会计年度0定义版本2021
- php冒泡排序代码及注释,php冒泡排序
- python urlopen error_python3 urllib.request.urlopen() 地址打开错误
- 上古神器--vim编辑器
- 数据链路设备,集线器、网桥、交换机总结
- vr全景看房是怎么做的?vr全景看房平台有哪些?