`
无量
  • 浏览: 1133761 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

mysql存储过程基本知识点

阅读更多
--存储过程名和参数,参数中in表示传入参数,out标示传出参数,inout表示传入传出参数

create procedure p_procedurecode(in sumdate varchar(10))   
begin
     declare v_sql varchar(500);    --需要执行的SQL语句
     declare sym varchar(6);
     
     declare var1 varchar(20);
     declare var2 varchar(70);
     declare var3 integer;

     --定义游标遍历时,作为判断是否遍历完全部记录的标记
     declare no_more_departments integer DEFAULT 0;     

     --定义游标名字为C_RESULT 
     DECLARE C_RESULT CURSOR FOR
             SELECT barcode,barname,barnum FROM tmp_table;

    --声明当游标遍历完全部记录后将标志变量置成某个值
     DECLARE CONTINUE HANDLER FOR NOT FOUND
             SET no_more_departments=1;

     set sym=substring(sumdate,1,6);     --截取字符串,并将其赋值给一个遍历

     --连接字符串构成完整SQL语句,动态SQL执行后的结果记录集,在MySQL中无法获取,因此需要转变思路将其放置到一个临时表中(注意代码中的写法)。一般写法如下:

     --     'Create TEMPORARY Table   表名(Select的查询语句);
     set v_sql= concat('Create TEMPORARY Table tmp_table(select aa as aacode,bb as aaname,count(cc) as ccnum from h',sym,' where substring(dd,1,8)=''',sumdate,''' group by aa,bb)');

     set @v_sql=v_sql;   --注意很重要,将连成成的字符串赋值给一个变量(可以之前没有定义,但要以@开头)
     prepare stmt from @v_sql;  --预处理需要执行的动态SQL,其中stmt是一个变量
     EXECUTE stmt;      --执行SQL语句
     deallocate prepare stmt;     --释放掉预处理段

     OPEN C_RESULT;       --打开之前定义的游标
     REPEAT                      --循环语句的关键词
           FETCH C_RESULT INTO VAR1, VAR2, VAR3;   --取出每条记录并赋值给相关变量,注意顺序

          --执行查询语句,并将获得的值付给一个变量 @oldaacode(注意如果以@开头的变量可以不用通过declare语句事先声明)
           select @oldaacode:=vcaaCode from T_sum where vcaaCode=var1 and dtDate=sumdate; 
           if @oldaacode=var1 then    --判断
              update T_sum set iNum=var3 where vcaaCode=var1 and dtDate=sumdate;
           else
               insert into T_sum(vcaaCode,vcaaName,iNum,dtDate) values(var1,var2,var3,sumdate);
           end if;
     UNTIL no_more_departments  END REPEAT;    --循环语句结束
     CLOSE C_RESULT;                            --关闭游标

     DROP TEMPORARY TABLE tmp_table;       --删除临时表
end;
分享到:
评论

相关推荐

    mysql存储函数以及函数过程

    mysql+零基础+mysql存储函数以及函数过程知识点

    MySQL面试题涵盖了数据库设计、存储过程和触发器、数据库复制和集群等方面的知识点,测试了面试者的MySQL数据库基础知识、问题

    这些MySQL面试题涵盖了数据库设计、存储过程和触发器、数据库复制和集群等方面的知识点,测试了面试者的MySQL数据库基础知识、问题解决能力和实际应用能力。 通过回答这些问题,面试者可以展现自己熟练掌握MySQL...

    MYSQL存储过程即常用逻辑知识点总结

    Mysql存储过程 1.创建存储过程语法(格式) DELIMITER $ CREATE PROCEDURE 存储过程名A(IN 传入参数名a INT,IN 传入参数名b VARCHAR(20),OUT 返回参数名c INT) BEGIN  内容.......... END $ 解析: IN 代表...

    mysql存储过程快速了解

    整篇文章为个人学习心得,之后会持续发表mysql高级进阶,javaweb框架等知识点文章,制作不易,加个关注 存储过程 优点: 提高开发效率,提高应用程序的性能,简化程序开发人员的操作,减少应用程序和是数据库服务器...

    MySql存储过程之逻辑判断和条件控制

    具体详情请看下文小编给大家带来的知识点。 同编写程序类似,存储过程中也有对应的条件判断,功能类似于if、switch。在MySql里面对应的是IF和CASE 1、IF判断 IF判断的格式是这样的: IF expression THEN commands ...

    数据库原理及应用MySQL-触发器部分的知识点整理

    数据库原理及应用MySQL中触发器部分有关的知识点整理,包括再MySQL中创建、删除、查看触发器的相关知识点,并包括相关的语法和语句。还有使用触发器应该注意的一些要点。 适合数据库专业的或是计算机相关专业的朋友...

    Mysql数据库基础知识

    涵盖了MySQL数据库的基本概念、体系结构、数据类型、SQL语言基础、索引优化、存储过程与函数、触发器、视图、事务管理、安全性以及备份与恢复等重要知识点。它旨在为学习者提供一个全面而精炼的MySQL学习指南。适用...

    mysql内核 innodb存储引擎

    接着以InnoDB的内部实现为切入点,逐一详细讲解了InnoDB存储引擎内部的各个功能模块,包括InnoDB存储引擎的体系结构、内存中的数据结构、基于InnoDB存储引擎的表和页的物理存储、索引与算法、文件、锁、事务、备份,...

    mysql学习笔记和案例(全部知识点版)

    这是我自己学习mysql时的学习笔记,每一个知识点都是自己动手写的,涵盖了mysql中的几乎全部的基础知识点,查询,子查询,分组,排序,常用函数,多表连接,视图,变量,存储过程,函数,分支结构,循环结构等等

    MySQL书籍(21本)目录知识点(思维导图加图).rar

    MySQL书籍(21本)目录知识点(思维导图加图).rar 根据如下MySQL书籍收集整理: 2004年《MySQL完全手册》 2006年《MySQL 5 权威指南-(第3版)》 2007年《PHP与MySQL 5程序设计(第2版)》 2009年《MySQL必知必会》 ...

    mysql数据库知识点总结.pdf

    1 数据库概念(了解) 1.1 什么是数据库 数据库就是用来存储和管理数据的仓库! 数据库存储数据的优先: 1.2 数据库的发展历程,

    mysql面试题知识点.zip

    Mysql优化.md Mysql存储引擎.md Mysql数据类型.md Mysql日志.md Mysql简介.md mysql面试题知识点.zip pom.xml RDBMS常见知识点.md RDBMS简介.md 事务.md 数据库锁.md 索引.md

    MySQL存储引擎基础知识

    不记得的童鞋可以回顾一下《MySQL之事务初识》,其实呀,更严谨一点的话,应该是MySQL InnoDB存储引擎,因为在MySQL中,只有InnoDB存储引擎才支持事务。看到此处,有些朋友可能有以下疑问: 存储引擎是什么? MySQL中...

    mysql学习笔记和案例(完全版)

    这是我自己学习mysql时的学习笔记,每一个知识点都是自己动手写的,涵盖了mysql中的几乎全部的基础知识点,查询,子查询,分组,排序,常用函数,多表连接,视图,约束,分页,建库建表,数据类型,标识列,级联删除...

    MySQL_思维导图(全面).xmind.zip

    资源包括:1、mysql的架构介绍;2、索引优化分析;3、查询优化分析;4、mysql锁机制;5、主从复制;以及如何建立高效的索引、索引在哪些情况下会失效、生产环璋下,如果进行sql问题排查及优化。属于非常干货的内容。

    Mysql高性能存储.xmind

    mysql各个模块资料整理,包括基础、存储引擎、索引、mysql锁、事务、性能分析、优化、配置优化等模块的知识点

    数据库SQL知识点总结、代码及练习题代码

    数据库mysql、SQL server压缩包包含内容: 1.数据库的创建修改批量插入等基本操作及sql文件 2.数据表的约束、查询及sql文件 3.SQL server函数及sql文件 ...7.触发器 存储过程 索引 视图 知识点及sql文件 8.事务ACID理解

    01mysql查缺补漏(补充知识点)

    mysql查缺补漏(补充知识点)(begin end可以省略、调用无参存储过程注意事项、定义条件和处理)

Global site tag (gtag.js) - Google Analytics