首页 技术 正文
技术 2022年11月18日
0 收藏 300 点赞 3,933 浏览 945 个字

存储过程:其实就是存储在数据库中,有一些逻辑语句与SQL语句组成的函数。由于是已经编译好的语句,所以执行速度快,而且也安全。

打开mysql的控制台,开始编写存储过程。

实例1:

编写存储过程:

mysql编写存储过程(1)

执行存储过程:

mysql编写存储过程(1)

查看执行结果:

mysql编写存储过程(1)

语句解释:

1、delimiter //  ,声明分隔符:DELIMITER是分割符的意思,因为MySQL默认以”;”为分隔符,如果我们没有声明分割符,那么编译器会把存储过程当成SQL语句进行处理,则存储过程的编译过程会报错,所以要事先用DELIMITER关键字申明当前段分隔符,这样MySQL才会将”;”当做存储过程中的代码,不会执行这些代码(这里如果不懂的话,你可以通过试错的方法来理解)。

2、编写存储过程的格式:CREATE PROCEDURE([[IN |OUT |INOUT ] 参数名 数据类形…])

例子:

  1)create procedure proc1(out s int)  // 只有输出

  2)create procedure proc2(in p_in bigint)  // 只有输入

  3)create procedure proc15() // 没有输入与输出

  4)create procedure demo_multi_param(in id bigint,in name varchar(32),out c int) //多输入与输出

3、过程体的开始与结束使用BEGIN与END进行标识。

4、select count (*) into s from student; // 过程体,一系列的逻辑语句,sql语句

5、delimiter ; 用完了之后要把分隔符还原。

实例2:

mysql编写存储过程(1)

实例3、

mysql编写存储过程(1)

mysql编写存储过程(1)

结论:输出参数在过程中改变了,会得到保存。但是如果@p_out有预设的值,执行存储过程也不会认预设值,可以从第一个输出为null看出。

实例4、

mysql编写存储过程(1)

注意:p_in虽然在存储过程中被修改,但并不影响@p_id的值,执行完语句之后,再执行@select @p_in。

实例5、

mysql编写存储过程(1)

结论:如果输入输出参数,那么在存储过程中,即会认输入的,如果在存储过程中改变了,那么输出也会认。

实例6:

mysql编写存储过程(1)

这个是一个多个输入,一个输出的例子。

实例7:

mysql编写存储过程(1)

说明:begin…end 之间是内部变量的作用域,一旦超过这个作用域,其内部声明的变量就结束了,就会变成外部作用域的变量。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,082
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,557
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,406
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,179
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,815
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,898