当前位置: 首页 > news >正文

视图、存储过程、函数、触发器

1.视图

视图就是一张基于查询的虚拟表,里面定义的其实就是普通的SQL语句。如果一条复杂查询的SQL语句我们频繁的使用,就可以定义视图,方便操作。创建语法如下:

CREATE VIEW <视图名> AS <SELECT语句>

2.存储过程 

存储过程里面定义的SQL语句集合可以进行一些逻辑处理。比如,我们保存数据时,如果数据库里面有,则不插入,如果没有,则进行插入。这时就可以定义一个存储过程来完成整个逻辑功能。

IN表示输入参数,OUT表示输出参数,DECLARE表示定义变量,set表示改变值。

CREATE PROCEDURE saveUser(IN p_account VARCHAR(20),IN p_sex CHAR(1),OUT res_mark
INT)
BEGIN
DECLARE v_count INT DEFAULT 0;
SELECT COUNT(*) INTO v_count FROM t_user WHERE account = p_account;
IF v_count = 0 THEN
INSERT INTO t_user(account,sex)VALUES(p_account,p_sex);
SET res_mark = 0;
ELSE
SET res_mark = 1;
END IF;

3.函数

函数必须有返回值,里面可以定义流程控制语句。

CREATE FUNCTION checkUserType(p_type INT) RETURNS VARCHAR(4)
BEGIN
IF p_type = 0 THEN
RETURN '管理员';
ELSE
RETURN '业务用户';
END IF;

4.触发器 

 触发器不需要直接调用,而是在执行了增,删,改之后自动执行的存储过程。比如,我们需要在删除用户前,需要现删除用户所管理的菜单关系。

CREATE TRIGGER delete_user_menu BEFORE DELETE //表示在删除用户前触发
ON user //针对的是用户表
FOR EACH ROW
BEGIN
DELETE FROM user_menu WHERE user_id = old.id;//old表示要删除的用户数据
  • insert只会有new ,代表着要插入的新记录
  • delete只会有old ,代表着要删除的记录
  • update由于执行的是先删除旧的记录,再插入新的记录,因此new和old都会有,且含义上与上面的相同。

相关文章:

视图、存储过程、函数、触发器

1.视图 视图就是一张基于查询的虚拟表&#xff0c;里面定义的其实就是普通的SQL语句。如果一条复杂查询的SQL语句我们频繁的使用&#xff0c;就可以定义视图&#xff0c;方便操作。创建语法如下&#xff1a; CREATE VIEW <视图名> AS <SELECT语句> 2.存储过程 存…...

数学建模学习(10):遗传算法

遗传算法简介 • 遗传算法&#xff08;Genetic Algorithms&#xff09;是基于生物进化理论的原理发展起来的一种广为 应用的、高效的随机搜索与优化的方法。其主要特点是群体搜索策略和群体中个体之 间的信息交换&#xff0c;搜索不依赖于梯度信息。它是20世纪70年代初期由美国…...

私域流量整合:社群裂变的综合策略

在私域营销的风潮下&#xff0c;社群裂变已经成为许多企业实现增长的利器。然而&#xff0c;如何通过综合策略将社群裂变的影响力最大化&#xff0c;将成为私域流量整合的重要一环。本文将从新的角度探讨社群裂变的影响力策略&#xff0c;以及如何通过整合私域流量开辟新的增长…...

Redis的RDB持久化

Redis是一个键值对数据库服务器&#xff0c;服务器中通常包含着任意个非空数据库&#xff0c;而每个非空数据库中又可以包含任意个键值对&#xff0c;为了方便起见&#xff0c;我们将服务器中的非空数据库以及它们的键值对统称为数据库状态。 举个例子&#xff0c;下图展示了一…...

三、MySql表的操作

文章目录 一、创建表&#xff08;一&#xff09;语法&#xff1a;&#xff08;二&#xff09;说明&#xff1a; 二、创建表案例&#xff08;一&#xff09;代码&#xff1a;&#xff08;二&#xff09;说明&#xff1a; 三、查看表结构&#xff08;一&#xff09;语法&#xff…...

【模型加速部署】—— Pytorch自动混合精度训练

自动混合精度 torch. amp为混合精度提供了方便的方法&#xff0c;其中一些操作使用torch.float32&#xff08;浮点&#xff09;数据类型&#xff0c;而其他操作使用精度较低的浮点数据类型&#xff08;lower_precision_fp&#xff09;&#xff1a;torch.float16(half)或torch.…...

【Qt】信号槽的三种连接方式

