MySQL了解视图View (视图篇 一)

视图View是什么?

MySQL的视图是一种虚拟表,它是基于一个或多个表的查询结果构建而成的。视图并不实际存储数据,而是根据定义的查询逻辑动态生成结果。

-----------------------------------

视图的特点:

- 虚拟表:视图本身不存储数据,而是通过查询操作动态生成结果。

- 可以使用多个表:视图可以基于一个或多个表进行查询,可以包含复杂的逻辑和条件。

- 可以嵌套:视图可以嵌套使用,一个视图可以作为另一个视图的查询源。

- 可以进行数据过滤:视图可以定义查询条件,只返回满足条件的数据。

- 可以进行数据重命名:视图可以对查询结果进行列名和表名的重命名,提高查询结果的可读性。

-----------------------------------

视图的作用:

- 简化复杂查询:通过创建视图,可以将复杂的查询逻辑封装起来,简化对数据的查询操作。

- 数据安全性:通过视图,可以限制用户对数据的访问权限,只暴露必要的数据给用户,提高数据的安全性。

- 数据抽象:通过视图,可以将数据的细节隐藏起来,只暴露给用户需要的信息,提供更高层次的数据抽象。

- 数据重用:通过创建视图,可以将常用的查询逻辑封装起来,方便在多个地方重用,提高开发效率。

-----------------------------------

实例介绍

假设我们有一个名为employees的表,包含员工的id、姓名、工资、部门等信息。我们可以基于这个表创建各种不同的视图,来展示员工信息的不同方面。

1、简化复杂查询:

我们需要经常查询某个部门中工资最高的员工信息。

--  创建一个视图

create view highest_salary_employees as

select * from employees

where salary = (select max(salary) from employees); 

-- 通过这个视图,直接查询工资最高的员工信息,而无需每次编写复杂的子查询

select * from highest_salary_employees ;

2. 数据安全性:

假设我们希望限制某些用户只能查看自己所在部门的员工信息

-- 创建一个名为的视图

create view department_employees as

select * from employees

where department = '销售部';

-- 通过这个视图,该用户只能查看自己所在部门的员工信息,提高了数据的安全性

select * from  department_employees;

3. 数据抽象:

假设我们需要向用户展示员工信息,但不希望暴露敏感的工资信息。

-- 创建视图

create view public_employees as

select id, name, department

from employees;

-- 通过视图,我们只暴露了员工的id、姓名和部门信息,对工资等敏感信息进行了抽象。

select * from public_employees;

4. 数据重用:

假设我们需要在多个查询中使用某个特定的员工子集。

-- 创建视图

create view sales_employees as

select * from employees

where department = '销售部门';

-- 通过视图,可以在不同的查询中重用销售部门的员工信息,提高了数据的重用性和查询效率(下面只是简单查询,实际应该复杂)

select * from sales_employees;

下一篇:MySQL 视图View的SQL语法和更新(视图篇 二)

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

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

相关文章

SpringMVC-Rest风格

一、简介 REST(Representational State Transfer),表现形式状态转换,它是一种软件架构风格 当我们想表示一个网络资源的时候,可以使用两种方式: 传统风格资源描述形式 http://localhost/user/getById?id1 查询id为1的用户信息…

华为centos7服务器中安装python3.10.13 脚本方式安装或手动安装

一条命令搞定在centos7.9服务器中的python3.10.13的安装 【2023年9月27日】 因为华为服务器中的centos7.9版本的自带python2.7 和python 3.6版本 需求:在服务器中安装python3.10.13版本【稳定版本】 并且安装最新版本的pip 注意: 1这里会使用到华为的镜…

高仿互站网多套模板完整源码

高仿互站网 后台手机端两套模板 电脑端二十套模版,简单介绍几个功能, 支持用户注册开店 开店申请,支持用户发布自己商品 支持卡密形式或实物形式, 支持用户自己发布求助 任务大厅功能,源码完整 更多功能自己去发现吧…

iTOP-RK3588开发板体验RKNN_DEMO

RKNN 是 Rockchip NPU 平台(也就是开发板)使用的模型类型,是以.rknn 结尾的模型文件。 RKNN SDK 提 供 的 demo 程 序 中 默 认 自 带 了 RKNN 模 型 , 在 RKNN SDK 的 examples/rknn_yolov5_demo/model/RK3588/目录下,如下图所示&#xff…

ReactPortals传送门

ReactPortals传送门 React Portals提供了一种将子节点渲染到父组件以外的DOM节点的解决方案&#xff0c;即允许将JSX作为children渲染至DOM的不同部分&#xff0c;最常见用例是子组件需要从视觉上脱离父容器&#xff0c;例如对话框、浮动工具栏、提示信息等。 描述 <div&…

爬取北京新发地当天货物信息并展示十五天价格变化(三)---获取物品十五天内的价格

。。。。。。。。。。。。。。。。。。。。。。 1.网页请求一下内容2.通过爬虫进行请求3.获取商品十五天详细数据并绘制折线图4.项目详细代码 1.网页请求一下内容 通过抓包我们发现一共七个参数 limit: 20 # 一页多少数据 current: …

PHP基于原生GD库, 获取图片中文字颜色, 匹配稀有度

PHP基于原生GD库, 获取图片中文字颜色, 匹配稀有度 一&#xff0c;获取文字颜色部分 如果背景有渐变色就不是很准&#xff0c; 如果对颜色没有特殊要求&#xff0c;建议使用调整图片对比度 二&#xff0c; 匹配对应的稀有度数据 这块不是很重要根据自己情况调整 /*** 根据文字…

