MySql存储过程与调用
存储过程
存储过程的作用:所谓的存储过程,就是一组用于完成特定数据库功能的SQL语句集,该SQL语句经过编译后存储在数据库系统中,在使用的时候,用户通过调用指定已经定义好的存储过程并执行它,从而完成一系列的数据库操纵
个人理解:这学期有30本书,你每次上学放学都用手捧着不方便,所以你买了个书包,把书全部放进书包里,等你想看语文书的时候,你就从书包里面"拿"出来,等一下,这里的"拿"就是存储过程的调用,而SQL语句集就等于书,这么说是不是好理解多了。
下一步:存储过程的创建和调用
语法:drop procedure if exists sss; 如果存储过程sss存在就删除
create procedure sss() 创建存储过程,并且给它起个名字叫sss
begin 开始
--声明变量(不是必要的)
--写sql语句
select * from student; 查询学生表
end;--结束
call sss(); 调用存储过程
练习的时候一定要认真反复的多敲几遍,这样才能记的牢固不会报错
什么是变量?
变量我们可以理解为一个存储空间的名称
变量声明的语法
declare 变量名 类型(长度)
变量名要求
1,只能是字母,数字,下划线
2,首字母必须是字母
3,长度不允许超过30
4,不允许使用关键字:name,or,select,and
语法:create procedure sss()
begin
declare jake varchar(20); //声明变量jake,定义数据类型,长度
set jake=''唐阿飞"; //将变量jake赋值为唐阿飞
select jake; //查询变量jake
end; //结束
call sss(); //调用存储过程
if分支语句
if(条件) then
sql或sql语句
【else if(条件) then】
可以有多个elseif
[else]
end if;
举列使用if.....else
drop procedure if exists test_d;
create procedure test_d;
declare book int(10); //定义变量book 类型为int,长度10;
set book = 600; //给变量book赋值=600;
if book>500 then //条件判断,如果变量book大于500 ,那么
select'我能月入过万'; //输出:我能月入过万
else if book>=200 then //否则如果book大于等于200,那么
select'我每月7000'; //输出:我每月7000
else //否则
select'月薪4500,包吃包住,电子厂打螺丝'; //输出:月薪4500,包吃包住住,电子厂打螺丝
end;
call test_d();
LOOP循环语句
loop循环中,我们需要自定义循环结束的条件,语法如下:
语法:loopName:loop
if 条件 THEN 满足条件时离开循环
leave loopName; //跳出循环
end if;
end loop;
举例子使用loop循环
drop procedure if exists test_e; //如果存储test_e存在则删除
create procedure test_e(); //创建test()
begin //开始
declare i int default 0; //定义一个变量i并且默认为空
loopName:loop //开始循坏,取名为loopName
select'世界你好'; //查询世界你好
set i=i+1; //i变量每次循环加1
if i >10 then //如果i大于10 那么
leave loopName; //跳出循环
end if; //结束判断
end loop; //结束循环
end; //结束
call test_e(); //调用存储test_e()
还可以利用循环批量插入数据:
如,批量插入100条数据
create procedure testq();
begin
declare a int default 0; //定义变量a 设置Int类型,默认为0
loopname:loop //开始循环,取名为loopName
insert into student(sname,sex,age)values("小红",'女',18");
set a = a+1; //设置变量a每次循环+1
if a>100 then //如果a>100 name
leave loopname; //跳出循环
end if; //结束条件判断
end loop; //结束循环
end; //结束
call testq(); //调用
select * from student; //查看数据是否成功插入student表内
查询出来的结果应是100条(小红,女,18);
MySql存储过程与调用相关推荐
- hibernate mysql 存储过程_hibernate调用mysql存储过程
hibernate调用mysql存储过程 在最近的项目中,碰到一小段数据库数据分析的程序,需要结合多张表联合查询或涉及到子查询,项目主要采用的java ee开发,使用了hibernate框架,由于这些 ...
- jsp实现mysql存储过程_JSP调用MySQL存储过程收藏
JSP调用MySQL存储过程收藏 1使用不带参数的存储过程 使用 JDBC 驱动程序调用不带参数的存储过程时,必须使用 call SQL 转义序列.不带参数的 call 转义序列的语法如下所示: {c ...
- mysql存储过程 php_PHP调用MYSQL存储过程实例
说一下 在PHP页面中调用MYSQL存储过程的方法 以下是几个例子 仅供参考 实例一:无参的存储过程 $conn = mysql_connect('localhost','root','root') ...
- go mysql存储过程_Golang 调用MySQL存储过程
Golang 调用MySQL存储过程 最近写项目发现,很多逻辑业务的实现,写到数据库的存储过程中,然后调用,真的非常方便.后端代码量大大减少,最重要的是性能高,速度快! 引用说明:项目使用数据库ORM ...
- hibernate4调用mysql存储过程_hibernate调用存储过程
一. 建表与初始化数据 在mysql的test数据库中建立一张新表:tbl_user,建表语句如下: DROP TABLE IF EXISTS `user`; CREATE TABLE `tbl_us ...
- sqlserver调用mysql存储过程_sqlserver调用存储过程
1使用不带参数的存储过程 使用 JDBC 驱动程序调用不带参数的存储过程时,必须使用 call SQL 转义序列.不带参数的 call 转义序列的语法如下所示: {call procedure-nam ...
- hql调用mysql存储过程_hibernate调用mysql存储过程
在mysql中创建两个存储过程,如下: 1.根据id查找某条数据: 1 CREATE PROCEDURE `findEmpById`(IN id INTEGER(11))2 begin3 s ...
- jfinal mysql存储过程_jfinal调用mysql存储过程
首先写一个内部类并实现ICallback接口: class CallbackTest implements ICallback { public String areaCodes;//传入参数 pub ...
- shell 调用mysql 存储过程_shell调用mysql的存储过程以及SQL
在华为的时候,还短暂接触和写过shell,调用oracle,后来转入java之后,比较少接触shell,一转眼回过头又要摸shell,去处理mysql,留一点笔记,以备后用. #!/bin/sh #t ...
最新文章
- 类脑芯片即将全球首发-打破冯诺依曼体系
- ASIA TODAY 英文版
- Python入门100题 | 第038题
- DCMTK:解压缩RLE压缩的DICOM文件
- SQL server 2000 和2005中怎么让ldf文档变小
- java 不能反序列化_不能将“Java.Lang.Studio”实例反序列化到StaskObl对象令牌中
- spring ldap_Spring 3,Spring Web Services 2和LDAP安全
- java中子类继承父类时是否继承构造函数
- 小米被指记录用户的 Web 和手机使用数据;传瑞幸咖啡CTO因个人原因辞职;IntelliJ IDEA 新版发布 | 极客头条...
- 有序序列的二分查找、冒泡排序、归并排序算法实战解析
- Atitit maven 编译与资源文件与web目录自定义配置 与eclipse的集成与war包打包 1.1. 配置webapp目录 plugin设置 webappDirectory	1 1.2.
- 罗技鼠标键盘没法使用,可以尝试安装此驱动
- Android 文字转语音之TextToSpeech
- 磨刀不误砍柴工——实验工具准备
- python正则表达式爬取链家租房信息
- Synopsys系列工具的基本概念
- Android P使用pm install安装apk报错
- 虚拟主播合成视频使用教程
- 【转】iOS Memory 内存详解
- 入坑就对了!如何用机器学习甄别真假美猴王?