博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql的过程和函数(记录)
阅读量:6245 次
发布时间:2019-06-22

本文共 1209 字,大约阅读时间需要 4 分钟。

hot3.png

1.MySQL存储过程
(1)格式
MySQL存储过程创建的格式:CREATE PROCEDURE 过程名 ([过程参数[,...]])
[特性 ...] 过程体
mysql> DELIMITER //  
mysql> CREATE PROCEDURE proc1(OUT s int)  
    -> BEGIN 
    -> SELECT COUNT(*) INTO s FROM user;  
    -> END 
    -> //  
mysql> DELIMITER ;
注:
(1)这里需要注意的是DELIMITER //和DELIMITER ;两句,DELIMITER是分割符的意思,因为MySQL默认以";"为分隔符,如果我们没有声明分割符,那么编译器会把存储过程当成SQL语句进行处理,则存储过程的编译过程会报错,所以要事先用DELIMITER关键字申明当前段分隔符,这样MySQL才会将";"当做存储过程中的代码,不会执行这些代码,用完了之后要把分隔符还原。
(2)存储过程根据需要可能会有输入、输出、输入输出参数,这里有一个输出参数s,类型是int型,如果有多个参数用","分割开。
(3)过程体的开始与结束使用BEGIN与END进行标识。
(2)参数
MySQL存储过程的参数用在存储过程的定义,共有三种参数类型,IN,OUT,INOUT,形式如:
CREATE PROCEDURE([[IN |OUT |INOUT ] 参数名 数据类形...])
IN 输入参数:表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值
OUT 输出参数:该值可在存储过程内部被改变,并可返回
INOUT 输入输出参数:调用时指定,并且可被改变和返回
2.MySQL函数
用于返回特定的数据,当建立函数时,在函数头部必须包含return子句,而在函数体内必须包含return语句返回的数据
使用create function来建立函数
(1)格式
create function 函数名([过程参数[,...]])  RETURNS type  
函数体
mysql> DELIMITER //  
mysql> CREATE function  func1(s int) RETURNS int
    -> BEGIN 
    -> SELECT COUNT(*) INTO s FROM user;  
    -> return(1);
    -> END 
    -> //  
mysql> DELIMITER ;
三点与存储过程不同的地方: 
a,必须要一个RETURNS语句来定义返回值类型 
b,不能指定参数的IN、OUT或INOUT修饰符,所有参数隐式的为IN 
c,Function体必须包含RETURN语句来终结Function执行并返回指定的结果给调用者 

转载于:https://my.oschina.net/OutOfMemory/blog/155466

你可能感兴趣的文章
阿里巴巴Dubbo实现的源码分析
查看>>
exe4j,
查看>>
Mysql查看执行计划
查看>>
SCDPM 2010系列之一——安装
查看>>
cocos2dx学习
查看>>
http加密访问应用
查看>>
vlayout
查看>>
必读 | 什么时候开始准备2019年下半年的考试?
查看>>
JDK安装说明
查看>>
iftop-流量监控安装(脚本)
查看>>
Windows Server2008通过命令行方式添加防火墙规则
查看>>
我的友情链接
查看>>
2013年十大IT趋势预测
查看>>
用PySpider搜集2017年高校招生章程
查看>>
centos知识点巩固
查看>>
如何用scapy针对无线网络
查看>>
使用BeanNameAutoProxyCreator实现方法日志代理
查看>>
我的友情链接
查看>>
javascript变量的作用域
查看>>
CakePHP 2.x CookBook 中文版 第七章 模型 之 保存数据(二)
查看>>