MySql 存储过程笔记

存储过程

存储过程简称过程,procedure,是一种没有返回值的函数

创建过程:

Create procedure 过程名字([参数列表])

Begin

过程体

End

查看过程

函数的查看方式完全适用于过程:关键字换成procedure

Show procedure status [like ‘’];

查看创建语句

Show create procedure pro1;

调用过程(过程没有返回值,select不能访问)

过程有一个专门的调用关键字:call

Call pro1();

修改过程&删除过程

过程是不能修改的,只能先删除后新增

Drop procedure 过程名

过程的参数问题

过程参数

函数的参数需要数据类型指定,过程比函数更严格

过程有自己的类型限定

In : 数据只是从外部传入给内部使用(值传递),可以是数值,也可以是变量

Out : 只允许过程内部使用(不用外部数据),给外部使用(引用传递:外部的数据先清空,才会进入到内部):(言外之意)只能是变量。

Inout : 外部的可以在内部使用,内部修改亦可以给外部使用,只能是变量

使用语法:

Create procedure 过程名(in 形参名字 数据类型,out 形参名字数据 类型,inout形参名字数据 类型)

调用:out 和 inout 传入必须是变量,不能是数值

必须传入变量

-- 设置变量

set @int_1 := 1;

set @int_2 := 2;

set @int_3 := 3;

select @int_1,@int_2,@int_3;

call pro1(@int_1,@int_2,@int_3);

select @int_1,@int_2,@int_3;

存储过程对用变量的操作(返回)是滞后的,是在存储过程结束的时候把内部的修改的值赋值给外部传入的全局变量。

测试

传入数据:1,2,3

-- 设置变量

set @int_1 := 1;

set @int_2 := 2;

set @int_3 := 3;

call pro2(@int_1,@int_2,@int_3);

1.   说明了局部变量和全局变量无关

2.   在存储过程调用结束之后,系统把局部变量赋值给全局变量(只限out 和 inout两种类型)

写了这么多,其实没什么用,主要解决了存储过程没有返回值的问题。做到了把内部的结果返回给外部使用

时间: 2024-07-30 10:10:39

MySql 存储过程笔记的相关文章

mysql存储过程笔记

mysql  存储过程: 用变量做表名: 简单的用set或者declare语句定义变量,然后直接作为sql的表名是不行的,mysql会把变量名当作表名.在其他的sql数据库中也是如此,mysql的解决方法是将整条sql语句作为变量,其中穿插变量作为表名,然后用sp_executesql调用该语句. 这在mysql5.0之前是不行的,5.0之后引入了一个全新的语句,可以达到类似sp_executesql的功能(仅对procedure有效,function不支持动态查询),比如在用游标循环遍历多个表

MYSQL存储过程和函数学习笔记

学至Tarena金牌讲师何山,金色晨曦科技公司技术总监沙利穆课程笔记的综合. 1. 什么是存储过程和函数 将SQL语句放入一个集合里,然后直接调用存储过程和函数来执行已经定义好的SQL语句,通过存储过程和函数,可以避免开发人员重复编写相同的SQL语句. MYSQL存储过程和函数是保存在服务器中,在服务器中存储和执行,可以减少客户端和服务器端之间数据传输的消耗. 存储过程就是一组已经保存在数据库中的语句,并且可以随时地调用. 存储过程允许标准组件式编程,存储过程在被创建以后可以在程序中被多次调用而

Mysql学习笔记(十)存储过程与函数 + 知识点补充(having与where的区别)

学习内容:存储程序与函数...这一章学的我是云里雾里的... 1.存储过程...   Mysql存储过程是从mysql 5.0开始增加的一个新功能.存储过程的优点其实有很多,不过我觉得存储过程最重要的优点就是实现了SQL代码的封装,那么我们为什么需要封装SQL语句呢?原因就是当我们在面对一个庞大的数据库的时候,当我们使用外部程序去访问数据库的时候...我们总不能在外部程序中内嵌很多的SQL语句吧...那样执行的效率不高,并且也不容易维护...因此存储过程将我们的操作进行封装,当我们需要对其进行操

sql学习笔记(16)----------mysql存储过程详解

mysql存储过程详解 1.     存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 一个存储过程是一个可编程的函数,它在数据库中创建并保存.它可以有SQL语句和一些特殊的控制结构组成.当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的.

mysql存储过程学习笔记

1.      存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 一个存储过程是一个可编程的函数,它在数据库中创建并保存.它可以有SQL语句和一些特殊的控制结构组成.当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的.数据库中的存储过程可以看做

mysql存储过程入门与提高(第三篇)

由于一些不好说的原因,以后博客内容大多只会发笔记的截图.此博客只发在my.oschina.net上,请勿作任何商业用途!! mysql存储过程:是指在数据库中定义一组sql语句组合在一起,并当作一个整体存储在mysql服务器中. 和存储函数的最主要的区别是对于存储过程来说可以返回参数,如记录集,而函数只能返回值或者表对象.函数只能返回一个变量:而存储过程可以返回多个.my.oschina.net讲存储函数的时候会把储存过程和存储函数的区别列出来.my.oschina.net 基本形式: CREA

MYSQL 存储过程学习

MYSQL 存储过程学习笔记 MySQL 5.0终于开始已经支持存储过程,这样即可以大大提高数据库的处理速度,同时也可以提高数据库编程的灵活性. 存储过程的优点: ①重复使用.存储过程可以重复使用,从而可以减少数据库开发人员的工作量. ②提高性能.存储过程在创建的时候在进行了编译,将来使用的时候不再重新翻译.一般的SQL语句每执行一次就需要编译一次,所以使用存储过程提高了效率. ③减少网络流量.存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量.

mysql存储过程入门与提高(第一篇)

以前在网上看到歪国人专门写了本mysql存储过程,感觉很强大啊.刚好最近新项目上优化要用到存储过程,我就把之前的学习笔记整理了一下.最近太忙啊!!! MySQL stored programs包括存储过程,函数,触发器. 先来看一下官方的定义. Stored procedures 存储过程Stored procedures are the most common type of stored program. A stored proce-dure is a generic program un

Mysql学习笔记(十一)临时表+视图

原文:Mysql学习笔记(十一)临时表+视图 学习内容: 临时表和视图的基本操作... 临时表与视图的使用范围... 1.临时表   临时表:临时表,想必大家都知道这个概念的存在...但是我们什么时候应该使用到临时表呢?当一个数据库存在着大量的数据的时候,我们想要获取到这个数据集合的一个子集,那么我们就可以使用临时表来保存我们想要的数据..然后对临时表进行操作就可以了...使用临时表必然是有原因的..使用临时表会加快数据库的查询性能.... create temporary table tmp_