MySQL 视图 存储过程与存储函数

第十四章_视图、第十五章 _存储过程与存储函数

1.常见的数据库对象

1. 表(Table)

用于存储结构化数据的基本对象,由行(记录)和列(字段)组成。

2. 视图(View)

基于一个或多个表的虚拟表,用于简化查询或提供特定数据的视图,不存储实际数据

3. 索引(Index)

用于加速查询和数据检索的数据库对象,常用于优化性能

4. 主键(Primary Key)

唯一标识表中每一行记录的约束,值必须唯一且非空。

5. 外键(Foreign Key)

用于建立表与表之间的关系,引用另一个表的主键。

6. 触发器(Trigger)

在特定事件(如插入、更新或删除)发生时自动执行的存储过程。

7. 存储过程(Stored Procedure)

一组预编译的SQL语句,用于执行复杂的业务逻辑。

8. 函数(Function)

类似于存储过程,但必须返回一个值,通常用于计算或转换。

9. 序列(Sequence)

用于生成唯一的数值,通常用于主键的自动生成。

10. 模式(Schema)

数据库对象的逻辑分组,用于组织和管理表、视图、索引等对象。

11. 同义词(Synonym)

数据库对象的别名,用于简化引用。

12. 用户(User)

数据库的账户,用于管理权限和访问控制。

13. 角色(Role)

权限的集合,用于简化权限管理。

14. 事务(Transaction)

一组SQL语句的逻辑单元,用于保证数据的一致性和完整性。

15. 日志(Log)

记录数据库操作历史的系统对象,用于恢复和审计。

2.视图

2.1 为什么要使用视图

视图可以控制用户访问的数据范围。防止用户看到不该看到的敏感信息

某些数据库支持 物化视图(Materialized View),它会将视图的数据物理存储在磁盘上,从而提高查询性能。

2.2视图的本质

  • 一个存储好的select语句

  • 本身是一个虚拟表,不存储数据

  • 对视图中select语句中涉及到的表,称为基表

  • 针对视图做DML操作,会影响对应的基表中的数据,反之亦然

  • 试图本身的删除,不会导致基表中数据的删除

  • 视图的应用场景: 针对于小型项目,不推荐使用视图.针对于大型项目,可以考虑使用视图

3.总结

3.1视图优点:

  1. 操作简单,简化了开发人员对数据库的操作

  2. 减少数据冗余

  3. 数据安全,视图具有隔离性

  4. 适应灵活多变的需求

3.2视图不足

如果实际数据表变更,我们就需要对相应的视图进行相应的 维护


1.存储过程概述

1.1理解

自定义函数(没有返回值)

1.2 创建存储过程

create procedure how_mgr_name2(in emp_name varchar(20),out mgr_name varchar(20))
begin
select emps.last_name into mgr_name
from emps
where emps.employee_id = (select manager_id from emps where last_name = emp_name);
end ;

1.3调用存储过程

call show_mgr_name2('Abel',@mgr_name);
select @mgr_name;

1.4删除存储过程

drop procedure show_mgr_name2;

2.存储函数的使用

2.1语法规则

CREATE FUNCTION 函数名(参数名 参数类型,...)
RETURN 返回值类型
[characteristics ...]
BEGIN   函数体 #函数体中肯定有RETURN语句
END;

说明:

  • 参数列表: 指定参数为IN,OUT只对procedure是合法的,存储函数只允许传入数据

  • RETURN type语句表示函数返回值数据的类型

  • 如果函数体只有一行SQL语句,则可以省略begin end

2.2代码举例

3.区别

是否必须返回值必须返回一个值可以返回多个值,也可以不返回值
调用方式嵌套在 SQL 语句中调用(select)独立调用,使用 CALL
用途数据处理、计算事务管理、复杂逻辑
参数支持仅支持 IN 参数支持 INOUTINOUT 参数

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Chrome_60.0.3112.113_x64 单文件版 下载

单文件,免安装,直接用~ Google Chrome, 免費下載. Google Chrome 60.0.3112.113: Chrome 是 Google 開發的網路瀏覽器。它的特點是速度快,功能多。 下载地址: https://blog.s3.sh.cn/thread-150-1-1.htmlhttps://blog.s3.sh.cn/thread-150-1-1.html

CTFshow—文件包含

Web78-81 Web78 这题是最基础的文件包含,直接?fileflag.php是不行的,不知道为啥,直接用下面我们之前在命令执行讲过的payload即可。 ?filephp://filter/readconvert.base64-encode/resourceflag.php Web79 这题是过滤了php,…

python学opencv|读取图像(二十九)使用cv2.getRotationMatrix2D()函数旋转缩放图像

【1】引言 前序已经学习了如何平移图像,相关文章链接为: python学opencv|读取图像(二十七)使用cv2.warpAffine()函数平移图像-CSDN博客 在此基础上,我们尝试旋转图像的同时缩放图像。 【2】…

24下半年软考「单独划线」合格标准已公布!

2024年下半年计算机技术与软件专业技术资格考试单独划线地区合格标准已公布! 其中初级和中级单独划线地区合格标准各科目均为39分,高级各科目为40分,符合单独划线地区的同学可以去申请证书了。 一、证书效力 在单独划线地区报名参加相关职业…

Linux第一课:c语言 学习记录day06

四、数组 冒泡排序 两两比较,第 j 个和 j1 个比较 int a[5] {5, 4, 3, 2, 1}; 第一轮:i 0 n:n个数,比较 n-1-i 次 4 5 3 2 1 // 第一次比较 j 0 4 3 5 2 1 // 第二次比较 j 1 4 3 2 5 1 // 第三次比较 j 2 4 3 2 1 5 // …

