MySQL精讲之五:存储过程和函数

文 / @WordPress主题

MySQL精讲之五:存储过程和函数

存储过程和函数是MySQL中非常重要的特性之一,可以提高代码的重用性和执行效率。本文将详细介绍MySQL的存储过程和函数,包括变量、存储过程、函数的定义、使用、参数、返回值等方面。

一、变量

1. 系统变量

系统变量分为全局变量和会话变量,是由MySQL系统提供的。

全局变量作用域:服务器每次启动将为所有的全局变量初始化,不能跨重启。

会话变量作用域:仅针对当前会话有效。

【全局变量】

作用域:服务器每次启动将为所有的全局变量初始化,不能跨重启

1. 查看所有的全局变量:SHOW GLOBAL VARIABLES;

2. 查看部分全局变量:SHOW GLOBAL VARIABLES LIKE '%char%';

3. 查看某个全局变量的值:SELECT @@global.autocommit;(查看是否自动提交)

SELECT @@global.tx_isolation;(查看隔离级别)

4. 为某个指定的全局变量赋值:SET @@global.autocommit=0;

【会话变量】

作用域:仅针对当前会话有效

1. 查看所有的会话变量:SHOW SESSION VARIABLES;

SHOW VARIABLES;(默认省略session)

2. 查看部分会话变量:SHOW SESSION VARIABLES LIKE '%char%';

3. 查看某个会话变量的值:SELECT @@tx_isolation;

SELECT @@session.tx_isolation;

4. 为某个指定的会话变量赋值:SET @@session.autocommit=0;

2. 自定义变量

自定义变量分为用户变量和局部变量,是用户自定义的。

对比作用域、定义和使用位置、语法:

用户变量:当前会话,会话中的任何地方必须加@符号,不用限定类型。

局部变量:BEGIN…END中只能在BEGIN…END中,且为第一句话,一般不加@符号,需要限定类型。

【用户变量】

作用域:针对当前会话有效,和会话变量的作用域相同。

1.声明并初始化,下面三种方式都可以:

SET @count=1;

SET @count:=1;

SELECT @count:=1;

2.赋值:

SELECT COUNT(*) INTO @count FROM employees;

3.查看用户变量:SELECT @count;

【局部变量】

作用域:仅在定义的begin…end中有效,应用在begin…end中的第一句话。

1.声明:DECLARE 变量名 类型;

DECLARE 变量名 类型 DEFAULT 值;

2.赋值:

SET 局部变量名=值;

SET 局部变量名:=值;

SELECT @局部变量名:=值;

3.使用:SELECT 局部变量名;

【案例】

#案例: 声明两个变量并赋初值,求和,打印

#用户变量

SET @m=1;

SET @n=2;

SET @sum=@m+@n;

SELECT @sum;

#

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。