Mysql视图应用

news2024/11/29 2:49:31

在这里插入图片描述
现在,我们将创建一个视图,将员工的姓名、部门和工资信息组合在一起。

CREATE VIEW EmployeeSalaryView AS
SELECT e.FirstName, e.LastName, e.Department, s.MonthlySalary
FROM Employees e
JOIN Salary s ON e.EmployeeID = s.EmployeeID;

通过这个视图,我们可以轻松地获取员工的姓名、部门和工资信息,而不必编写复杂的联接查询。

下面是通过查询视图获得的结果:

SELECT * FROM EmployeeSalaryView;

结果如下:

在这个例子中,我们创建了一个视图(EmployeeSalaryView),它将员工表和工资表联接起来,并返回了员工的姓名、部门和工资信息。通过查询视图,我们可以方便地获取这些信息。

至少,写第一次复杂的查询sql 放到视图里了,以后对于不同的复杂查询,可以减少第二次 三次…写复杂sql的过程。

一次费事,方便多次。

这个例子展示了视图的好处:

隐藏底层数据表:外部程序无需了解实际的数据结构,只需要访问视图即可获取所需信息。
只读访问:外部程序无法通过视图直接修改数据,保证数据的完整性和安全性。
重用 SQL 语句:通过创建视图,复杂的联接查询被封装在视图中,外部程序可以直接访问视图以获取所需的数据。
数据格式化:视图可以返回与实体数据表不同的数据格式,例如在这个例子中,将员工表和工资表联接并返回一个包含员工姓名、部门和工资的结果集。

这个例子只是一个简单的演示,实际应用中,视图可以用于更复杂的查询和数据处理需求。

(1)设计视图
1) 建立一个名为V_CX_ZG的视图,功能是从职工信息表中查询非汉族的职工记录,并按出生日期排序。(该视图用于“固定条件查询”功能)
MYSQL>CREATE OR REPLACE VIEM V_CX_ZG AS SELECT NATIONAL,BRITH FROM EMPLOYEE WHERE NATIONAL NOT IN('汉') GROUP BY BRITH;
MYSQL>SELECT * FROM V_CX_ZG;

2) 建立一个名为V_CX_GZ的视图,功能是从工资档案表中查询岗位工资和补贴都高于500元的记录,要求显示出部门名称、姓名、性别、职称、基本工资、岗位工资、补贴和奖金,并按部门和基本工资的降序排列。(该视图用于“固定条件查询”功能)
MYSQL>CREATE OR REPLACE VIEW V_CX_GZ AS SELECT A.DEPARTMENT_NAME,A.EMPLOYEE_NAME,A.GENDER,A.TITLE,B.BASIC_WAGE,B.POST_WAGE,B.SUBSIDIES,B.FUND FROM EMPLOYEE A LEFT JOIN WAGE B ON (A.EMPLOYEE_ID=B.EMPLOYEE_ID)  WHERE (B.POST_WAGE >500) AND (B.SUBSIDIES >500);
MYSQL>SELECT * FROM V_CX_GZ;


3) 建立一个所有职工工资统计视图V_ZGGZTJ,计算所有人员的基本工资的总和、平均值、最大值和最小值。(该视图用于“数据统计”功能)
MYSQL>CREATE OR REPLACE VIEW V_ZGGZTJ AS SELECT SUM(BASIC_WAGE),AVG(BASIC_WAGE),MAX(BASIC_WAGE),MIN(BASIC_WAGE) FROM WAGE;
MYSQL>SELECT * FROM V_ZGGZTJ;

4) 建立一个各部门人数统计的视图V_BMTJ,功能是从职工信息表中统计各部门的人数。(该视图用于“数据统计”功能)
MYSQL>CREATE OR REPLACE VIEW V_BMTJ AS SELECT DEPARTMENT_NAME,COUNT(DEPARTMENT_ANEM) FROM EMPLOYEE GROUP BY DEPARTMENT_NAME;
MYSQL>SELECT * FROM V_BMTJ;