前端用json-server来Mock后端返回的数据处理

<html><body><div class"login-container"><h2>登录</h2><div class"login-form"><div class"form-group"><input type"text" id"username" placeholder"请输入用户名&q…

是德科技M9010A PXIe 机箱+M9037A模块,台式应用的理想之选

Keysigh是德科技M9010A PXIe 机箱M9037A模块 M9010A PXIe 10 插槽 Gen 3 机箱提供***的灵活性、兼容性和性能&#xff0c;而且外形更小巧&#xff0c;是台式应用的理想之选。它拥有 8 个 PXIe 混合插槽&#xff0c;使系统设计人员能够更灵活地混合和搭配 PXIe 和混合兼容模块的…

【算法刷题】leetcode hot 100 滑动窗口

文章目录 3. 无重复字符的最长子串438. 找到字符串中所有字母异位词总结 3. 无重复字符的最长子串 leetcode&#xff1a;https://leetcode.cn/problems/longest-substring-without-repeating-characters/?envTypestudy-plan-v2&envIdtop-100-liked 滑动窗口 &#xff0…

企业级PHP异步RabbitMQ协程版客户端 2.0 正式发布

概述 workerman/rabbitmq 是一个异步RabbitMQ客户端&#xff0c;使用AMQP协议。 RabbitMQ是一个基于AMQP&#xff08;高级消息队列协议&#xff09;实现的开源消息组件&#xff0c;它主要用于在分布式系统中存储和转发消息。RabbitMQ由高性能、高可用以及高扩展性出名的Erlan…

基于SpringBoot的洗浴管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

直流无刷电机控制(FOC):电流模式

目录 概述 1 系统框架结构 1.1 硬件模块介绍 1.2 硬件实物图 1.3 引脚接口定义 2 代码实现 2.1 软件架构 2.2 电流检测函数 3 电流环功能实现 3.1 代码实现 3.2 测试代码实现 4 测试 概述 本文主要介绍基于DengFOC的库函数&#xff0c;实现直流无刷电机控制&#x…

51单片机——串口通信(重点)

1、通信 通信的方式可以分为多种&#xff0c;按照数据传送方式可分为串行通信和并行通信&#xff1b; 按照通信的数据同步方式&#xff0c;可分为异步通信和同步通信&#xff1b; 按照数据的传输方向又可分为单工、半双工和全双工通信 1.1 通信速率 衡量通信性能的一个非常…

oracle位运算、左移右移、标签算法等

文章目录 位运算基础与或非同或同或应用场景 异或异或应用场景 什么是真值表 oracle基础函数创建bitor(按位或)函数bitnot(按位非)函数bitxor(按位异或)函数左移函数BITSHIFT()函数(实测不可用&#xff0c;废弃掉该方案)右移函数(略&#xff0c;有此场景吗?) 实际应用资质字典…

VS2015 + OpenCV + OnnxRuntime-Cpp + YOLOv8 部署

近期有个工作需求是进行 YOLOv8 模型的 C 部署&#xff0c;部署环境如下 系统&#xff1a;WindowsIDE&#xff1a;VS2015语言&#xff1a;COpenCV 4.5.0OnnxRuntime 1.15.1 0. 预训练模型保存为 .onnx 格式 假设已经有使用 ultralytics 库训练并保存为 .pt 格式的 YOLOv8 模型…

python无需验证码免登录12306抢票 --selenium(2)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 [TOC](python无需验证码免登录12306抢票 --selenium(2)) 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 就在刚刚我抢的票&#xff1a;2025年1月8日…

本地手集博客id“升级”在线抓取——简陋版——(2024年终总结1.1)

我之前每每发布笔记都用csv纯文本记录&#xff0c;一个机缘巧得文章列表api实现在线整理自已的文章阅读量数据。 (笔记模板由python脚本于2025年01月10日 18:48:25创建&#xff0c;本篇笔记适合喜欢钻牛角尖的coder翻阅) 【学习的细节是欢悦的历程】 Python官网&#xff1a;htt…

工业 4G 路由器赋能远程医疗,守护生命线

在医疗领域&#xff0c;尤其是偏远地区的医疗救治场景中&#xff0c;工业 4G 路由器正发挥着无可替代的关键作用&#xff0c;宛如一条坚韧的 “生命线”&#xff0c;为守护患者健康持续赋能。 偏远地区医疗资源相对匮乏&#xff0c;常常面临着专业医生短缺、诊疗设备有限等困境…

【python基础——异常BUG】

什么是异常(BUG) 检测到错误,py编译器无法继续执行,反而出现错误提示 如果遇到错误能继续执行,那么就捕获(try) 1.得到异常:try的执行,try内只可以捕获一个异常 2.预案执行:except后面的语句 3.传入异常:except … as uestcprint(uestc) 4.没有异常:else… 5.鉴定完毕,收尾的语…

Nginx入门笔记

Nginx入门笔记 一、Nginx基本概念二、代理1、正向代理2、反向代理 三、准备工作1、CentOS 7安装nginx&#xff08;1&#xff09;. 安装必要的依赖&#xff08;2&#xff09;下载nginx&#xff08;3&#xff09;编译安装&#xff08;4&#xff09;编译并安装 Nginx(5)启动nginx …

半导体数据分析: 玩转WM-811K Wafermap 数据集(一) AI 机器学习

在半导体行业&#xff0c;工程师依靠 CP Yield&#xff08;生产过程中芯片的合格率&#xff09;、WAT&#xff08;晶圆验收测试&#xff09;和 Particle 的晶圆图模式来识别工艺问题。然而&#xff0c;在没有人工干预的情况下将这些晶圆图模式分类是一项重大挑战。许多论文都研…