存储过程

存储过程的作用:所谓的存储过程,就是一组用于完成特定数据库功能的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存储过程与调用相关推荐

  1. hibernate mysql 存储过程_hibernate调用mysql存储过程

    hibernate调用mysql存储过程 在最近的项目中,碰到一小段数据库数据分析的程序,需要结合多张表联合查询或涉及到子查询,项目主要采用的java ee开发,使用了hibernate框架,由于这些 ...

  2. jsp实现mysql存储过程_JSP调用MySQL存储过程收藏

    JSP调用MySQL存储过程收藏 1使用不带参数的存储过程 使用 JDBC 驱动程序调用不带参数的存储过程时,必须使用 call SQL 转义序列.不带参数的 call 转义序列的语法如下所示: {c ...

  3. mysql存储过程 php_PHP调用MYSQL存储过程实例

    说一下 在PHP页面中调用MYSQL存储过程的方法 以下是几个例子 仅供参考 实例一:无参的存储过程 $conn = mysql_connect('localhost','root','root') ...

  4. go mysql存储过程_Golang 调用MySQL存储过程

    Golang 调用MySQL存储过程 最近写项目发现,很多逻辑业务的实现,写到数据库的存储过程中,然后调用,真的非常方便.后端代码量大大减少,最重要的是性能高,速度快! 引用说明:项目使用数据库ORM ...

  5. hibernate4调用mysql存储过程_hibernate调用存储过程

    一. 建表与初始化数据 在mysql的test数据库中建立一张新表:tbl_user,建表语句如下: DROP TABLE IF EXISTS `user`; CREATE TABLE `tbl_us ...

  6. sqlserver调用mysql存储过程_sqlserver调用存储过程

    1使用不带参数的存储过程 使用 JDBC 驱动程序调用不带参数的存储过程时,必须使用 call SQL 转义序列.不带参数的 call 转义序列的语法如下所示: {call procedure-nam ...

  7. hql调用mysql存储过程_hibernate调用mysql存储过程

    在mysql中创建两个存储过程,如下: 1.根据id查找某条数据: 1 CREATE PROCEDURE `findEmpById`(IN id INTEGER(11))2 begin3      s ...

  8. jfinal mysql存储过程_jfinal调用mysql存储过程

    首先写一个内部类并实现ICallback接口: class CallbackTest implements ICallback { public String areaCodes;//传入参数 pub ...

  9. shell 调用mysql 存储过程_shell调用mysql的存储过程以及SQL

    在华为的时候,还短暂接触和写过shell,调用oracle,后来转入java之后,比较少接触shell,一转眼回过头又要摸shell,去处理mysql,留一点笔记,以备后用. #!/bin/sh #t ...

最新文章

  1. 类脑芯片即将全球首发-打破冯诺依曼体系
  2. ASIA TODAY 英文版
  3. Python入门100题 | 第038题
  4. DCMTK:解压缩RLE压缩的DICOM文件
  5. SQL server 2000 和2005中怎么让ldf文档变小
  6. java 不能反序列化_不能将“Java.Lang.Studio”实例反序列化到StaskObl对象令牌中
  7. spring ldap_Spring 3,Spring Web Services 2和LDAP安全
  8. java中子类继承父类时是否继承构造函数
  9. 小米被指记录用户的 Web 和手机使用数据;传瑞幸咖啡CTO因个人原因辞职;IntelliJ IDEA 新版发布 | 极客头条...
  10. 有序序列的二分查找、冒泡排序、归并排序算法实战解析
  11. Atitit maven 编译与资源文件与web目录自定义配置 与eclipse的集成与war包打包 1.1. 配置webapp目录 plugin设置 webappDirectory 1 1.2.
  12. 罗技鼠标键盘没法使用,可以尝试安装此驱动
  13. Android 文字转语音之TextToSpeech
  14. 磨刀不误砍柴工——实验工具准备
  15. python正则表达式爬取链家租房信息
  16. Synopsys系列工具的基本概念
  17. Android P使用pm install安装apk报错
  18. 虚拟主播合成视频使用教程
  19. 【转】iOS Memory 内存详解
  20. 入坑就对了!如何用机器学习甄别真假美猴王?

热门文章

  1. echart象形图中的上方图片路径问题
  2. python环境搭载_Python环境搭载那些事
  3. js引用jquery
  4. 苏州智能电网产业园建筑能耗监测系统的应用
  5. 开尔文四线法与电桥(uΩ电阻测试)
  6. NGB——下一代广播电视网 和统一通信
  7. linux系统中好用的网络测速工具有哪些?
  8. Jx的OnePiece:Python环境百科全书
  9. 给河马刷牙(龙应台)
  10. word转03版本公式变成图片_docx转doc时,防止公式被转成图片的解决办法