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;
相关推荐
打球她不香吗9 分钟前
本周ALLegro学习内容的总结
学习·allegro
xlq2232213 分钟前
11.表的内外连接,索引
mysql
AllData公司负责人25 分钟前
数据库同步平台|AIIData数据中台实现OceanBase、达梦数据库、OpenGauss、人大金仓、Hive、TDengine 一键接入Doris
大数据·数据库·hive·mysql·oceanbase·tdengine
2603_9547083142 分钟前
全维度容错设计,打造微电网安全运行屏障
服务器·网络·数据库·人工智能·分布式·安全
其实防守也摸鱼1 小时前
蓝队相关知识学习(1)---常用堡垒机和服务器
服务器·功能测试·学习·网络安全·网络攻击模型·攻防对抗·蓝队
IvorySQL1 小时前
从双解析器到循环工程:IvorySQL 五年技术演进路线的深度观察
大数据·数据库·人工智能·postgresql·开源
wefg11 小时前
【MySQL】事务
数据库·mysql
冰可乐配1 小时前
fmpeg音频编码组件aac(Advanced Audio Coding (AAC) encoder)学习
学习·音视频·aac
黑白极客1 小时前
mysql的高可用性
数据库·mysql
一十九的酒2 小时前
Oracle 12c 标准版无缝升级企业版实战记录
数据库·oracle·标准版切换到企业版