Mysql存储过程入门知识

#1,查看数据库所有的存储过程名
#--这个语句被用来移除一个存储程序。不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程
#SELECT NAME FROM mysql.proc WHERE db='数据库名'; 
#2,列出所有的存储过程
#SHOW  PROCEDURE  STATUS;
#3,查看存储过程详细
#SHOW CREATE PROCEDURE 数据库名.存储过程名;  
#4,存储过程的创建 由括号包围的参数列必须总是存在。如果没有参数,也该使用一个空参数列()。
#每个参数默认都是一个IN参数。要指定为其它参数,可在参数名之前使用关键词 OUT或INOUT
#CREATE PROCEDURE存储过程名 (参数列表); 使用BEGIN ... END复合语句来包含多个语句
#   BEGIN
#         SQL语句代码块
#   END
#5,DECLARE语句(用来声明局部变量);
#要给变量提供一个默认值,需包含一个DEFAULT子句。如果没有DEFAULT子句,初始值为NULL。局部变量的作用范围在它被声明的BEGIN ... END块内。
#DECLARE var_name[,...] type [DEFAULT value] 
#6,变量SET语句
#SET var_name = expr [, var_name = expr]  
#7,SELECT ... INTO语句;这个SELECT语法把选定的列直接存储到变量,因此,只有单一的行可以被取回。
#SELECT col_name[,...] INTO var_name[,...] table_expr
#8,修改存储过程
#ALTER PROCEDURE 存储过程名SQL语句代码块;  
#9,删除存储过程
#DROP PROCEDURE  IF  EXISTS 存储过程名;
#存储过程的调用;存储过程名称后面必须加括号,哪怕该存储过程没有参数传递。
#10,CALL 存储过程名(参数列表);  
#11,MySQL 存储过程参数(in;)
#跟 C 语言的函数参数的值传递类似, MySQL 存储过程内部可能会修改此参数,但对 in 类型参数的修改,对调用者(caller)来说是不可见的(not visible)。
#12,MySQL 存储过程参数(out)
#MySQL 存储过程 “out” 参数:从存储过程内部传值给调用者。在存储过程内部,该参数初始值为 null,无论调用者是否给存储过程参数设置值
#13,MySQL 存储过程参数(inout)
#MySQL 存储过程 inout 参数跟 out 类似,都可以从存储过程内部传值给调用者。不同的是:调用者还可以通过 inout 参数传递值给存储过程。
#注:如果仅仅想把数据传给 MySQL 存储过程,那就使用“in” 类型参数;
#    如果仅仅从 MySQL 存储过程返回值,那就使用“out” 类型参数;
#    如果需要把数据传给 MySQL 存储过程,还要经过一些计算后再传回给我们,此时,要使用“inout” 类型参数。#demo1:创建一个简单的存储过程(获取用户总数),带输出参数。
#--删除存储过程
DROP PROCEDURE IF EXISTS proc_users_getCount
#--创建存储过程
CREATE PROCEDURE proc_users_getCount(OUT n INT)
BEGINSELECT COUNT(*) FROM users ;
END
#--MYSQL调用存储过程
CALL proc_users_getCount(@n); #demo2:创建一个简单的存储过程(根据用户id获取用户信息),带输入参数。
#--删除存储过程
DROP PROCEDURE IF EXISTS proc_users_findById;
#--创建存储过程
CREATE PROCEDURE proc_users_findById(IN n INT)
BEGINSELECT * FROM users WHERE id=n;
END
#--定义变量
SET @n=1;
#--调用存储过程
CALL proc_users_findById(@n);#Last:操作存储过程时应注意:
#1.删除存储过程时只需要指定存储过程名即可,不带括号;
#2.创建存储过程时,不管该存储过程有无参数,都需要带括号;
#3.在使用SET定义变量时应遵循SET的语法规则;
#SET @变量名=初始值;
#4.在定义存储过程参数列表时,应注意参数名与数据库中字段名区别开来,否则将出现无法预期的结果.#END:java中调用存储过程util
#   // 执行存储过程
#   @Override
#   public ResultSet execProc(final String procName, final Object[] params) {
#       return (ResultSet) getHibernateTemplate().execute(
#               new HibernateCallback() {
#                   public Object doInHibernate(Session session)
#                           throws HibernateException, SQLException {
#                       CallableStatement cstmt = session.connection()
#                               .prepareCall(procName);
#                       if (params != null) {
#                           for (int i = 0; i < params.length; i++) {
#                               cstmt.setObject(i + 1, params[i]);
#                           }
#                       }
#                       ResultSet rs = cstmt.getResultSet();
#                       return rs;
#                   }
#               });
#   }

转载于:https://www.cnblogs.com/snake-hand/p/3162991.html

