MySQL中的视图和触发器
SQL 视图
1 ) 概述
- 在mysql中,视图是一个非真实存在的虚拟表
- 其本质是,根据sql语句获取动态的数据集,并为其命名
- 用户使用时只需使用名称,即可获取结果集,并可以将其当做表来使用
2 )用法示例
2.1 比较麻烦的sql
select*
from (select nid,name from tb1 where nid > 2) as A
whereA.name > 'alex'
2.2 使用视图简化以便后续可能得复用
- 上面子查询, 比较麻烦,可以考虑创建成视图
- 创建视图的示例
create view v1 as select nid,name from tb1 where nid > 2
- 使用视图
select * from v1;- 上面这句sql的本质是
select * from (select nid,name from tb1 where nid > 2) as v1
- 删除视图
drop view v1;
- 修改视图
alter view v1 as sql语句
- 需要注意的是
- 基于视图只能查询, 不能执行增加,修改,删除
- 如果源表发生变化,视图表也会发生变化
- 注意:视图在开发阶段实际使用的频率不是很高
SQL触发器
1 ) 概述
- 比如,数据库中有两张表(或多张表),程序需要对某张表操作的时候
- 同时需要对另一张表进行增加,删除,修改等操作,在这时候就可以使用触发器
- 触发器是存储在数据库里,程序就不用操作另外一张表了,直接在操作目标表
- 另外的一张表的同步可以交给你写的触发器
- 可以在各个场景中使用
2 )用法示例
2.1 插入前,插入后
-- 插入前
create trigger tri_before_insert_tb1 before insert on tb1 for each row
begin-- ... 这里写你的逻辑
end-- 插入后
create trigger tri_after_insert_tb1 after insert on tb1 for each row
begin-- ... 这里写你的逻辑
end
2.2 删除前,删除后
-- 删除前
create trigger tri_before_delete_tb1 before delete on tb1 for each row
begin-- ... 这里写你的逻辑
end-- 删除后
create trigger tri_after_delete_tb1 after delete on tb1 for each row
begin-- ... 这里写你的逻辑
end
2.3 更新前,更新后
-- 更新前
create trigger tri_before_update_tb1 before update on tb1 for each row
begin-- ... 这里写你的逻辑
end-- 更新后
create trigger tri_after_update_tb1 after update on tb1 for each row
begin-- ... 这里写你的逻辑
end
- 触发器里的
FOR EACH ROW是针对每一行的- 如果针对这张表每一行做操作,每一行都会触发一次触发器
- 比如,我有10行数据,在删除每一行的时候,都会触发这个触发器
- 删除触发器
drop trigger tri_after_insert_tb1;这里删除定义的一个触发器
3 )综合示例
- 场景:你的数据库中有两张表分别是 t1 和 t2 需要触发器
- 需求和触发器
- 在 t1 表插入数据之前,先在 t2 表中插入一行数据
delimiter $$ create trigger tri_before_insert_t1 before insert on t1 for each row beginif NEW.name = 'alex' theninsert into t2(name) values(NEW.name); -- NEW 是新插入的数据 end if;end $$ delimiter; - 在 t1 表中删除数据之后,再在t2表中插入一行数据
delimiter $$ create trigger tri_after_insert_t1 after delete on t1 for each row beginif OLD.name = 'alex' theninsert into t2(id, name) values(OLD.id, OLD.name); end if;end $$ delimiter; - 这里,
NEW是新数据,OLD是原数据
- 在 t1 表插入数据之前,先在 t2 表中插入一行数据
- 触发器在业务开发中用的不多,这些一般程序都能搞定
- 习惯上,能用程序方便搞定的,不用数据库自带的触发器
相关文章:
MySQL中的视图和触发器
SQL 视图 1 ) 概述 在mysql中,视图是一个非真实存在的虚拟表其本质是,根据sql语句获取动态的数据集,并为其命名用户使用时只需使用名称,即可获取结果集,并可以将其当做表来使用 2 )用法示例 2.1 比较麻烦…...
uView-UI v2.x常见问题整理
为了更好的给大家提供 uView UI 的技术支持,uView UI 团队整理常见问题文档,大家可以阅读查找常见的问题解决办法。 uView 2.x 文档 https://www.uviewui.com uView 1.x 文档 https://v1.uviewui.com uView UI uni-app 主页 DCloud 插件市场 uVie…...
MBTI职业性格测试 28题(免费版)
MBTI职业性格测试概述 MBTI是现在国际上最为流行的测试工具,利用MBTI职业性格测试,可以清楚地找到自己的性格特点以及兴趣爱好,方便于对职业进行规划、以及改善人际关系。其主要应用心理学常识对个性做出判断,提炼出动力、信息收…...
Springcloud 微服务实战笔记 Ribbon
使用 Configurationpublic class CustomConfiguration {BeanLoadBalanced // 开启负载均衡能力public RestTemplate restTemplate() {return new RestTemplate();}}可看到使用Ribbon,非常简单,只需将LoadBalanced注解加在RestTemplate的Bean上࿰…...
CSS基础笔记-04cascade-specificity-inheritance
CSS基础笔记系列 《CSS基础笔记-01CSS概述》《CSS基础笔记-02动画》CSS基础笔记-03选择器 前言 Cascading Style Sheets,关键就在于这个cascading,对于这个术语理解,感觉对于我这种CSS新手有点儿不太friendly。本文记录下我对这个术语的理…...
Spring应用的部署与管理
一、前言 部署是将开发好的应用发布到服务器上,使其能够被用户访问的关键步骤。Spring框架提供了灵活的部署选项,本文将介绍Spring应用的常见部署方式和一些建议,帮助开发者顺利将应用投放到生产环境。 二、传统部署方式:WAR包 传…...
B端产品经理学习-需求挖掘
B端产品需求挖掘 目录 识别和管理干系人 决策人和负责人需求挖掘 针对用户进行需求挖掘 用户访谈结果整理 B端产品的需求来源是非常复杂的,要考虑多个方面;如果你是一个通用性的产品,要考虑市场、自身优劣势、干系人。而定制型B端产品会…...
整数规划基本原理
1.1 定义 规划中的变量(部分或全部)限制为整数时,称为整数规划。若在线性规划模型中,变量限制为整数,则称为整数线性规划。目前所流行的求解整数规划的方法,往往只适用于整数线性规划。目前还没有一种方法…...
秋招复习之堆
目录 前言 堆 堆的常用操作 堆的实现(大根堆) 1. 堆的存储与表示 2. 访问堆顶元素 3. 元素入堆 4. 堆顶元素出堆 Top-k 问题 方法一:遍历选择 方法二:排序 方法三:堆 总结 前言 秋招复习之堆。 堆 「堆 heap…...
算法训练营Day36(贪心-重叠区间)
都算是 重叠区间 问题,大家可以好好感受一下。 都属于那种看起来好复杂,但一看贪心解法,惊呼:这么巧妙! 还是属于那种,做过了也就会了,没做过就很难想出来。 不过大家把如下三题做了之后&#…...
如何利用Oracle官方网站不登录账号下载和安装非最新版本的JDK(版本自由选择)
一、JDK概述 JDK(Java Development Kit)是Java开发工具集,是针对Java编程语言的软件开发环境。它包含了Java编译器、JRE(Java运行时环境)以及其他一些用于开发、调试和测试Java应用程序的工具,是Java开发人…...
税法相关的基础知识
文章目录 税法原则1.税法基本原则2.税法适用原则 来和大家聊聊税法相关的基础知识 税法原则 1.税法基本原则 2.税法适用原则...
ListNode 2487. 从链表中移除节点,单调栈的应用
一、题目 1、题目描述 给你一个链表的头节点 head 。 移除每个右侧有一个更大数值的节点。 返回修改后链表的头节点 head 。 2、接口描述 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nu…...
vue3中pdf打印问题处理
1 get请求参数问题 之前的请求是post得不到参数,今天发现的问题很奇怪,从前端进入网关,网关居然得不到参数。 前端代码 const print () > {let linkUrlStr proxy.$tool.getUrlStr(proxy.$api.invOrder.psiInvOrder.printSalOutstock,{a…...
如何向嵌入式设备中添加tcpdump工具
说明:tcpdump是一个在网络设备调试中一个非常重要的工具,它并不像hexdump等工具集成在busybox里面,也不像其他的软件一样只需要依赖linux标准的库就可以实现,它需要pcap相关的库和加密的相关库。 本文主要是基于realtek 83系列的…...
伦茨科技Apple Find My认证芯片-ST17H6x芯片
深圳市伦茨科技有限公司(以下简称“伦茨科技”)发布ST17H6x Soc平台。成为继Nordic之后全球第二家取得Apple Find My「查找」认证的芯片厂家,该平台提供可通过Apple Find My认证的Apple查找(Find My)功能集成解决方案。…...
uni-app 前后端调用实例 基于Springboot 数据列表显示实现
锋哥原创的uni-app视频教程: 2023版uniapp从入门到上天视频教程(Java后端无废话版),火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版),火爆更新中...共计23条视频,包括:第1讲 uni…...
python渗透工具编写学习笔记:10、网络爬虫基础/多功能编写
目录 前言 10.1 概念 10.2 调度器/解析器 10.3 存储器/去重器 10.4 日志模块 10.5 反爬模块 10.6 代理模块 前言 在渗透工具中,网络爬虫有着不可忽视的作用,它能够快速而精准的搜寻、提取我们所需要的信息并按照我们所需要的格式排列,…...
Python武器库开发-武器库篇之子域名扫描器开发(四十一)
Python武器库开发-武器库篇之子域名扫描器开发(四十一) 在我们做红队攻防或者渗透测试的过程中,信息收集往往都是第一步的,有人说:渗透的本质就是信息收集,前期好的信息收集很大程度上决定了渗透的质量和攻击面,本文将…...
通俗易懂的15个Java Lambda表达式案例
文章目录 1. **实现Runnable接口**:2. **事件监听器**(如Swing中的ActionListener):3. **集合遍历**(使用forEach方法):4. **过滤集合**(使用Stream API):5. …...
wan2.1-vae提示词评估体系:构建BLEU-Style指标量化中文提示词有效性
wan2.1-vae提示词评估体系:构建BLEU-Style指标量化中文提示词有效性 1. 为什么需要评估提示词质量 在AI图像生成领域,提示词的质量直接影响最终生成效果。好的提示词能准确表达创作意图,而模糊或不当的提示词可能导致生成结果与预期不符。特…...
Keepalived+Nginx+Tomcat 高可用项目集成 MySQL 数据库全记录
前言在之前的文章中,我搭建了基于 KeepalivedNginxTomcat 的高可用 Web 架构,实现了入口 VIP 漂移和反向代理。但这套架构还缺少“数据层”——所有服务都是无状态的,不能持久化数据。为了让项目更完整,我决定加入 MySQL 数据库&a…...
OpenClaw人人养虾:接入iMessage
此方案为旧版 iMessage 接入方式,仅适用于 macOS 且配置复杂。新用户请优先使用 BlueBubbles 方案,它更稳定且功能更丰富。 前置要求 macOS 12 Monterey 或更高版本(仅支持 macOS)已登录 Apple ID 并激活 iMessageHomebrew 包管…...
手把手教你用J-Link Commander设置仿真器序列号(2023最新版)
2023年J-Link仿真器序列号配置全指南:从入门到精通 第一次拿到J-Link仿真器时,很多开发者都会遇到一个看似简单却容易踩坑的问题——如何正确设置设备序列号。作为嵌入式开发中不可或缺的调试工具,J-Link仿真器的序列号不仅是设备身份标识&am…...
RWKV7-1.5B-g1a多语言生成能力展示:中英日韩混合提示词真实输出效果对比
RWKV7-1.5B-g1a多语言生成能力展示:中英日韩混合提示词真实输出效果对比 1. 模型简介与核心能力 rwkv7-1.5B-g1a是基于新一代RWKV-7架构开发的多语言文本生成模型,特别优化了中英日韩四种语言的混合处理能力。这个1.5B参数的版本在保持轻量化的同时&am…...
人血小板裂解液(hPL)与细胞治疗生产工具解析:Sexton产品应用综述【曼博生物官方代理Sexton】
摘要:人血小板裂解液(hPL)作为无动物源培养补充剂,正在逐步替代FBS应用于细胞与基因治疗(CGT)领域。本文结合相关产品体系,对hPL及细胞冻存与灌装系统进行系统梳理。 关键词:人血小板…...
SEO_资深运营的SEO外链建设核心技巧
<h2>SEO外链建设:资深运营的核心技巧解析</h2> <p>在当今数字营销的竞争激烈环境中,搜索引擎优化(SEO)外链建设是提升网站排名的关键因素之一。资深运营者在这一领域已经积累了丰富的经验,他们不仅仅…...
基于springboot框架的校园外卖管理系统的设计与实现
目录需求分析与功能规划技术选型与架构设计数据库设计与建模核心功能实现系统集成与测试部署与运维优化与扩展项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作需求分析与功能规划 明确校园外卖管理系统的核心需求,包…...
C++ 智能指针的底层实现逻辑
C智能指针的底层实现逻辑揭秘 在C开发中,内存管理一直是程序员需要谨慎处理的难题。传统裸指针容易导致内存泄漏、悬垂指针等问题,而智能指针通过自动化资源管理,显著提升了代码的安全性和可维护性。那么,智能指针是如何在底层实…...
PX4飞控系统深度解析:从模块化架构到自主飞行核心技术揭秘
PX4飞控系统深度解析:从模块化架构到自主飞行核心技术揭秘 【免费下载链接】PX4-Autopilot PX4 Autopilot Software 项目地址: https://gitcode.com/gh_mirrors/px/PX4-Autopilot 你是否曾好奇,一个开源飞控系统如何支撑从微型无人机到工业级无人…...