【Qt】信号槽的三种连接方式 文章目录 【Qt】信号槽的三种连接方式1. 使用 ui 界面控件2. Qt4 的连接语法3. Qt5 的连接语法 Qt 的信号槽最初来源于函数回调&#xff0c;但注册回调函数有一定局限&#xff0c;安全性也没有保证。所以一定程度上可以说信号槽是对回调机制进行了封…...

Jtti:Ubuntu静态IP地址怎么配置

在 Ubuntu 中配置静态 IP 地址需要编辑网络配置文件。以下是在 Ubuntu 20.04 版本中配置静态 IP 地址的步骤&#xff1a; 打开终端&#xff0c;以管理员身份登录或使用 sudo 权限。 使用以下命令打开网络配置文件进行编辑&#xff1a; sudo nano /etc/netplan/00-installer-…...

iconfont 使用

官网地址 iconfont-阿里巴巴矢量图标库 常规操作&#xff1a;注册账号 首页 搜索想要的图片 加入购物车并添加项目没有就创建一个 在线生成链接 复制生成的css 在前端软件创建相关的wxss文件 全局 import "/static/iconfont/iconfont.wxss";page {height: 100%; }…...

基于java冰雪旅游服务网设计与实现

摘 要 随着2022年北京冬奥会的成功举办&#xff0c;在冬天进行冰雪运动已经逐渐流行起来&#xff0c;人们慢慢享受到了冰雪活动给大家带来的欢乐&#xff0c;除此之外人们的身体素质也可以得到提升。虽然已经有一部分人可以接受并享受在冰雪中进行运动&#xff0c;但大不部分人…...

django处理分页

当数据库量比较大的时候一定要分页查询的 在django中操作数据库进行分页 queryset models.PrettyNum.objects.all() #查询所有 queryset models.PrettyNum.objects.all()[0:10] #查询出1-10列 queryset models.PrettyNum.objects.filter(mobile__contains136)[0:10] …...

CI+JUnit5并发单测机制创新实践

目录 一. 现状问题 二. 分析原因 三. 采取措施 四. 实践步骤 五. 效能提升 资料获取方法 一. 现状问题 针对现如今高并发场景的业务系统&#xff0c;“并发问题” 终归是必不可少的一类&#xff08;占比接近10%&#xff09;&#xff0c;每次出现问题和事故后&#xff0c…...

蚁剑antSword-maste下载-安装-使用-一句话木马

下载 https://github.com/AntSwordProject/antSword 一句话木马 hack.php脚本 <?php eval($_POST[attack]);?> 安装 1、安装完成后启动 2、初始化&#xff0c;选择有源码的目录 3、连接...

[保研/考研机试] KY80 进制转换 北京大学复试上机题 C++实现

题目链接&#xff1a; KY80 进制转换https://www.nowcoder.com/share/jump/437195121691735660774 描述 写出一个程序&#xff0c;接受一个十六进制的数值字符串&#xff0c;输出该数值的十进制字符串(注意可能存在的一个测试用例里的多组数据)。 输入描述&#xff1a; 输…...

AP2915DC-DC降压恒流驱动IC LED电源驱动芯片 汽车摩托电动车灯

AP2915 是一款可以一路灯串切换两路灯串的降压 恒流驱动器,高效率、外围简单、内置功率管&#xff0c;适用于 5-80V 输入的高精度降压 LED 恒流驱动芯片。内置功 率管输出功率可达 12W&#xff0c;电流 1.2A。 AP2915 一路灯亮切换两路灯亮&#xff0c;其中一路灯亮可 以全亮&a…...

Android 实现无预览拍照功能

Android 实现无预览拍照功能 1.权限 需要相机、读写文件、悬浮窗权限 申请相机、读写文件 manifest.xml <uses-permission android:name"android.permission.CAMERA" /> <uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE…...

第一章-数据结构绪论

第一章-数据结构绪论 数据结构的起源和相关概念 数据结构是一门研究非数值计算的程序设计问题中的操作对象&#xff0c;以及它们之间的关系和操作等相关问题的学科。 程序设计的实质是选择一个好的结构&#xff0c;再设计一种好的算法。 数据&#xff1a;是描述客观事物的符…...

20、stm32使用FMC驱动SDRAM(IS42S32800G-6BLI)

本文将使用安富莱的STM32H743XIH板子驱动SDRAM 引脚连接情况 一、CubeMx配置工程 1、开启调试口 2、开启外部高速时钟 配置时钟树 3、开启串口1 4、配置MPU 按照安富莱的例程配置&#xff1a; /* ********************************************************************…...

git仓库大文件导致仓库体积增大处理

