MYSQL数据库详解(6)-- 视图存储方式触发器

MYSQL数据库详解(6)

      • 视图
          • 特征:
          • 作用:
          • 创建视图
          • 使用视图
          • 删除视图
      • 存储过程 ***
          • 为什么使用存储过程
          • 定义:
          • 存储过程和函数的区别
          • 缺陷:
          • 创建存储过程
          • 使用存储过程
          • 环境变量 @ 局部环境变量 @@ 全局环境变量
          • 删除存储过程
          • 分页-- 存储过程分页 (**记住)
      • 触发器
          • 定义:
          • 语法:
          • 删除学生 (案例)
          • 存储过程和触发器的区别

视图

视图是从一个或者几个基本表(或视图)导出的表。它与基本表不同,是一个虚表。

特征:

1.视图不能做增删改,只能用来查询
2.使用的时候每次都会获取到最新的数据
3.不允许有重复的字段名
4.视图兼容性差,不能和数据库一起转储

作用:

1.简化查询
2.重写格式化数据
3.频繁访问数据库
4.过滤数据

创建视图

create view 视图名【view_xxx\v_xxx】 as 查询语句

create view v_stu_man as select * from student where ssex = '男';
使用视图
select  * from v_stu_man;
删除视图

drop view v_stu_man

存储过程 ***

特征:

1.是一种特殊的函数
2.可以有多个返回结果

为什么使用存储过程

1.业务流程复杂:业务复杂时,SQL语句相互依赖,顺序执行;

2.频繁访问数据库:每条SQL语句都需单独连接和访问数据库;

3.先编译后执行:SQL语句的执行需要先编译。

定义:

​ 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后,再次调用不需要重复编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。

存储过程和函数的区别

在这里插入图片描述

缺陷:

1.移植性:大多数关系型数据库的存储过程存在细微差异。

2.维护性:存储过程的维护成本高,修改调试较为麻烦。

3.协作性:没有相关的版本控制或者IDE,团队中对于存储过程的使用大多是依赖文档。

创建存储过程

CREATE PROCEDURE 存储过程名【proc_xxx】 (形参列表)
BEGIN
DECLARE 变量 变量类型
END

1.创建一个最简单的存储过程

delimiter $$  -- 定制定界符
create procedure proc_stu()
begin 
    select * from student;
end $$
delimiter ;  -- 恢复默认定界符
使用存储过程
call proc_stu();

2.带参的存储过程

delimiter $$
create procedure proc_test(
    in x int,					-- in  只入参
    out y int,				-- out 只出参
    inout z int				-- inout 出入参
)
begin 
    set x = x+1;
    set y = y+100;
    set z = z+1000;
end $$
delimiter ;
环境变量 @ 局部环境变量 @@ 全局环境变量
set @a = 1;      -- 2			
set @b = 2;      -- 102   2			
set @c = 3;      -- 1003* 3			

call proc_test(@a,@b,@c);
删除存储过程
drop procedure proc_test;
分页-- 存储过程分页 (**记住)
delimiter $$
create procedure proc_stupage(
    in curpage int,
    in sizepage int,
    out sumcount int,
    out sumpage int
)
begin
    DECLARE cp int;  -- 定义变量
    set cp = (curpage - 1)*sizepage;
    -- 总个数
    -- into一个数据付给变量
    select count(*) from student into sumcount; 
    -- 总页数
    set sumpage = ceiling(sumcount/sizepage);
    select * from student limit cp,sizepage;
end $$
delimiter ;

set @a = 2;
set @b = 3;
set @m = 0;
set @n = 0;
call proc_stupage(@a,@b,@m,@n);
select @m,@n;

触发器

定义:

​ 触发器是数据库中针对数据库表操作触发的特殊的存储过程

特征: 隐式执行

语法:

CREATE TRIGGER 触发器名【trig_xxx】
BEFORE/AFTER – 触发顺序
INSERT/UPDATE/DELETE – 触发事件
ON 数据库.表名 – 事件表
FOR EACH ROW
BEGIN
触发器内容 – 事件出发后要写的语句
END$$

删除学生 (案例)
delete from student where sid = 2;

select * from student;
select * from sc;

delimiter $$
create trigger trig_delstu_delsc
before delete on student for each row 
BEGIN
    -- old 已经存在的数据  new 还不存在
    delete from sc where sid = old.sid;
END $$
delimiter ;
存储过程和触发器的区别

1.语法:关键字不同,存储过程是procedure,触发器是trigger;

2.执行:存储过程需要调用才执行,触发器自动执行;

3.返回值:存储过程可以定义返回值,但是触发器没有返回值;

4.功能:存储过程是一组特定功能的SQL语句,触发器则是SQL语句前后执行,本身不影响原功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/347966.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

10个免费高质量视频素材网站,无版权,可商用。

推荐10个高清无水印视频素材网站,免费下载,无版权可商用,建议收藏起来! 1、菜鸟图库 https://www.sucai999.com/video.html?vNTYwNDUx 菜鸟图库虽然是个设计素材网站,但除了设计类素材之外还有很多视频、音频、办公类…

【Web前端实操13】实现100*100的盒子的阴影效果,阴影值自拟

相关知识点: 盒阴影 box-shadow 向框添加一个或多个阴影。 1 box-shadow: h-shadow v-shadow blur spread color inset; 值描述h-shadow必选,水平阴影的位置v-shadow必选,垂直阴影的位置blur可选,模糊距离spread可选&#xf…

AI伦理边界:探索人工智能伦理计算