5) 建立一个各类职称人数统计的视图V_ZCTJ,功能是从职工信息表中统计各类职称的人数。(该视图用于“数据统计”功能)
MYSQL>CREATE OR REPLACE VIEW V_ZCTJ AS SELECT TITLE,COUNT(TITLE) FROM EMPLOYEE GROUP BY TITLE;
MYSQL>SELECT * FROM V_ZCTJ;

6) 建立一个各民族人数统计的视图V_MZTJ,功能是从职工信息表中统计各民族的人数。(该视图用于“数据统计”功能)
MYSQL>CREATE OR REPLACE VIEW V_MZTJ AS SELECT NATIONAL,COUNT(NATIONAL) FROM EMPLOYEE GROUP BY NATIONAL;
MYSQL>SELECT * FROM V_MZTJ;

7)建立一个职工工资视图V_ZGGZ,功能是从职工信息、工资档案和工资发放三个表中查询所有职工的工资情况,其中包括部门名、姓名、性别、职称、基本工资、岗位工资、补贴、奖金、应得工资、其他加、其他扣、实发工资、发放日期。(其中:应得工资=基本工资+岗位工资+补贴+奖金+其他加;实发工资=基本工资+岗位工资+补贴+奖金+其他加-其他扣。)(该视图用于“选择条件查询”功能)
内部查询
MYSQL>CREATE OR REPLACE VIEW V_ZGGZ AS SELECT EMPLOYEE.DEPARTMENT_NAME,EMPLOYEE.EMPLOYEE_NAME,EMPLOYEE.GENDER,EMPLOYEE.TITLE,WAGE.BASIC_WAGE,WAGE.POST_WAGE,WAGE.SUBSICDIES,WAGE.FUND,WAGE.BASIC_WAGE+WAGE.POST_WAGE+WAGE.SUBSIDIES+WAGE.FUND+PWAGE.BAISE_WAGE AS TOTAL_WAGE,PWAGE.RAISE_WAGE,PWAGE.CUT_WAGE,WAGE.BASIC_WAGE+WAGE.POST_WAGE+WAGE.SUBSIDIES+WAGE.FUND+PWAGE.RAISE_WAGE-PWAGE.CUT_WAGE AS WAGES FROM EMPLOYEE INNER JOIN WAGE ON EMPLOYEE.EMPLOYEE_ID=WAGE.EMPLOYEE_ID INNER JOIN PWAGE ON  WAGE.EMPLOYEE_ID=PWAGE.EMPLOYEE_ID;
MYSQL>SELECT * FROM V_ZGGZ;


8) 建立一个月工资汇总视图V_YGZHZ,功能是从视图V_ZGGZ中统计每个月发放的基本工资、岗位工资、补贴、奖金、其他加、应得工资、其他扣、实发工资的总和。 (该视图用于“数据统计”功能)
MYSQL>CREATE OR REPLACE VIEW V_YGZHZ AS SELECT SUM(BASIC_WAGE),SUM(POST_WAGE),SUM(SUBSIDIES),SUM(FUND),SUM(RAISE_WAGE),SUM(TOTAL_WAGE),SUM(WAGES) FROM V_ZGGZ;
MYSQL>SELECT * FROM V_YGZHZ;

9) 建立一个部门工资汇总视图V_BMGZHZ,功能是从视图V_ZGGZ中统计各个部门的基本工资、岗位工资、补贴、奖金、其他加、应得工资、其他扣、实发工资的总和。(该视图用于“数据统计”功能)
MYSQL>CREATE OR REPLACE VIEW V_BMGZHZ AS SELECT SUM(BASIC_WAGE),SUM(POST_WAGE),SUM(SUBSIDIES),SUM(FUND),SUM(RAISE_WAGE),SUM(TOTAL_WAGES),SUM(CUT_WAGE),SUM(WAGES) FROM V_ZGGZ GROUP BY DEPARTMENT_NAME;
MYSQL>SELECT * FROM V_BMGZHZ; 

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

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

