mysql存储过程分析
mysql 5.7 存储过程的定义
最近做统计报表,一个数据展示,需要查询mysql,但是如果使用left join 这种语句发现太麻烦了
还是写存储过程吧
之前发过几篇文章编写存储过程,但是真的运行起来发现有各种各样的问题
所以今天也算是巩固也算是对新的坑的一个填补
相关文章:https://blog.csdn.net/datouniao1/article/details/79315198
存储过程结构定义
这样写对吗:
DROP PROCEDURE IF EXISTS PR_SLV;
CREATE PROCEDURE PR_SLV()
BEGINDECLARE myday varchar(32);
END;
一个最为简单的,我们运行查看:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
这样的一个错误,我检查我的语句发现没有问题啊
第三行,定义一个变量,怎么会出现问题
原因我们定义的时候需要告诉mysql 上面执行的语句是一体的 是一个存储过程
怎么告诉mysql
DROP PROCEDURE IF EXISTS PR_SLV;
delimiter //
CREATE PROCEDURE PR_SLV()
BEGINDECLARE myday varchar(32);
END;
//
加上上面红色框中的内网,就可以告诉mysql 我要定义一个存储过程了,这个里面的代码是一体的,你不要分开执行啊
我们再执行试一下
mysql中的三目运算
java写多了,我们中认为三目运算时这样的 :1==2?"":3
mysql 中的三目运算时这样的
IF(expr1,expr2,expr3)
expr1 是 表达式 如果为true 取值expr2 如果为false 或者为NULL 取值为 expr3
例如:
INSERT INTO hx_bigdata_pie(pname,pvalue,porder,ptype,addtime,ptaxno) values(right(myday,5),IF(myjshj,myjshj,'0'),IF(myhjse,myhjse,'0'),'lastten',CURDATE(),ptaxno);
mysql 中字符串截取
right(str,length) left(str,length)
right 从右边开始 取出长度为length的字符串
left 从左边开始 取出长度为length的字符串
MYsql当前日期
CURDATE()
日期减:Date_sub(CURDATE(),INTERVAL id DAY)
最终存储过程如下:
DROP PROCEDURE IF EXISTS PR_MULTI;
delimiter //
CREATE PROCEDURE PR_MULTI(ptaxno VARCHAR(50))
BEGINDECLARE myday varchar(32); DECLARE myjshj varchar(32); DECLARE myhjse varchar(32); DECLARE myse varchar(32); DECLARE done INT DEFAULT FALSE;DECLARE myCursor CURSOR FOR (select Date_sub(CURDATE(),INTERVAL id DAY) as dates from hx_row limit 7);DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1; delete from hx_bigdata_pie where ptype='lastten';OPEN myCursor; myLoop: LOOP FETCH myCursor into myday;IF done=1 THENLEAVE myLoop; -- 结束循环 END IF;select sum(jshj) into myjshj from hx_main where DATE_FORMAT(kpdate,'%Y-%m-%d')=myday and xsh_taxno=ptaxno;select sum(hjse) into myhjse from hx_main where DATE_FORMAT(kpdate,'%Y-%m-%d')=myday and xsh_taxno=ptaxno;INSERT INTO hx_bigdata_pie(pname,pvalue,porder,ptype,addtime,ptaxno) values(right(myday,5),IF(myjshj,myjshj,'0'),IF(myhjse,myhjse,'0'),'lastten',CURDATE(),ptaxno);END LOOP myLoop; -- 结束自定义循环体 CLOSE myCursor;select * from hx_bigdata_pie where ptype='lastten' order by id desc limit 7;
END;
//
总结: 上面是对存储过程的应该注意的点,以及新了解到的知识的一个记录
希望对你有所帮助
mysql存储过程分析相关推荐
- mysql声明存储过程_MySQL 声明变量及存储过程分析
声明变量 设置全局变量 set @a='一个新变量'; 在函数和储存过程中使用的变量declear declear a int unsigned default 1; 这种变量需要设置变量类型 而且只 ...
- 浅谈MySQL存储引擎-InnoDBMyISAM
浅谈MySQL存储引擎-InnoDB&MyISAM 存储引擎在MySQL的逻辑架构中位于第三层,负责MySQL中的数据的存储和提取.MySQL存储引擎有很多,不同的存储引擎保存数据和索引的方式 ...
- mysql配置文件没有spring_spring cloud config使用mysql存储配置文件
spring cloud config使用mysql存储配置文件 1.结构图 2.pom.xml: 4.0.0 com.didispace config-server-db 1.0.0 jar con ...
- mysql存储引擎静态表_MySQL存储引擎(表类型)的选择
一.MySQL存储引擎概述 MySQL与多数数据库不同的是包含存储引擎这一特性,用户可以根据应用的需要选择合适的存储引擎来使存储和索引数据,以及是否使用事务等.MySQL5.0支持的存储引擎包括MyI ...
- MySQL存储写入速度慢分析
问题背景描述:在MySQL中执行SQL语句,比如insert,贼慢,明明可能也就只是一行数据的插入,数据量很小,但是耗费的时间却很多,为什么? 一.存储结构分析 MySQL存储结构图: 解析: 1.读 ...
- mysql 存储中文问题
mysql中的存储中文的问题解决方法 前些时候的做过一个实训是关于mvc的一个网站,其中遇到了很多问题因为时间的原因,把这些问题给省略掉了,最近又碰到了这些问题,这次无论怎样都要把问题解决掉一个是my ...
- mysql 存储引擎 面试_搞定PHP面试 - MySQL基础知识点整理 - 存储引擎
MySQL基础知识点整理 - 存储引擎 0. 查看 MySQL 支持的存储引擎 可以在 mysql 客户端中,使用 show engines; 命令可以查看MySQL支持的引擎: mysql> ...
- mysql存储base64位用什么类型_了解什么是存储引擎引发的MySQL面试3连问
引言 1.什么是存储引擎? 2.你设计表时使用什么存储引擎? 3.不同存储引擎分别适用于哪些场景? (0)什么是存储引擎? 在数据库中存的就是一张张有着千丝万缕关系的表,所以表设计的好坏,将直接影响着 ...
- 【超简单】MySQL存储引擎的选择与配置
[超简单]MySQL存储引擎的选择与配置 存储引擎简介 MySQL中的数据用各种不同的技术存储在文件(或内存)中.每一种技术都使用不同的存储机构,索引技巧,锁定水平并且最终提供广泛的不同的功能和能力. ...
最新文章
- C# HttpHelper帮助类,真正的Httprequest请求时无视编码,无视证书,无视Cookie,网页抓取...
- ML之FE:对爬取的某平台二手房数据进行数据分析以及特征工程处理
- 如何在Linux下统计高速网络中的流量
- 冰豹lua驱动设置_通过编写“猜数字”游戏学习 Lua | Linux 中国
- html div box,html – 为转换后的div添加box-shadow
- Redis学习之单机数据库(二)
- GitHub上值得收藏的100个精选前端项目!
- 设计一个处理两种类型地址的地址簿程序_短信平台的API接口都有哪些类型?
- Jquery框架核心部分例子 .
- Net设计模式实例之建造者模式(Builder Pattern)(1)
- 保密工作中非密计算机工具检查,【保密知识】别在保密工作面前耍“小聪明”哦~...
- android程序无法安装,安卓手机安装不了软件怎么办 手机无法安装软件原因和方法...
- 常用字典代码推荐标准
- Web UI设计基础
- 阿里云云计算工程师(ACP)认证证书及考试须知
- MySQL获取汉字的拼音首字母并过滤字母符号数字
- 常毅 华为计算机,华为路由器交换机配置.docx
- 【小知识】TVS瞬态抑制二极管与齐纳二极管(稳压管)的差异点分析
- golang封装mysql涉及到的包以及sqlx和gorm的区别
- InnoDB 存储引擎详细解析