MySql 存储过程一--基本语法及参数介绍

存储过程是为了完成特定功能的SQL语句集,经过第一次编译后,之后调用都不用再进行编译

  • 创建:
create procedure procedure_name ([parameter list])
[characteristic ...]begin
routine_bodyend

其中,

procedure_name: 为存储过程名称;

parameter list: 为参数列表,可以包含零个或多个参数,参数与参数之间逗号(,)分隔。

每个参数的形式为:参数类型  参数名称  数据类型

参数类型:in(输入参数) out(输出参数) inout(输入输出参数,调用时被指定,可以被修改和返回)

characteristic:该项可选,表示存储过程特性,有如下取值:

1)language sql: 存储过程由SQL语句组成,目前sql是language特性的唯一值;

2)[not] deterministic: 表示结果是否为确定的值,即相同输入是否一定能得到相同输出,默认为not deterministic;

3)contains sql(存储过程包含sql语句,但不包含读写数据的语句)| no sql(存储过程不包含sql语句)| reads sql data(存储过程包含读数据的语句)|modifies sql data(存储过程包含读写数据的语句)

4)sql security {definer(只有定义者可以执行该存储过程)|invoker(拥有权限的调用者可以执行)} ,默认definer

5)comment ‘string‘(注释,描述存储过程)

routine_body: 程序体。

  • 调用:
call procedure_name(parameter list);
  • 删除:
drop procedure procedure_name;

  

PS:

1、创建存储过程前,要先指定存储过程所属的数据库;

2、查询某个数据库所包含的存储过程(设数据库名称为factory,包含一个名为sum_app的存储过程):

3、查询存储过程创建语句:

4、可以在一个存储过程中调用另一个存储过程,但是不能删除另一个存储过程。

时间: 2024-11-03 22:33:03

MySql 存储过程一--基本语法及参数介绍的相关文章

Mysql 存储过程基本语法

delimiter //一般情况下MYSQL以:结尾表示确认输入并执行语句,但在存储过程中:不是表示结束,因此可以用该命令将:号改为//表示确认输入并执行. 一.创建存储过程 1.基本语法: create procedure sp_name() begin ......... end 2.参数传递 二.调用存储过程 1.基本语法:call sp_name() 注意:存储过程名称后面必须加括号,哪怕该存储过程没有参数传递 三.删除存储过程 1.基本语法: drop procedure sp_nam

Mysql存储过程入门介绍

delimiter //一般情况下MYSQL以:结尾表示确认输入并执行语句,但在存储过程中:不是表示结束,因此可以用该命令将:号改为//表示确认输入并执行. 一.创建存储过程 1.基本语法: create procedure sp_name()begin.........end 2.参数传递 二.调用存储过程 1.基本语法:call sp_name()注意:存储过程名称后面必须加括号,哪怕该存储过程没有参数传递 三.删除存储过程 1.基本语法:drop procedure sp_name//2.

MySQL 存储过程参数用法 in, out, inout

MySQL 存储过程参数有三种类型:in.out.inout.它们各有什么作用和特点呢? 一.MySQL 存储过程参数(in) MySQL 存储过程 “in” 参数:跟 C 语言的函数参数的值传递类似, MySQL 存储过程内部可能会修改此参数,但对 in 类型参数的修改,对调用者(caller)来说是不可见的(not visible). drop procedure if exists pr_param_in; create procedure pr_param_in ( in id int

Mysql存储过程调用

mysql存储过程实例教程 发布时间:2014-04-09编辑:JB01 这篇文章主要介绍了mysql存储过程的使用方法,mysql存储过程实例教程,有需要的朋友参考下. 1.1create  procedure  (创建)create procedure存储过程名 (参数列表)   beginsql语句代码块end注意:由括号包围的参数列必须总是存在.如果没有参数,也该使用一个空参数列().每个参数默认都是一个in参数.要指定为其它参数,可在参数名之前使用关键词 out或inout在mysql

Mysql存储过程(转)

一.MySQL 创建存储过程 "pr_add" 是个简单的 MySQL 存储过程,这个存储过程有两个 int 类型的输入参数 "a"."b",返回这两个参数的和. drop procedure if exists pr_add; -- 计算两个数之和 create procedure pr_add(   a int,   b int)begin   declare c int; if a is null then      set a = 0; 

MySQL存储过程总结(一)

最近比较有兴趣研究MySQL定时任务存储过程,也开始学习MySQL几款查询管理工具,主要有Navicat for MySQL.SQLyog.MySQL Workbench 6.0.Toad for MySQL 6.0几款工具,都非常强大,正在陆续的学习中,下面先对MySQL存储过程做些总结.    一.存储过程 MySQL存储过程是从MySQL5.0开始增加的新功能,存储过程的优点有很多,不过最主要的还是执行效率和SQL代码封装.特别是SQL代码封装,存储过程易于维护,执行效率高.   二.简单

总结: MySQL(基础,字段约束,索引,外键,存储过程,事务)操作语法

1. 显示数据库列表 show databases; # 查看当前所有数据库 show databases \G   #以行的方式显示 2. 在命令行中,执行sql语句 mysql -e 'show databases' -uroot -p123456 mysqlshow -uroot -p123456 # 不常用,记住上面那个就行了 3.创建数据库语法 create database 数据库名; 例如: create database `HA-test`; 4. 切换数据库 use HA-te

mysql存储过程语法及实例

存储过程如同一门程序设计语言,同样包含了数据类型.流程控制.输入和输出和它自己的函数库. --------------------基本语法-------------------- 一.创建存储过程create procedure sp_name()begin.........end 二.调用存储过程1.基本语法:call sp_name()注意:存储过程名称后面必须加括号,哪怕该存储过程没有参数传递 三.删除存储过程1.基本语法:drop procedure sp_name// 2.注意事项(1

MySQL 存储过程传参之in, out, inout 参数用法

存储过程传参:存储过程的括号里,可以声明参数. 语法是 create procedure p([in/out/inout] 参数名  参数类型 ..) in :给参数传入值,定义的参数就得到了值 out:模式定义的参数只能在过程体内部赋值,表示该参数可以将某个值传递回调用他的过程(在存储过程内部,该参数初始值为 null,无论调用者是否给存储过程参数设置值) inout:调用者还可以通过 inout 参数传递值给存储过程,也可以从存储过程内部传值给调用者 如果仅仅想把数据传给 MySQL 存储过