MySQL精讲之五:存储过程和函数
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;
#

-
MySQL Workbench怎么建立数据库(附:sql语句创建数据库方法) 2023-07-20 12:22:29
-
MySQL Workbench是什么?(附:如何设置中文教程) 2023-07-20 11:42:31
-
一起聊聊MySQL主从延时的处理方案 2023-05-14 07:00:03
-
mysql怎么将查询结果赋给变量 2023-05-14 07:00:03
-
mysql驱动是什么 2023-05-14 07:00:03
-
qt5.8如何连接mysql 2023-05-14 07:00:03
-
MySQL 语法整理介绍 2023-05-14 07:00:03
-
mysql修改表结构的语句是什么 2023-05-14 07:00:03
-
mysql乐观锁和悲观锁的区别是什么 2023-05-14 07:00:03
-
mysql查询怎么区分大小写 2023-05-14 07:00:02