储存过程

本文章原创,转载需注明出处.

前提: 在大型数据库中

来源: 为了完成特定功能的SQL语句集

定义: 储存在数据库中, 用户通过指定储存过程的名字并给出参数(带有参数的)来执行它

声明: 储存过程是数据库中一个重要的对象,类似于PHP,js 中的函数

创建储存过程

create procedure 名称(in|out|inout 名称 类型,...)

begin

  过程体;

end

说明:  过程体可以使用所学的所有SQL

     可以运用变量,运算,流程控制语句,函数

     储存过程没有返回值

in   传入参数

out      传出参数

inout   传入传出参数

储存过程中的变量

数据类型

  int     smallint    tinyint     char    varchar     text     enum()     set()    等

声明变量

  declare 变量名 类型(长度)

  default 默认值

变量赋值

  set 变量名 = 值

变量使用

  变量名

储存过程中的运算

算数运算
  + - * / %
比较运算
  > < >= <= = != <>
逻辑运算
  and or not
赋值
  set 变量=值

储存过程中的条件语句

if 条件 then
elseif 条件 then

  过程;
elseif 条件 then

  过程;
elseif 条件 then

  过程;
else

  过程;
end if;

储存过程中选择语句

case 变量名或字段或表达式

when 0 then
语句;
when 1 then
语句;
else
语句;
end case;

储存过程中循环语句

while 循环条件 do
变换步长;
end while;

repeat
变换步长
until 终止条件
end repeat;

储存过程中的函数

字符串函数:
CONCAT (string2 [,... ]) //连接字串
REPLACE (str ,search_str ,replace_str ) //在str中用replace_str替换search_str
SUBSTRING (str , position [,length ]) //从str的position开始,取length个字符
数学函数:
CEILING (number2 ) //向上取整
FLOOR (number2 ) //向下取整
RAND([seed]) //随机数
ROUND (number [,decimals ]) //四舍五入,decimals为小数位数]
时间日期函数:
CURRENT_DATE ( ) //当前日期
CURRENT_TIME ( ) //当前时间
NOW ( ) //当前时间
CURRENT_TIMESTAMP ( ) //当前时间

储存过程的管理

查看所有存储过程
select name from mysql.proc where db = 'system' and type= 'PROCEDURE'
查看某个存储过程
show create procedure 存储过程名称;
删除存储过程
drop procedure 存储过程名称;

MySQL储存过程的更多相关文章

  1. mysql储存过程入门学习

    转载至:https://www.yiibai.com/mysql/getting-started-with-mysql-stored-procedures.html 1.mysql储存过程的创建 DE ...

  2. MySQL 储存过程-原理、语法、函数详细说明

    Mysql储存过程是一组为了完成特定功能的SQL语句集,经过编译之后存储在数据库中,当需要使用该组SQL语句时用户只需要通过指定储存过程的名字并给定参数就可以调用执行它了,简而言之就是一组已经写好的命 ...

  3. Mysql 储存过程以及 python callproc调用

    一.存储过程(stored procedure) 存储过程将存入的一系列SQL语句进行预编译,执行并存放在数据库中,之后如果需要使用sql语句对这一组sql进行访问时可以直接提取(很好理解 存储过程就 ...

  4. Mysql储存过程7: case

    #用在储存过程中: create procedure k() begin declare number int; )); case number then select '>0'; else s ...

  5. Mysql储存过程4:mysql变量设置

    默认全局变量是两个@@开头, 可用show variables查看所有默认变量: @@user #declare定义变量只能用在储存过程中 #declare 变量名 数据类型 可选类型 declare ...

  6. Mysql储存过程2:变量定义与参数传递

    #储存过程 中的变量定义 declare 变量名 类型 可选类型 -- 跟建表差不多 create procedure p() begin ); ; select age+number; end$ / ...

  7. Mysql储存过程1: 设置结束符与储存过程创建

    #显示储存过程 show procedure status; #设置结束符 delimiter $; #创建储存过程 create procedure procedure_name() begin - ...

  8. 从一个例子入门Mysql储存过程

    例子 -- 秒杀执行存储过程 DELIMITER $$ -- 将分隔符; 转换为 $$ -- 定义存储过程 -- 参数: in 输入参数; out 输出参数 -- row_count():返回上一条修 ...

  9. MySQL储存过程详解

    我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的 ...

随机推荐

  1. [C#.net]ListBox对Item进行重绘,设置背景色和前景色

    别的不多说了,上代码,直接看 首先设置这行,或者属性窗口设置,这样才可以启动手动绘制,参数有三个 Normal: 自动绘制 OwnerDrawFixed:手动绘制,但间距相同 OwnerDrawVar ...

  2. getObjectURL 上传图片预览

    js 函数 function getObjectURL(file) {    var url = null ;     if (window.createObjectURL!=undefined) { ...

  3. 走进JDK(六)------ArrayList

    对于广大java程序员来说,ArrayList的使用是非常广泛的,但是发现很多工作了好几年的程序员不知道底层是啥...这我觉得对于以后的发展是非常不利的,因为java中的每种数据结构的设计都是非常完善 ...

  4. GitHub上好的Java项目

    1. java-design-patterns(Star:36k)Github地址:https://github.com/iluwatar/java-design-patterns 介绍:设计模式是形 ...

  5. HDU 4309 Seikimatsu Occult Tonneru (状压 + 网络流)

    题意:输入 n 个城市 m 条边,但是边有三种有向边 a b  c d,第一种是 d 是 0,那么就是一条普通的路,可以通过无穷多人,如果 d < 0,那么就是隧道,这个隧道是可以藏 c 个人, ...

  6. 延迟执行(Invoke 函数)和消息发送(SendMessage 函数)

    Invoke 函数需要继承 MonoBehaviour 类后才能使用. Invoke(string str,float a):a 秒后执行名为 str 函数(只会调用一次). Invoke(strin ...

  7. Django积木块二——邮箱

    邮箱 django中自带的功能,因为登录注册都需要邮箱,因此新增了一个小的app--utils用来存放 # email_send.py import random from django.core.m ...

  8. 国网电表dlt645-2007抄表软件

    这个支持公网抄表 在以前局域网的基础上做了修正 使用起来更加便利了

  9. Awake()跟Start()差在哪?

    刚开始学Unity的时候,最难搞定的就是这两个functions的差异,依照官方文件所描述的: Awake(): Awake is called when the script instance is ...

  10. HSmartWindowControl之安装篇 (Visual Studio 2013 & Halcon 18)

    1.环境简介 Visual Studio 2013社区版 Halcon18.05 2.使用Nuget在VS工程中安装Halcon插件 搜索栏输入关键字halcon,出现两个插件,分别是halcon语言 ...