MySQL储存过程
储存过程
本文章原创,转载需注明出处.
前提: 在大型数据库中
来源: 为了完成特定功能的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储存过程的更多相关文章
- mysql储存过程入门学习
转载至:https://www.yiibai.com/mysql/getting-started-with-mysql-stored-procedures.html 1.mysql储存过程的创建 DE ...
- MySQL 储存过程-原理、语法、函数详细说明
Mysql储存过程是一组为了完成特定功能的SQL语句集,经过编译之后存储在数据库中,当需要使用该组SQL语句时用户只需要通过指定储存过程的名字并给定参数就可以调用执行它了,简而言之就是一组已经写好的命 ...
- Mysql 储存过程以及 python callproc调用
一.存储过程(stored procedure) 存储过程将存入的一系列SQL语句进行预编译,执行并存放在数据库中,之后如果需要使用sql语句对这一组sql进行访问时可以直接提取(很好理解 存储过程就 ...
- Mysql储存过程7: case
#用在储存过程中: create procedure k() begin declare number int; )); case number then select '>0'; else s ...
- Mysql储存过程4:mysql变量设置
默认全局变量是两个@@开头, 可用show variables查看所有默认变量: @@user #declare定义变量只能用在储存过程中 #declare 变量名 数据类型 可选类型 declare ...
- Mysql储存过程2:变量定义与参数传递
#储存过程 中的变量定义 declare 变量名 类型 可选类型 -- 跟建表差不多 create procedure p() begin ); ; select age+number; end$ / ...
- Mysql储存过程1: 设置结束符与储存过程创建
#显示储存过程 show procedure status; #设置结束符 delimiter $; #创建储存过程 create procedure procedure_name() begin - ...
- 从一个例子入门Mysql储存过程
例子 -- 秒杀执行存储过程 DELIMITER $$ -- 将分隔符; 转换为 $$ -- 定义存储过程 -- 参数: in 输入参数; out 输出参数 -- row_count():返回上一条修 ...
- MySQL储存过程详解
我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的 ...
随机推荐
- Java:内部接口
1.什么是内部接口 内部接口也称为嵌套接口,即在一个接口内部定义另一个接口.举个例子,Entry接口定义在Map接口里面,如下代码: public interface Map { interface ...
- <fieldset>标签
<!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Conten ...
- ubuntu无法打开software-center
ubuntu无法打开software-center BUG: 在ubuntu14.04LTS版本下,点击软件中心图标,过了一会软件未能启动,没有动静.用命令行启动报如下错误: perrin@Littl ...
- Hdp安装问题杂解
5.在安装的时候遇到的问题 5.1使用ambari-server start的时候出现ERROR: Exiting with exit code -1. 5.1.1REASON: Ambari Ser ...
- Reading | 《数字图像处理原理与实践(MATLAB版)》(未完待续)
目录 一.前言 1.MATLAB or C++ 2.图像文件 文件头 调色板 像素数据 3.RGB颜色空间 原理 坐标表示 4.MATLAB中的图像文件 图像类型 image()函数 imshow() ...
- Chapter7 抑癌基因
一.实验证明,如果肿瘤不是肿瘤病毒产生时,与正常细胞融合后,其恶性表型是隐形的 二. 家族性视网膜母细胞瘤的形成模型 如何使得一个细胞获得两个突变(两次随机的突变可能性太小) 模型一:有丝分裂的同源重 ...
- 使用pyenv在系统中安装多个版本的python
pyenv的安装与使用 如果没有安装git,首先要安装git apt-get install git 安装完成后,使用自动安装程序提供的单行程进行安装: curl -L https://github. ...
- 关于esp32的系统初始化启动过程及设计学习方法
对于esp32,其开发程序中有且只能有一个app_main函数,该函数是用户程序的入口,这在没有调用FreeRTOS的系统中相当于函数main,但其实在app_main之前,系统还有一段初始化的过程, ...
- [ 9.26 ]CF每日一题系列—— 771B递推问题
Description: 给定你命名的规律,1-10个字符,开头必须大写,最多有50个名字,然后告诉你有n个人,判断区间长度为k,那么你将得到n - k + 1个答案(YES or NO) 表示1 - ...
- 《大型网站系统与Java中间件实践》
读了一下,个人认为最好的部分,就是第四章了. CH04 服务框架 4.2 服务设计与实现 // 获取可用服务地址列表 // 确定调用服务目标机器 // 建立连接(Socket) // 请求序列化 // ...