相关文章

MySQL大表数据导入到MongoDB

修改参数 &#xff0c;开启into outfile的功能 secure_file_priv/home/backups/mysql_outfile 重启数据库是参数生效 按条件导出MySQL数据 select * from receipt_receive_log where gmt_create > 2020-04-13 00:00:00 and gmt_create< 2020-07-13 00:00:00 INTO O…

Azure 机器学习 - 有关为 Azure 机器学习配置 Kubernetes 群集的参考

目录 受支持的 Kubernetes 版本和区域建议的资源计划ARO 或 OCP 群集的先决条件禁用安全增强型 Linux (SELinux)ARO 和 OCP 的特权设置 收集的日志详细信息Azure 机器学习作业与自定义数据存储连接支持的 Azure 机器学习排斥和容许最佳实践 通过 HTTP 或 HTTPS 将其他入口控制器…

面试题:在 Java 中 new 一个对象的流程是怎样的?彻底被问懵了。。

文章目录 前言JVM内存JVM生成.class文件类加载器加载.class文件知识扩展&#xff1a;Class对象首先搞清楚 newInstance 两种方法区别&#xff1a; 连接和初始化创建实例 前言 对象怎么创建&#xff0c;这个太熟悉了&#xff0c;new一下(其实还有很多途径&#xff0c;比如反射、…

EAS 去除重复的 职位 组织树信息

--备份 SELECT * into T_PM_ORGRANGE_bak1110 FROM T_PM_ORGRANGE --检查是否备份成功 select count(1) from T_PM_ORGRANGE_bak1110 --查询是否有重复脏数据 SELECT FORGID,FUSERID,FTYPE FROM T_PM_ORGRANGE group by FORGID,FUSERID,FTYPE having count(1)>1 --删除脏数据…

推送效率低?MobPush带着APP消息推送一站式解决方案来了

随着移动应用竞争的日趋激烈&#xff0c;如何拉新促活&#xff0c;保持用户粘性成为各大APP的运营的焦点和核心。作为一种有效的营销和用户保留工具。APP消息推送可以有效提高用户参与度&#xff0c;增强用户忠诚度&#xff0c;并最终提高业务效益。然而随着各大APP推送的高度同…

企业电子期刊怎么做,用这个平台就对啦!

企业期刊虽然只是一个小小的刊物&#xff0c;但对于企业的文化建设有着重要的作用。近年来&#xff0c;越来越多的企业开始使用企业电子期刊来为公司文化建设规划服务&#xff0c;也越来越重视企业期刊的质量和水平。 那怎么制作企业电子期刊呢&#xff1f;有句话说得好&#…

【Python3】【力扣题】258. 各位相加

【力扣题】题目描述&#xff1a; 【Python3】代码&#xff1a; 1、解题思路&#xff1a;将整数转为字符串&#xff0c;遍历字符串中的数字&#xff0c;求和。 知识点&#xff1a;str(...)&#xff1a;转为字符串。为了遍历每个数字。 int(...)&#xff1a;转为整数。为了数字…

网络缓冲区

windows下的体系&#xff0c;我不是特别了解。以下所有的内容都是在Linux下的理解&#xff0c;如果不对的地方&#xff0c;评论区欢迎留言。 Linux收发数据 接收数据 大体的流程如上图所示&#xff0c;接下来我们对图中一些名词进行解释。 -----------------------------------…

【博士每天一篇文献-算法】Learning without forgetting

阅读时间&#xff1a;2023-10-29 1 介绍 年份&#xff1a;2016 作者&#xff1a;李志忠; 德里克霍伊姆&#xff0c;伊利诺伊大学 期刊&#xff1a;IEEE transactions on pattern analysis and machine intelligence 引用量&#xff1a;3353 提出一种名为"无忘记学习&quo…

Linux下的环境变量【详解】