[置顶] Mysql存储过程入门知识相关推荐

  1. 自己总结的MySQL基础入门知识,附思维导图

    第一次写博文,问题点可能比较多,辛苦大家帮忙指正,感谢大家. MySQL基础入门知识 前言 一.数据库基础知识 1.什么是数据库 2.数据库的分类 3.数据库的常用语言 4.数据库的常用操作方式 5. ...

  2. [置顶] Hibernate从入门到精通(十)多对多单向关联映射

    上一篇文章Hibernate从入门到精通(九)一对多双向关联映射中我们讲解了一下关于一对多关联映射的相关内容,这次我们继续多对多单向关联映射. 多对多单向关联映射 在讲解多对多单向关联映射之前,首先看 ...

  3. [置顶] Hibernate从入门到精通(十一)多对多双向关联映射

    上次我们在中Hibernate从入门到精通(十)多对多单向关联映射讲解了一下多对多单向关联映射,这次我们讲解一下七种映射中的最后一种多对多双向关联映射. 多对多双向关联映射 按照我们之前的惯例,先看一 ...

  4. Mysql DBA 高级运维学习之路-mysql数据库入门知识

    1.MySQL数据库介绍 MySQL是一种关系型数据库管理系统,关系型数据库的特点是将数据保存在不同的表中,在将这些表放在不同的数据库中,而不是将所有数据统一放在一个大仓库里,这样设计增加了MySQL ...

  5. mysql存储过程入门_MySQL入门之存储过程

    1 什么是存储过程 存储过程,带有逻辑的sql语句 之前的sql没有条件判断,没有循环 存储过程带上流程控制语句(if while) 2 存储过程特点 1)执行效率非常快!存储过程是在数据库的服务器端 ...

  6. 十三、MySQL存储过程相关知识总结 + 案例讲解(强化)

    一.存储过程VS函数 存储过程和函数:类似于java中的方法 好处: 1.提高代码的重用性 2.简化操作 二.存储过程 含义:一组预先编译好的SQL语句的集合,理解成批处理语句 1.提高代码的重用性 ...

  7. [置顶]常用存储过程集锦

    收集的常用存储过程,都是一些mssql常用的一些,大家可以根据需要选择使用. =================分页========================== /*分页查找数据*/ CREA ...

  8. [置顶] Fedora使用入门与基本配置

    Fedora使用入门与基本配置 ------------------------ 注:以下内容为个人学习总结,另有部分内容转载自互联网,版权归原著所有,本博内容仅供个人学习使用. ---------- ...

  9. mysql 存储过程 out 用处_mysql存储过程 OUT or INOUT argument 3 for routine

    mysql存储过程出现: OUT or INOUT argument 3 for routine gotask.UserLogin is not a variable or NEW pseudo-va ...

最新文章

  1. 征文通知 | 第十八届中国计算语言学大会(CCL 2019)论文提交截止时间推迟
  2. 游戏编程新手教程:怪物AI设计简述
  3. 数据库知识:SQLServer变量相关知识介绍
  4. 基于maven的SpringMVC+Spring+MyBatis+Log4j2的pom配置
  5. 01-JAVA语言基础
  6. python游戏开发工程师_Python开发工程师-入门与实战视频课程
  7. 简单的自动更新程序实现
  8. 2.1基本算法之枚举_1749数字方格
  9. 分享PHP获取客户端IP的几种不同方式
  10. 视频时序与BT1120的关系 FPGA实现BT.1120编码
  11. Python编程题汇总(附答案)
  12. 机器学习:决策树算法案例(西瓜数据集3.0)
  13. 华为手机流量日显示无服务器,华为手机开启了数据流量却不能上网怎么办
  14. Linux下SD卡格式化,为SD卡分区
  15. Android中获取视频的第一帧图片的三种方法
  16. WinEdit10 添加论文引用,XeLaTex编译后论文中的引用变成了【?】
  17. WiFi探针的原理与安全
  18. @Zabbix报表系统ZbxTable
  19. CSS第四篇(复合选择器)
  20. 射击末世--装饰者模式

热门文章

  1. Android 偶见花屏 bug,无法手动重现
  2. esri-leaflet入门教程(5)- 动态绘制图形
  3. Cocos2d-html5 2.2.2的屏幕适配方案
  4. 如何使用 Visual C# 加密和解密文件
  5. 使用Visual C#制作可伸缩个性化窗体
  6. 【java学习之路】(javaWeb【后端】篇)004.Thymeleaf
  7. oracle运维dba面试题,一份DBA面试题目---亲身经历
  8. 介绍数据库中的wal技术_门禁系统中RFID与ETC两种新兴技术介绍
  9. 三、MySql 数据类型
  10. 关于字符集和字符编码格式