存储过程和函数(九)

存储过程

含义:一组经过预先编译的sql语句的集合
好处:

1、提高重用性
2、sql语句简单
3、减少了和数据库服务器连接的次数,提高了效率

分类:

1、无返回无参
2、仅仅带in类型,无返回有参
3、仅仅带out类型,有返回无参
4、既带in又带out,有返回有参
5、带inout,有返回有参
注意:in、out、inout都可以在一个存储过程中带多个

创建

语法:

create procedure 存储过程名(in|out|inout 参数名  参数类型,...)
begin
    存储过程体
end

注意

1.参数模式:in、out、inout,其中in可以省略
2.存储过程体的每一条sql语句都需要用分号结尾

1、需要设置新的结束标记
    delimiter 新的结束标记
示例:
delimiter $

CREATE PROCEDURE 存储过程名(IN|OUT|INOUT 参数名  参数类型,...)
BEGIN
    sql语句1;
    sql语句2;

END $

2、存储过程体中可以有多条sql语句,如果仅仅一条sql语句,则可以省略begin end

3、参数前面的符号的意思
in:该参数只能作为输入 (该参数不能做返回值)
out:该参数只能作为输出(该参数只能做返回值)
inout:既能做输入又能做输出

调用

call 存储过程名(实参列表)

举例:
调用in模式的参数:call sp1(‘值’);
调用out模式的参数:set @name; call sp1(@name);select @name;
调用inout模式的参数:set @name=值; call sp1(@name); select @name;

查看

show create procedure 存储过程名;

删除

drop procedure 存储过程名;

函数

创建

学过的函数:LENGTH、SUBSTR、CONCAT等
语法:

CREATE FUNCTION 函数名(参数名 参数类型,...) RETURNS 返回类型
BEGIN
    函数体

END

调用

select 函数名(实参列表);

查看

show create function 函数名;

删除

drop function 函数名;

函数和存储过程的区别

关键字 调用语法 返回值 应用场景
函数 FUNCTION SELECT 函数() 只能是一个 一般用于查询结果为一个值并返回时,当有返回值而且仅仅一个
存储过程 PROCEDURE CALL 存储过程() 可以有0个或多个 一般用于更新

原文地址:https://www.cnblogs.com/akiz/p/11179094.html

时间: 2024-10-16 21:07:25

存储过程和函数(九)的相关文章

九、MySQL存储过程和函数

存储过程就是一条或者多条SQL语句的集合,可视为批文件,但是其作用不仅限于批处理. 9.1.创建存储过程和函数 存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别是CREATE PROCEDURE和CREATE FUNCTION.使用CALL语句来调用存储过程,只能用输出变量返回值.函数可以从语句外调用( 即通过引用函数名),也能返回标量值.存储过程也能调用其他存储过程. 创建存储过程 创建存储过程,需要使用CREATE PROCEDURE语句,基本语法为: CREAT

我的MYSQL学习心得(十) 自定义存储过程和函数

我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(七) 查询 我的MYSQL学习心得(八) 插入 更新 删除 我的MYSQL学习心得(九) 索引 我的MYSQL学习心得(十一) 视图 我的MYSQL学习心得(十二) 触发器 我的MYSQL学习心得(十三) 权限管理 我的MYSQL学习

2017-9-18视图,触发器,事物,存储过程,函数

视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便,因此并不推荐使用 #准备表 #学生表 create t

用sql语句导出oracle中的存储过程和函数

用sql语句导出oracle中的存储过程和函数: SET echo off ; SET heading off ; SET feedback off ; SPOOL 'C:/PRC.SQL' replace SELECT CASE WHEN LINE = 1 THEN 'CREATE OR REPLACE ' || TEXT WHEN LINE = MAX_LINE THEN TEXT || CHR(10 ) || '/' ELSE TEXT END FROM USER_SOURCE A LEF

mysql--补充(视图,触发器,事务,存储过程,函数)

一:视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便,因此并不推荐使用 1.1 创建视图 #语法:CRE

MySQL存储过程和函数

存储过程和函数的区别 存储过程可以返回多个值,而函数可以返回一个 函数可以嵌入到sql中使用,可以使用select调用:而存储过程不可以 本质差不多 创建存储过程和函数 CREATE PROCEDURE/CREATE FUNCTION 举例子之前,补充SQL中delimiter的用法,delimiter命令用于改变解释器的结束符.例如在定义函数过程中,在函数体内可能出现SQL默认的";"结束符,一旦输入,解释器就开始执行,但是很显然有时候其时并没有定义结束,所以定义函数或者过程之前一般

SQL存储过程和函数

SQL存储过程: 由来:在具体应用中,一个完整的操作会包含多条SQL语句,在执行过程中需要根据前面SQL语句的执行结果有选择的执行后面的SQL语句.因此,mysql提供了数据库对象存储过程和函数. 定义:存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令.和函数的区别在于,函数有返回值,存储过程没有. 优点: 1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度.2.当对数据库进行复杂操作时,

mysql事务、触发器、视图、存储过程、函数

存储过程: procedure 概念类似于函数,就是把一段代码封装起来, 当要执行这一段代码的时候,可以通过调用该存储过程来实现. 在封装的语句体里面,可以用if/else, case,while等控制结构. 可以进行sql编程. 查看现有的存储过程: Show procedure status 删除存储过程 Drop procedure 存储过程的名字 调用存储过程 Call 存储过程名字(); 第1个存储过程 ,体会"封装sql" 第2个存储过程, 体会"参数"

第十一章 存储过程和函数

第一节:存储过程和函数的引入 存储过程和函数是在数据库中定义一些 SQL 语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的 SQL 语句. 存储过程和函数可以避免开发人员重复的编写相同的 SQL 语句. 而且, 存储过程和函数是在 MySQL服务器中存储和执行的,可以减少客户端和服务器端的数据传输: 第二节:创建存储过程和函数 2.1 创建存储过程 CREATE PROCEDURE sp_name([proc_parameter[,...]])[characteristic...]