Python计算巴氏距离

Python计算巴氏距离 巴氏距离简介 在统计中&#xff0c;巴氏距离&#xff08;Bhattacharyya Distance&#xff09;测量两个离散或连续概率分布的相似性。它与衡量两个统计样品或种群之间的重叠量的巴氏系数密切相关。巴氏距离和巴氏系数以20世纪30年代曾在印度统计研究所工作…

大麦订单截图生成 大麦一键生成订单截图

新版大麦订单生成 图样式展示 这个样式图就是在大麦生成完的一个订单截图&#xff0c;它的状态是等待卖家发货 后台一键生成&#xff0c;独立后台管理 教程&#xff1a;修改conf数据库账号密码 不会的可以看源码里有搭建教程 下载程序&#xff1a;https://pan.baidu.com/…

[论文笔记]MacBERT

引言 今天带来MacBERT的阅读笔记。论文题目是 重新审视中文自然语言处理的预训练模型。 本篇主要是探讨中文预训练语言模型在非英文语言中的有效性,然后提出了一种简单而有效的模型,称为MacBERT,它在多个方面改进了RoBERTa,特别是采用纠错型掩码语言模型(MLM as correcti…

Android widget 小部件使用指南强化版

Android widget 小部件使用指南强化版 一、简单UI的小部件二、含集合的小部件三、可配置的小部件四、可控制的小部件五、Android 12 Widget 更新 小部件是主屏幕定制的一个重要方面。您可以将它们视为应用程序最重要的数据和功能的“概览”视图&#xff0c;这些数据和功能可以直…

提取多个txt数据并合成excel——例子:与中国建交的国家

提取多个txt数据并合成excel——例子&#xff1a;与中国建交的国家 一、概要二、整体架构流程三、完整代码 一、概要 这段代码主要执行以下任务&#xff1a; 1. 定义辅助函数&#xff1a;首先&#xff0c;定义了两个辅助函数。has_chinese_chars函数用于检查给定的字符串中是否…

如何在 Elasticsearch 中使用 Openai Embedding 进行语义搜索

随着强大的 GPT 模型的出现&#xff0c;文本的语义提取得到了改进。 在本文中&#xff0c;我们将使用嵌入向量在文档中进行搜索&#xff0c;而不是使用关键字进行老式搜索。 什么是嵌入 - embedding&#xff1f; 在深度学习术语中&#xff0c;嵌入是文本或图像等内容的数字表示…

vue2和vue3拖拽移动div

直接上代码&#xff0c;代码可以直接运行&#xff0c; vue2拖拽移动div&#xff1a; <template><divref"draggable"mousedown"dragStart"mousemove"drag"mouseup"dragEnd"style"width:100px;height:100px;background-c…

使用GDIView排查GDI对象泄漏导致的程序UI界面绘制异常问题

目录 1、问题说明 2、初步分析 3、查看任务管理器&#xff0c;并使用GDIView工具分析 4、GDIView可能对Win10兼容性不好&#xff0c;显示的GDI对象个数不太准确 5、采用历史版本比对法&#xff0c;确定初次出现问题的时间点&#xff0c;并查看前一天的代码修改记录 6、将…

【面试高高手】 —— Java集合篇(23题)

文章目录 1.Java中常见集合有哪些 &#xff1f;2. 说说你对Java集合是怎么理解的&#xff1f;3.请你说一下List&#xff0c;Set&#xff0c;Map三者的特点是 &#xff1f;4.在实际开发过程中如何更好的选择集合 &#xff1f;5. ArrayList和Vector区别 &#xff1f;6. ArrayList…

[HD2006.X1] 打印图形(菱形换壳)——海淀区赛

题目描述 由键盘输入 N N N &#xff0c;按一定的规律打印图形&#xff08;见输出样例&#xff09;。 输入格式 一个整数 N N N&#xff08;其中 3 ≤ N ≤ 21 3≤N≤21 3≤N≤21 &#xff09;&#xff0c; N N N 为奇数。 输出格式 如题中所描述的图形 样例 #1 样例…

Java之线程的详细解析二

2.线程同步 2.1卖票【应用】 案例需求 某电影院目前正在上映国产大片&#xff0c;共有100张票&#xff0c;而它有3个窗口卖票&#xff0c;请设计一个程序模拟该电影院卖票 实现步骤 定义一个类SellTicket实现Runnable接口&#xff0c;里面定义一个成员变量&#xff1a;privat…

MySQL架构 InnoDB存储引擎

1. 什么是Mysql&#xff1f; 我们在开发的时候&#xff0c;我们都需要对业务数据进行存储&#xff0c;这个时候&#xff0c;你们就会用到MySQL、Oracal等数据库。 MySQL它是一个关系型数据库&#xff0c;这种关系型数据库就有Oracal、 MySQL&#xff0c;以及最近很火的PgSQL等。…

9月24日回顾

1.微程序控制器的组成&#xff1a;指令译码器、微地址寄存器&#xff08;输出和暂存控制信息&#xff09;&#xff0c;时序电路、最核心的部件是控制存储器&#xff08;只读ROM组成&#xff09;—用来存储微指令 2.突发读写&#xff1a;比如说突发地址为8&#xff0c;那么只需…