一、删除大文件 git filter-branch --tree-filter rm -rf path/to/large/file --prune-empty HEAD二、提交到远程 git push -f origin main PS&#xff1a;-f必须参数&#xff0c;强制刷新PS&#xff1a;git设计是为了存储代码&#xff0c;一般不将大文件上传到仓库...

将游戏坐标转化成屏幕鼠标坐标

将游戏坐标转化成屏幕鼠标坐标 思路说明&#xff1a;转化其实是取得两点的相对位置&#xff0c;例如将游戏人物移动到另外一个位置&#xff08;游戏人物初始位置坐标到目的位置坐标&#xff09;&#xff0c;鼠标需要移动到屏幕的某个位置。算出游戏的移动距离&#xff0c;游戏…...

链开源免费的WPS AI 软件 察元AI文档助手:路 013:shouldUsePlainDocumentPipeline 与批注类动作分流

链路 013&#xff1a;shouldUsePlainDocumentPipeline 与批注类动作分流 总体链路图 下图在全系列各篇保持一致&#xff0c;仅通过高亮样式标示本篇所覆盖的环节&#xff1b;箭头表示主成功路径&#xff0c;点线为异常或可选路径。阅读任意一篇时都应能回到本图定位&#xff…...

php内核 内核后门防护、代码执行拦截底层加固

一个直接能落地的“防后门 拦截代码执行”方案。先说结论&#xff1a;最佳方式不是只改一个点&#xff0c;而是 4 层一起上&#xff1a;编译裁剪层 内核拦截层 运行时策略层 系统隔离层。 单点防护一定会漏。---一、先讲大白话&#xff1a;后门最…...

【独家内测数据】Copilot Next 启动耗时从2.8s压至0.41s:3步完成工作流自动化重构(附可复用JSON Schema模板)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Copilot Next 自动化工作流性能调优全景概览 Copilot Next 并非传统代码补全工具的简单升级&#xff0c;而是基于实时上下文感知、多模态意图理解与动态工作流编排能力构建的智能协同引擎。其性能表现…...

Java 25虚拟线程调度突然卡顿?5步精准诊断法(含jcmd+AsyncProfiler+VirtualThreadMonitor三工具联动脚本)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Java 25虚拟线程资源调度优化 Java 25 引入了对虚拟线程&#xff08;Virtual Threads&#xff09;调度器的深度重构&#xff0c;核心在于将平台线程&#xff08;Platform Thread&#xff09;与虚拟线程…...

别再只用js-audio-recorder录音了!结合WaveSurfer.js,给你的Vue项目加个酷炫音频波形图

在Vue中打造专业级音频应用&#xff1a;js-audio-recorder与WaveSurfer.js的深度整合 当我们需要在Web应用中实现音频录制功能时&#xff0c;js-audio-recorder确实是一个简单易用的选择。但如果你想让你的音频应用脱颖而出&#xff0c;仅靠基础功能远远不够。想象一下&#xf…...

别再截图了!用Python爬虫+LabelImg,半小时搞定YOLOv5自定义数据集(附完整代码)

半小时构建YOLOv5机械臂抓取数据集&#xff1a;爬虫LabelImg自动化实战 在机械臂抓取任务中&#xff0c;仿真环境下的目标检测是关键技术瓶颈。传统的数据集构建方法需要人工截图、逐张标注&#xff0c;耗费数小时甚至数天时间。本文将揭示一套工业级解决方案&#xff1a;通过定…...

基于状态机与YAML的AI工作流自动化:AWF CLI工具深度解析

1. 项目概述&#xff1a;一个为AI工作流而生的Go语言命令行工具 如果你和我一样&#xff0c;日常工作中需要频繁地与Claude、Gemini、Codex这些AI模型打交道&#xff0c;并且厌倦了在终端、脚本和API调用之间来回切换&#xff0c;那么今天聊的这个工具可能会让你眼前一亮。 aw…...

NSC_BUILDER:3个维度解析Switch游戏文件管理工具的架构哲学与效率革命

NSC_BUILDER&#xff1a;3个维度解析Switch游戏文件管理工具的架构哲学与效率革命 【免费下载链接】NSC_BUILDER Nintendo Switch Cleaner and Builder. A batchfile, python and html script based in hacbuild and Nuts python libraries. Designed initially to erase title…...

Material Design Lite图片优化:提升网页性能的终极指南

Material Design Lite图片优化&#xff1a;提升网页性能的终极指南 【免费下载链接】material-design-lite Material Design Components in HTML/CSS/JS 项目地址: https://gitcode.com/gh_mirrors/ma/material-design-lite Material Design Lite是一个轻量级的前端框架…...

告别网盘限速:LinkSwift直链下载助手完整指南

告别网盘限速&#xff1a;LinkSwift直链下载助手完整指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 / 迅…...