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)
BEGIN
SELECT 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)
BEGIN
SELECT * 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;
# }
# });
# }

[置顶] Mysql存储过程入门知识的更多相关文章

  1. MySQL存储过程入门

    MySQL存储过程入门 在本教程中,我们将逐步介绍如何使用CREATE PROCEDURE语句开发第一个MySQL存储过程. 另外,我们将向您展示如何从SQL语句调用存储过程. 编写第一个MySQL存 ...

  2. Mysql存储过程入门介绍

    delimiter //一般情况下MYSQL以:结尾表示确认输入并执行语句,但在存储过程中:不是表示结束,因此可以用该命令将:号改为//表示确认输入并执行. 一.创建存储过程 1.基本语法: crea ...

  3. MySQL存储过程入门教程

    存储过程介绍 存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中.用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.存储过程可由应用程序通过一个调用来执行,而且 ...

  4. [置顶] MySQL -- 创建函数(Function

    目标 如何在MySQL数据库中创建函数(Function) 语法 CREATE FUNCTION func_name ( [func_parameter] ) //括号是必须的,参数是可选的 RETU ...

  5. MySQL 存储过程入门

    存储过程是带有逻辑的SQL语句,优点是执行效率高.缺点是可移植性差 1.存储过程语法 DELIMITER $ --声明结束符 CREATE PROCEDURE pro_test() --创建存储过程 ...

  6. [置顶] MySQL Cluster初步学习资料整理--安装部署新特性性能测试等

    1.1 mysql-cluster简介 简单的说,MySQLCluster实际上是在无共享存储设备的情况下实现的一种完全分布式数据库系统,其主要通过NDBCluster(简称NDB)存储引擎来实现. ...

  7. [置顶] IOS 基础入门教程

    IOS 基础入门教程 教程列表: IOS 简介 IOS环境搭建 Objective C 基础知识 创建第一款iPhone应用程序 IOS操作(action)和输出口(Outlet) iOS - 委托( ...

  8. MySQL存储过程入门基础

    创建存储过程无参语法: delimiter // create procedure 函数名() begin 业务逻辑 end // call 函数名() 通过函数名调用存储过程 创建存储过程有参与法: ...

  9. MySQL存储过程入门了解

    0.环境说明: mysql版本:5.7 1.使用说明 ​ 存储过程是数据库的一个重要的对象,可以封装SQL语句集,可以用来完成一些较复杂的业务逻辑,并且可以入参出参(类似于java中的方法的书写). ...

随机推荐

  1. 【LeetCode练习题】Permutation Sequence

    Permutation Sequence The set [1,2,3,…,n] contains a total of n! unique permutations. By listing and ...

  2. 【学习总结】autostart 与 init

    学习总结/etc/xdg/autostart/xxx.desktop,是开机从登录界面跳转到桌面启动的,可以拿到桌面环境变量,用户id是“普通用户”,如果自启动的程序文件所属者为root,则需要 执行 ...

  3. hdu 4686 Arc of Dream(矩阵快速幂乘法)

    Problem Description An Arc of Dream is a curve defined by following function: where a0 = A0 ai = ai- ...

  4. Python sql数据的增删改查简单操作

    1.insert import mysql.connector import os import codecs #设置数据库用户名和密码 user='root';#用户名 pwd='root';#密码 ...

  5. Framework7功能齐全的 iOS7 App 前端框架

    Framework7 是一个功能很全的 HTML 框架,用来构建 iOS7 应用程序. Framework7 允许您灵活搭建列表视图(表视图) .你可以让他们作为导航菜单,你可以在列表里面使用图标,输 ...

  6. 启动监听报错:TNS-12537: TNS:connection closed TNS-12560: TNS:protocol adapter error TNS-00507: Connection closed Linux Error: 29: Illegal seek

    启动监听程序报错: 说明:在rhel5.8上安装完成oracle11g数据库后,使用netca创建完监听,启动监听时报错.还未使用dbca创建实例. [oracle@rusky-oracle11g ~ ...

  7. VMware虚拟机与主机联通及配置上网

    vmware版本:10.0.0 build-1295980,安装redhat enterprise linux 5.8 一.物理机与虚拟机联通,但不联网 1.虚拟网络VMnet1设置: 此时,物理主机 ...

  8. vbox下安装 linux 64 bit出现“kernel requires an x86_64 cpu

        今天在vbox下安装linux 64bit出现"kernel requires an x86_64 cpu, but only detected "的错误,网上有很多文章介 ...

  9. (六)Android中Service通信

    一.启动Service并传递参数 传递参数时只需在startService启动的Intent中传入数据便可,接收参数时可在onStartCommand函数中通过读取第一个参数Intent的内容来实现 ...

  10. Android中 Http请求

    HttpClient public class MainActivity extends Activity { private Button button; @Override protected v ...