Linux下的环境变量 一&#xff0c;环境变量的概念1 概述2 环境变量的分类3 常见的环境变量4 查看环境变量4.1 shell变量4.2 查看环境变量 5 添加和删除环境变量5.1 添加环境变量5.2 删除环境变量 6. 通过代码如何获取环境变量6.1 命令行的第三个参数6.2 通过第三方变量environ获…

手把手教你如何扩展(破解)mybatisplus的sql生成 | 京东云技术团队

mybatisplus 的常用CRUD方法 众所周知&#xff0c;mybatisplus提供了强大的代码生成能力&#xff0c;他默认生成的常用的CRUD方法&#xff08;例如插入、更新、删除、查询等&#xff09;的定义&#xff0c;能够帮助我们节省很多体力劳动。 他的BaseMapper中定义了这些常用的C…

3线硬件SPI+DMA驱动 HX8347 TFT屏

3线硬件SPIDMA驱动 HX8347 TFT屏&#xff0c;实现用DMA清屏。 参考&#xff1a;基于stm32 标准库spi驱动st7789彩屏TFT(使用DMA)-技术天地-深圳市修德电子有限公司 一、源码 HX8347.h #ifndef USER_HX8347_H_ #define USER_HX8347_H_#define SPI_hardware #define SPI_hardw…

详解JS的四种异步解决方案:回调函数、Promise、Generator、async/await

同步&异步的概念 在讲这四种异步方案之前&#xff0c;我们先来明确一下同步和异步的概念&#xff1a; 所谓同步(synchronization)&#xff0c;简单来说&#xff0c;就是顺序执行&#xff0c;指的是同一时间只能做一件事情&#xff0c;只有目前正在执行的事情做完之后&am…

AI:80-基于深度学习的医学图像分割与病变识别

🚀 本文选自专栏:人工智能领域200例教程专栏 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的代码,详细讲解供大家学习,希望可以帮到大家。欢迎订阅支持,正在不断更新中,…

强大好用的shell:shell的工作原理是什么

Shell的工作原理可以简要概括为以下几个步骤&#xff1a; 1.命令行输入&#xff1a;用户在命令行界面输入命令。 2.命令解析&#xff1a;Shell接收用户的输入&#xff0c;并对命令进行解析。这个过程包括解析命令名、参数、选项等&#xff0c;将其转换成计算机可以理解的形式。…

【正点原子STM32连载】 第四十九章 SD卡实验 摘自【正点原子】APM32F407最小系统板使用指南

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html## 第四…

Power Automate-创建和运行

网站&#xff1a;Microsoft Power Automate 根据自己需求选择创建 选择需要的触发方式 点击添加新步骤 可以选择多种微软应用或者自定义应用连接 此处以向SharePoint列表追加项为例&#xff0c;要提前创建好SharePoint列表&#xff0c;并写好表结构 搜索SharePoint&#xff0…

Docsify 顶部的导航是如何配置

如下图&#xff0c;我们在 Docsify 的文档中配置了一个顶部导航。 下面的步骤对顶部导航的配置进行简要介绍。 配置 有 2 个地方需要这个地方进行配置。 首先需要在 index.html 文件中的 loadNavbar: true, 配置上。 然后再在项目中添加一个 _navbar.md 文件。 在这个文件中…

Linux系统编程——文件的写入及读取

写入(write) 使用write函数需要包含以下头文件&#xff1a; #include <unistd.h> write的函数定义格式 ssize_t write(int fd, const void *buf, size_t count); 附加&#xff1a;一般将数据写入文件中后需关闭文件&#xff0c;这里需要调用关闭(close)函数&#xf…

Kibana使用Watcher监控服务日志并发送飞书报警(Markdown)

Watcher是什么 Kibana Watcher 是 Elasticsearch 的监控和告警工具&#xff0c;它允许你设置和管理告警规则以监控 Elasticsearch 数据和集群的状态。Kibana Watcher 可以监测各种指标和数据&#xff0c;然后在满足特定条件时触发警报。它提供了一种强大的方式来实时监控 Elas…