C++ MySQL day8

5.1

变量

在MySQL中,变量分为四种类型,即局部变量、用户变量、会话变量和全局变量。其中局部变量和用户变量在实际应用中使用较多,会话变量和全局变量使用较少,因此作为了解即可。

全局变量

MySQL全局变量会影响服务器整体操作,当服务启动时,它将所有全局变量初始化为默认值。要想更改全
局变量,必须具有管理员权限。其作用域为服务器的整个生命周期。

点击查看代码
- 显示所有的全局变量
SHOW GLOBAL VARIABLES;
- 设置全局变量的值的两种方式
SET GLOBAL sql_warnings = ON; - GLOBAL不能省略
SET @@GLOBAL.sql_warnings = OFF;
- 查询全局变量的值的两种方式
SELECT @@GLOBAL.sql_warnings;
SHOW GLOBAL VARIABLES LIKE '%sql_warnings%';

会话变量

MySQL会话变量是服务器为每个连接的客户端维护的一系列变量。其作用域仅限于当前连接,因此,会话
变量是独立的。

点击查看代码
- 显示所有的会话变量
SHOW SESSION VARIABLES;
- 设置会话变量的值的三种方式
SET SESSION auto_increment_increment = 1;
SET @@SESSION.auto_increment_increment = 2;
- 当省略SESSION关键字时,默认缺省为SESSION,即设置会话变量的值
SET auto_increment_increment = 3;
- 查询会话变量的值的三种方式
SELECT @@auto_increment_increment;
SELECT @@SESSION.auto_increment_increment;
- SESSION关键字可省略,也可用关键字LOCAL替代
SHOW SESSION VARIABLES LIKE '%auto_increment_increment%';
SET @@LOCAL.auto_increment_increment = 1;
SELECT @@LOCAL.auto_increment_increment;

用户变量

MySQL用户变量,MySQL中用户变量不用提前申明,在用的时候直接用“@变量名”使用就可以了。其作用
域为当前连接。

点击查看代码
- 第一种用法,使用SET时可以用“=”或“: ”两种赋值符号赋值
SET @age = 19;
- 第二种用法,使用SELECT时必须用“: ”赋值符号赋值
SELECT @age := 22;
SELECT @age := age FROM stu WHERE `name` = '张华';
- 第三种用法,使用SELECT. INTO语句赋值
SELECT age INTO @age FROM stu WHERE `name` = '张华';
  1. 局部变量
    MySQL局部变量,只能用在BEGIN/END语句块中,比如存储过程中的BEGIN/END语句块。
点击查看代码
- 定义局部变量
DECLARE age INT(3) DEFAULT 0;
- 为局部变量赋值
SET age = 10;
SELECT age := 10;
SELECT 10 INTO age;
SELECT age;

存储过程

概念

在大型数据库系统中,存储过程是一组为了完成特定功能而存储在数据库中的SQL语句集,一次编译后永
久有效

为什么要使用存储过程

1)运行速度快
2)减少网络传输
3)增强安全性

如何使用存储过程

语法:

点击查看代码
- 声明分隔符
[DELIMITER $$]
CREATE PROCEDURE 存储过程名称 ([IN | OUT | INOUT] 参数名1 数据类型, [[IN | OUT |
INOUT] 参数名2 数据类型, . , [IN | OUT | INOUT] 参数名n 数据类型])
- 语句块开始
BEGIN
- SQL语句集
END[$$]
- 还原分隔符
[DELIMITER ; ]
- 调用存储过程
CALL 存储过程名(参数1,参数2,…);
posted @ 2025-05-01 16:12  北燃  阅读(18)  评论(0)    收藏  举报