MySQL函数与存储过程
一、函数,参考博客:https://www.cnblogs.com/progor/p/8871480.html
/*
函数:函数只会返回一个值,不允许返回一个结果集。函数强调返回值,所以不允许返回多个值的情况,即使是查询语句。多个入参之间使用逗号分隔。
注意事项:在函数中,如果查询的表中字段与参数名相同,需要给字段名前面加上别名,不然在识别的时候有问题,程序不会报错,但查询结果有问题。
*/
drop function if exists myf;
create function myf(region_code varchar(10)) returns int
begin
declare c int; -- 定义变量,需要将查询结果赋值给变量select xxx into c;
select pm10 from data_region_month t where t.region_code = region_code limit 1 into c;
return c;
end;
select myf('411025');
select myf(region_code) from data_region_month;
二、存储过程,参考博客:https://www.cnblogs.com/chushiyaoyue/p/5945974.html
/*
存储过程:共有三种参数类型,IN,OUT,INOUT
IN 输入参数: 表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值。
OUT 输出参数: 该值可在存储过程内部被改变,并可返回,是里面赋值才有数据。
INOUT 输入输出参数: 调用时指定,并且可被改变和返回。
在存储过程中,有可能会有多个结果产生,说明存储过程不是函数,如果是参数类型为out的这种,需要显示out结果的话,需要在存储过程执行完成后,select out_paramName来显示结果;
比如在存储过程中有多个select 查询语句,就会有多个结果集在存储过程执行后产生;
*/
-- 结束符修改,测试了一下,不用修改结束符也可以识别
delimiter //
drop procedure if exists proc1 //
create procedure proc1(out s int)
begin
select count(*) into s from data_region_month;
select distinct point_code,point_name from data_point_month;
select * from data_region_month;
end //
-- 改回默认结束符,测试了一下,不用修改结束符也可以识别,如果不修改的话,在上面一句的结束用分号结束
delimiter ; set @p_out=0;
set @p_out=1;
call proc1(@p_out);
select @p_out; -- 如果需要在存储过程中使用游标,可以参考:https://blog.csdn.net/zhaofuqiangmycomm/article/details/88651446
MySQL函数与存储过程的更多相关文章
- MySQL函数及存储过程
MySQL函数及存储过程 参考文章:https://www.cnblogs.com/wupeiqi/articles/5713323.html 1.函数 1.1内置函数 官方文档:https://de ...
- mysql(函数,存储过程,事务,索引)
函数 MySQL中提供了许多内置函数: 内置函数 一.数学函数 ROUND(x,y) 返回参数x的四舍五入的有y位小数的值 RAND() 返回0到1内的随机值,可以通过提供一个参数(种子)使RAND( ...
- mysql 函数和存储过程的区别
>一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强.存储过程,功能强大,可以执行包括修改表等一系列数据库操作:用户定义函数不能用于执行一组修改全局数据库状态的操作. > ...
- Mysql导出函数、存储过程
下面是导出存储过程的代码 1 # mysqldump -u 数据库用户名 -p -n -t -d -R 数据库名 > 文件名 其中,-d 表示--no-create-db, -n表示--no-d ...
- 存储过程/游标/mysql 函数
存储过程和函数(存储在 mysql数据库中的 proc表,所以检查有没有这个表)存储过程是一种存储程序(如正规语言里的子程序一样),mysql支持有两种:存储过程,在其他SQL语句中可以返回值的函数( ...
- mysql创建自定义函数与存储过程
mysql创建自定义函数与存储过程 一 创建自定义函数 在使用mysql的过程中,mysql自带的函数可能不能完成我们的业务需求,这时就需要自定义函数,例如笔者在开发过程中遇到下面这个问题 mysql ...
- [转]mysql 导入导出数据库以及函数、存储过程的介绍
本篇文章是对mysql中的导入导出数据库命令以及函数.存储过程进行了详细的分析介绍,需要的朋友参考下: mysql常用导出数据命令:1.mysql导出整个数据库 mysqldump -hhostna ...
- mysql中的函数与存储过程
mysql中的函数:1 mysql下创建函数: 1.1 语法: delimiter $$ -- 设置分隔符,默认是; 设置成其他符号,让编译器知道我们函数编写的结束,此处设置成$$ create fu ...
- MySQL自定义函数与存储过程
1.前置条件 MySQL数据库中存在表user_info,其结构和数据如下: mysql> desc user_info; +-----------+----------+------+---- ...
随机推荐
- gcc编译链接用到的环境变量
PATH ---- 可执行程序寻找路径 C_INCLUDE_PATH ---- 头文件寻找路径 CPLUS_INCLUDE_PATH --- g++ 头文件路径 LD_LIBRARY_PATH ...
- 动态导航栏和JavaScript箭头函数
动态导航栏和JavaScript箭头函数 今天我们来写一下动态的导航栏,并且学一下JavaScript的箭头函数等相关问题. 样式如下所示: html中执行代码如下所示: <!DOCTYPE h ...
- nginx学习首页随机模块
在default.conf下加入这行开启随机模块,在root目录下放入几种不同的html 改完保存下,使用命令检查nginx语法是否正确 nginx -tc /etc/nginx/nginx.conf ...
- sublime text3配置javascript运行环境
步骤一 安装node.js 官网下载链接:node.js 步骤二 Sublime 依次点击 菜单栏 Tools => Build System => New Build System 步骤 ...
- C#设计模式-桥接模式(Bridge Pattern)
引言 例如我有好几个项目,需要外包出去做各种类型的测试,不同的公司基础费用不同,不同的测试类型价格也是不同的.此时不同的项目选择不同的公司和不同类型的测试进行测试价格都是不同的.于是我们可以创建一个项 ...
- nameServer路由发现
RocketMQ路由发现是非实时的,当Topic路由出现变化时,NameServer不主动推动给客户端,而是客户端定时拉取主题最新的路由 总结: topic路由的是brokername
- Linux初学学习笔记 -----正则表达式和通配符
简单来说通配符是用来匹配文件名和目录而正则表达式是用来匹配文本内容的 常用的通配符 *:匹配任意多个字符 下面的是以p为开头的目录里面的文件 ?:匹配任意一个字符 [-]:匹配括号内出现的任意一个字符 ...
- Python爬虫入门(二)之Requests库
Python爬虫入门(二)之Requests库 我是照着小白教程做的,所以该篇是更小白教程hhhhhhhh 一.Requests库的简介 Requests 唯一的一个非转基因的 Python HTTP ...
- 杂篇-之裸眼3D渲染相机及画面矫正
主题公园类,或大型广场led屏幕,直角幕,三维影片如何制作,和最终画面如何矫正还原. 前两天,一朋友做的项目,大概就是一个柱状的led屏幕,可能是立在广场街角等处,如果这样子,那个柱状体的有颜色的两面 ...
- LeetCode 004 Median of Two Sorted Arrays
题目描述:Median of Two Sorted Arrays There are two sorted arrays A and B of size m and n respectively. F ...