mysql学习手记

本文介绍了MySQL中的视图、存储过程、SQL变量和参数、函数、触发器、事件以及事务的概念和使用,强调了这些技术如何简化查询、提高数据库管理效率和模块化编程。
摘要由CSDN通过智能技术生成

1.视图

简单一句:将需要重复使用的mysql语句放到视图中去

视图优点:1.简化查询 2.减少数据库改动的成本 3.限制访问

-- 创建视图
CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;

-- 使用视图
SELECT * FROM view_name;

2.存储过程

简单一句:将sql代码与后端代码分开

在这里我们会正式接触sql变量,参数这个概念

SQL 变量

SQL 变量是在 SQL 语句中使用的一个命名存储位置,用于存储一个值。变量的值可以在执行期间更改。

在 MySQL 中,可以使用 SET 语句来声明和设置变量,也可以在存储过程、函数和触发器中声明和使用变量。以下是一个简单的示例:

-- 声明并赋值给变量
SET @variable_name = value;

-- 使用变量
SELECT * FROM table_name WHERE column_name = @variable_name;

mysql的变量包括了用户变量与本地变量,上面的是用户变量的设置与声明方法,下面是本地变量

-- 定义并初始化本地变量
DECLARE local_variable INT;
SET local_variable = 10;

-- 使用本地变量
SELECT * FROM table_name WHERE column_name = local_variable;

在这个例子中,local_variable 是一个整数类型的本地变量,它被赋予了值 10,并在查询中使用。

本地变量的作用域仅限于定义它们的存储过程、函数或触发器内部。这意味着你可以在同一数据库中使用相同的变量名来定义不同的本地变量,而不会发生冲突。

使用本地变量可以使代码更加模块化和可维护,因为它们将相关逻辑组织在一起,并将变量的作用范围限制在必要的范围内,从而减少了命名冲突和意外修改的风险。

SQL 参数

SQL 参数是在 SQL 查询或存储过程、函数、触发器定义中声明的特殊变量,用于接收外部传递的值。参数可以在查询或存储过程、函数、触发器调用时提供。

在存储过程、函数和触发器中,参数可以作为输入参数(IN)、输出参数(OUT)或者输入输出参数(INOUT)。

以下是一个简单的存储过程示例,其中包含输入参数:

-- 创建存储过程
DELIMITER $$
CREATE PROCEDURE procedure_name(IN parameter_name datatype)
BEGIN
    -- 使用参数
    SELECT * FROM table_name WHERE column_name = parameter_name;
END$$
DELIMITER ;

-- 调用存储过程并传递参数值
CALL procedure_name('parameter_value');
-- 创建存储过程
DELIMITER $$
CREATE PROCEDURE procedure_name()
BEGIN
    -- SQL代码
END$$
DELIMITER ;

-- 调用存储过程
CALL procedure_name();

3.函数

简单一句:创建类似于max,min这些mysql自带的函数

-- 创建函数
CREATE FUNCTION function_name(parameter1 datatype, parameter2 datatype, ...)
RETURNS datatype
BEGIN
    -- 函数逻辑
END;

-- 调用函数
SELECT function_name(argument1, argument2, ...);

可以通过return返回处理后的数据 

4.触发器

简单一句:在mysql进行插入、更新、删除语句前后执行的一堆mysql代码

-- 创建触发器
CREATE TRIGGER trigger_name
BEFORE/AFTER INSERT/UPDATE/DELETE ON table_name
FOR EACH ROW
BEGIN
    -- 触发器逻辑
END;

-- 触发器自动执行,无需手动调用

5.事件

简单一句:根据计划执行的任务或一堆sql代码,可以设定什么时候执行,执行的频率

-- 创建事件
CREATE EVENT event_name
ON SCHEDULE EVERY 1 HOUR
DO
BEGIN
    -- 事件逻辑
END;

-- 启用事件调度器
SET GLOBAL event_scheduler = ON;

6.事务

简单一句:代表单个工作单元的一组sql语句

例如:一个转账操作,在sql中就是先减去你的数额,再加到你想要转的账户上,相当于是两个sql update构成了一个转账操作,这个转账操作就是一个工作单元

-- 开始事务
START TRANSACTION;

-- SQL语句
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
UPDATE table_name SET column1 = value1 WHERE condition;
DELETE FROM table_name WHERE condition;

-- 提交事务
COMMIT;

-- 或者回滚事务
ROLLBACK;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

github_czy

多谢老哥奖励的咖啡!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值