大家好,近年学界与工业界都已开始关注并热议 AI 伦理治理问题,也在伦理规范研究上取得了初步进展。然而,由于 AI 伦理的抽象性,如何定量化度量智能系统的伦理,还是一个未知的难题。 李学龙教授团队在《中国科学&#…

差分进化算法求解基于移动边缘计算 (MEC) 的无线区块链网络的联合挖矿决策和资源分配(提供MATLAB代码)

一、优化模型介绍 在所研究的区块链网络中,优化的变量为:挖矿决策(即 m)和资源分配(即 p 和 f),目标函数是使所有矿工的总利润最大化。问题可以表述为: max ⁡ m , p , f F miner …

江大白 | 万字长文图解Numpy教程,看这一篇就够了!

本文来源公众号“江大白”,仅用于学术分享,侵权删,干货满满,有超级详细的图解。 原文链接:万字长文图解Numpy教程,看这一篇就够了! (qq.com) 以下文章来源于博客:Medium 作者&…

.zip 文件和 .tar.gz文件 的区别

tgz和zip两种压缩格式,其实这两个压缩文件里面包含的内容是一样的,只是压缩格式不一样. tar.gz格式的文件比zip文件要小不少。tar.gz压缩格式用于unix的操作系统, 而zip用于windows的操作系统,但在windows系统中WinRar工具同样可以解压缩tar.gz格式的。 扩展: z…

被困住了——如何从层级结构中获取子集

大家好,我是欧阳方超,我被一个问题困住了。 事情是这样的,与第三方平台对接时,第三方接口返回了一个具有层级结构的列表,比如下面这种结构: [{"id": 1,"name": "Root Category 1…

c++之说_9|自定义类型 struct

今天我这里下雪了 很冷 你哪里呢? 我们 来谈谈 自定义类型 这只是一个称呼 包含有 结构体(struct) 类(class) 共用体(union) 枚举(enum) 我们编程基本要常常与…

Flink问题解决及性能调优-【Flink不同并行度引起sink2es报错问题】

最近需求,仅想提高sink2es的qps,所以仅调节了sink2es的并行度,但在调节不同算子并行度时遇到一些问题,找出问题的根本原因解决问题,并分析整理。 实例代码 --SET table.exec.state.ttl86400s; --24 hour,默认: 0 ms …

对比损失函数

多看大佬的文章,总结的太好了! 善于利用工具:researchrabbit 所以应该是contrastive metric learning

美,英,法,德、意大利和西班牙的geojson,以及区域json

美,英,法,德、意大利和西班牙的geojson文件 json地址 https://pan.baidu.com/s/1nio1bV_j-jAEVqgEHXWsNw?pwdqwer#list/path/GEOJSON 感谢大佬提供的 大佬连接 大佬的知乎原地址 国内geojson获取工具地址 http://da![在这里插入图片描述](h…

【大数据】流处理基础概念(二):时间语义(处理时间、事件时间、水位线)

流处理基础概念(一):Dataflow 编程基础、并行流处理流处理基础概念(二):时间语义(处理时间、事件时间、水位线)流处理基础概念(三):状态和一致性模…

【并发】什么是 Future?

🍎个人博客:个人主页 🏆个人专栏:JAVA ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 关键特性和操作包括: 提交任务: 查询完成状态: 等待结果: 取消任务&#xff1a…

[linux] 域名解析失败案例定位 [Errno -2] Name or service not known

首先发现代码里这段运行报错: socket.gethostbyname_ex(host_name) Traceback (most recent call last): File “”, line 1, in socket.gaierror: [Errno -2] Name or service not known import socket host_name socket.gethostname() print(socket.gethostby…

搜索(3):双向BFS

对于一些问题我们使用普通BFS求解时,队列中最多会存在两层的搜索节点,搜索空间的上界取决于目标节点所在的搜索层次的深度所对应的宽度,一旦层数比较多,那可能会出现搜索爆炸的问题,双向BFS可以让我们不使用这么宽的搜…

Java Web(四)--JavaScript

介绍 JavaScript 教程 JavaScript 能改变 HTML 内容,能改变 HTML 属性,能改变 HTML 样式 (CSS),能完成页面的数据验证; JS 需要运行浏览器来解析执行JavaScript 代码; JS 是 Netscape 网景公司的产品&#xf…

HTML 炫酷进度条

下面是代码 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>Light Loader - CodePen</title><style> html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr…

1.25学习总结

今天学习了二叉树&#xff0c;了解了二叉树的创建和遍历的过程 今天所了解的遍历过程主要分为三种&#xff0c;前序中序和后序&#xff0c;都是DFS的想法 前序遍历&#xff1a;先输出在遍历左节点和右节点&#xff08;输出->左->右&#xff09; 中序遍历&#xff1a;先…

【mongoDB】下载与安装教程

目录 1. 下载 2.安装 3.启动 mangoDB是否启动成功 ? 1. 下载 官网地址&#xff1a;https://www.mongodb.com/try/download/community 2.安装 3.启动 在此输入命令操作数据库 mangoDB是否启动成功 ? 在浏览器访问&#xff1a;http://127.0.0.1:27017/ 出现该页面表示m…

注册表学习——注册表结构

简介&#xff1a;注册表是由很多项和值构成的。 HEKY_USERS&#xff08;HKU&#xff09; 主要保存默认用户及当前登录用户配置信息。 .DEFAULT 该项是针对未来创建的新用户所保存的默认配置项。 S-1-5-18等项 这些项叫作安全标识符&#xff08;SID&#xff09;用来表示Windows操…