mysql学习手记

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;
相关推荐
cuisidong19979 分钟前
5G学习笔记三之物理层、数据链路层、RRC层协议
笔记·学习·5g
Acrelhuang10 分钟前
安科瑞5G基站直流叠光监控系统-安科瑞黄安南
大数据·数据库·数据仓库·物联网
南宫理的日知录17 分钟前
99、Python并发编程:多线程的问题、临界资源以及同步机制
开发语言·python·学习·编程学习
十叶知秋1 小时前
【jmeter】jmeter的线程组功能的详细介绍
数据库·jmeter·性能测试
数据与后端架构提升之路1 小时前
从神经元到神经网络:深度学习的进化之旅
人工智能·神经网络·学习
一行11 小时前
电脑蓝屏debug学习
学习·电脑
星LZX2 小时前
WireShark入门学习笔记
笔记·学习·wireshark
阑梦清川2 小时前
在鱼皮的模拟面试里面学习有感
学习·面试·职场和发展
qq_433099402 小时前
Isaac Gym学习笔记——概述
学习
瓜牛_gn2 小时前
mysql特性
数据库·mysql