mysql学习手记

news/2024/9/22 21:05:43/

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;


http://www.ppmy.cn/news/1455357.html

相关文章

Rust Course学习(编写测试)

如果友友你的计算机上没有安装Rust,可以直接安装:Rust 程序设计语言 (rust-lang.org)https://www.rust-lang.org/zh-CN/ Introduce 介绍 Testing in Rust involves writing code specifically designed to verify that other code works as expected. It…

【QEMU系统分析之实例篇(十八)】

系列文章目录 第十八章 QEMU系统仿真的机器创建分析实例 文章目录 系列文章目录第十八章 QEMU系统仿真的机器创建分析实例 前言一、QEMU是什么?二、QEMU系统仿真的机器创建分析实例1.系统仿真的命令行参数2.创建后期后端驱动qemu_create_late_backends()qtest_serv…

Llama3-Tutorial之LMDeploy高效部署Llama3实践

Llama3-Tutorial之LMDeploy高效部署Llama3实践 Llama 3 近期重磅发布,发布了 8B 和 70B 参数量的模型,lmdeploy团队对 Llama 3 部署进行了光速支持!!! 书生浦语和机智流社区同学光速投稿了 LMDeploy 高效量化部署 Llam…

茅台葡萄酒打出节日新式营销“组合拳”,两月内落地品鉴会超千桌

执笔 | 尼 奥 编辑 | 古利特 2024年1-3月酒类进出口数据显示,葡萄酒进口量微增3.66%,进口额同比下滑11%,一季度整体跌势大缓,逐步走出普遍低迷的行情。与之相反的是,作为国产葡萄酒代表的茅台葡萄酒继续保持向上的战…

算法系列--BFS解决拓扑排序

💕"请努力活下去"💕 作者:Lvzi 文章主要内容:算法系列–算法系列–BFS解决拓扑排序 大家好,今天为大家带来的是算法系列--BFS解决拓扑排序 前言:什么是拓扑排序 拓扑排序–解决有顺序的排序问题(要做事情的先后顺序) …

《深入理解kafka-核心设计与实践原理》第三章:消费者

第三章:消费者 3.1 消费者与消费组 3.1.1 消费者(Consumer) 3.1.2 消费组(Consumer Group) 3.1.3 消息投递模式 3.2 客户端开发 3.2.1 必要的配置参数 3.2.2 订阅主题与分区 3.2.3 反序列化 3.2.4 消费消息 3.2.5 位移提交 3.2.5.1 offset 3.2.5.2 消费后的提交方式…

ANSYS许可分析方法

在工程设计与仿真领域,ANSYS软件凭借其强大的功能和卓越的性能,已成为了行业内的领导者。然而,随着业务的不断拓展和软件版本的升级,如何有效地分析和利用ANSYS许可证,确保仿真工作的顺利进行,已成为企业关…

JavaScript 常见的40个保留字大全!

你好,我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。 云桃桃 大专生,一枚程序媛,感谢关注。回复 “前端基础题”,可免费获得前端基础 100 题汇总,回复 “前端基础路线”,可获取完整web基础…