MySQL之视图索引执行计划

目录

一.视图

二.执行计划

2.1.什么是执行计划

2.2.执行计划的作用

三.使用外连接、内连接和子查询进行举例

四.思维导图

             好啦今天就到这里了哦!!!希望能帮到你哦!!! 


一.视图

含义 :在数据库中,视图是一种虚拟表,它是基于一个或多个实际表的查询结果。视图提供了一种抽象层,允许用户以一种更简单或更特定的方式查看数据。视图并不存储实际数据,而是根据定义在其上的查询实时生成数据。虚拟表,和普通表一样使用。

操作:

创建视图:create view 视图名 as  查询语句;

视图的修改:方式一:create or replace view 视图名 as 查询语句;

方式二:alter view 视图名 as 查询语句;

删除视图:drop view 视图名,视图名,…….;

查看视图:DESC  视图名 (查看视图相关字段)

SHOW CREATE VIEW 视图名; (查看视图相关语句)

 例子:

CREATE VIEW v_student_score
as
SELECT s.*,sc.cid,sc.score from  t_mysql_student s,t_mysql_score
sc where s.sid = sc.sid;


SELECT * from v_student_score;

desc v_student_score;

SHOW CREATE VIEW v_student_score;

CREATE VIEW v_student_score
as
SELECT s.*,sc.cid,sc.score from  t_mysql_student s,t_mysql_score
sc where s.sid = sc.sid;

drop view v_student_score;

建好之后直接查询一手

 只能查看字段

 查看视图相关语句

 

 删除视图

 

二.执行计划

2.1.什么是执行计划

使用EXPLAIN 关键字可以模拟优化器执行SQL查询语句,从而知道MYSQL是如何处理你的sql语句的。分析你的查询语句或是表结构的性能瓶颈

2.2.执行计划的作用

  • 表的读取顺序
  • 数据的读取操作类型
  • 那些索引可以使用
  • 那些索引被实际使用
  • 表之间的引用
  • 每张表有多少行被优化器查

三.使用外连接、内连接和子查询进行举例

  • 01)查询" 01 "课程比" 02 "课程成绩高的学生的信息及课程分数
  1. 涉及表:t_mysql_student , t_mysql_score
  2. 连接方式:内连接 
  3. 行转列:流程控制函数    

  • 02)查询同时存在" 01 "课程和" 02 "课程的情况
  1. 涉及表:t_mysql_student , t_mysql_score
  2. 连接方式:内连接 
  3. 行转列:流程控制函数    

 

  • 03)查询存在" 01 "课程但可能不存在" 02 "课程的情况(不存在时显示为 null )
  1. 涉及表:t_mysql_score
  2. 连接方式:外连接 
  3. 以01课表为主

推荐:上面的这种查询方式看着不太友好,所以还有另外的一种,加上学生的信息: 

  1. 涉及表:t_mysql_student , t_mysql_score
  2. 连接方式:内连接,外连接
  3. 行转列:流程控制函数    
  4. 可以更加直接的看到那个学生哪门课程没有学习,一目了然,是看的舒服多了

 

  • 04)查询不存在" 01 "课程但存在" 02 "课程的情况
  1. 涉及表:t_mysql_student , t_mysql_score
  2. 查询方式:子查询
  3. 行转列:流程控制函数    

 

  • 05)查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩
  1. 涉及表:t_mysql_student , t_mysql_score
  2. 查询方式:外连接
  3. 聚合函数:四舍五入( round() ),平均值( avg() 
  4. 有聚合函数意味着分组( GROUP BY )

 

  • 06)查询在t_mysql_score表存在成绩的学生信息
  1. 涉及表:t_mysql_student , t_mysql_score
  2. 查询方式:内连接
  3. 最后建议进行一次分组,不然数据过多

 

 07)查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩(没成绩的显示为 null )
涉及表:t_mysql_student , t_mysql_score
查询方式:外连接
聚合函数:计数( count() ),求和( sum() )
有聚合函数意味着分组( GROUP BY )

 

  • 08)查询「李」姓老师的数量

 

四.思维导图

 


             好啦今天就到这里了哦!!!希望能帮到你哦!!! 

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

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

相关文章

二手买卖、废品回收小程序 在app.json中声明permission scope.userLocation字段 教程说明

处理二手买卖、废品回收小程序 在app.json中声明permission scope.userLocation字段 教程说明 sitemapLocation 指明 sitemap.json 的位置;默认为 ‘sitemap.json’ 即在 app.json 同级目录下名字的 sitemap.json 文件 找到app.json这个文件 把这段代码加进去&…

@Transactional 注解的12种失效场景

请直接看原文: 原文链接:啪!啪!Transactional 注解的12种失效场景,这坑我踩个遍-腾讯云开发者社区-腾讯云 (tencent.com) ------------------------------------------------------------------------------------------------------------…

Kafka(四)Broker

目录 1 配置Broker1.1 Broker的配置broker.id0listererszookeeper.connectlog.dirslog.dir/tmp/kafka-logsnum.recovery.threads.per.data.dir1auto.create.topics.enabletrueauto.leader.rebalance.enabletrue, leader.imbalance.check.interval.seconds300, leader.imbalance…

在VM下使用Composer完成快照方式的软件制作

Composer允许您构建软件、应用程序、偏好设置文件或是文档的安装包,安装包可以部署到远程电脑或是作为镜像流程的一部分。构建软件包的第一步就是创建包源,根据要打包的软件,Composer允许您监视软件的安装和使用驱动器上已存在的文件来创建包…

旋转图像【矩阵】

Problem: 48. 旋转图像 文章目录 思路 & 解题方法复杂度Code 思路 & 解题方法 用深拷贝就行了。 复杂度 时间复杂度: 添加时间复杂度, 示例: O ( n ) O(n) O(n) 空间复杂度: 添加空间复杂度, 示例: O ( n ) O(n) O(n) Code class Solution:d…

Redis小计(4)

目录 1.Set和Get操作 2.mset和mget 3.mset,mget,set后加参数的优点 4.incr,incrby,incrbyfloat 1.Set和Get操作 flushall:清除所有k-v键值对。(删库跑路小技巧) set k v[ex | px]:设置超时…

利用python将excel文件转成txt文件,再将txt文件上传hdfs,最后传入hive中

将excel文件转成txt文件,再将txt文件上传hdfs,最后传入hive中 注意的点 (1)先判断写入的txt文件是否存在,如果不存在就需要创建路径 (2)如果txt文件已经存在,那么先将对应的文件进行…

高性能、可扩展、分布式对象存储系统MinIO的介绍、部署步骤以及代码示例

详细介绍 MinIO 是一款流行的开源对象存储系统,设计上兼容 Amazon S3 API,主要用于私有云和边缘计算场景。它提供了高性能、高可用性以及易于管理的对象存储服务。以下是 MinIO 的详细介绍及优缺点: 架构与特性: 开源与跨平台&am…

软测思考题:自动化测试重运行是好是坏?

如果有人手动运行测试,那么他们会暂停并了解更多信息。但是,当自动测试失败时,其余部分可能会继续运行。在套件完成之前,你是没有办法看到测试报告的,并且自动化程序不会在故障时执行任何额外的操作尝试找出问题。当剩…

【深度deepin】深度安装,jdk,tomcat,Nginx安装

目录 一 深度 1.1 介绍 1.2 与别的操作系统的优点 二 下载镜像文件及VM安装deepin 三 jdk,tomcat,Nginx安装 3.1 JDK安装 3.2 安装tomcat 3.3 安装nginx 一 深度 1.1 介绍 由深度科技社区开发的开源操作系统,基于Linux内核&#xf…

VQ-VAE(Neural Discrete Representation Learning)论文解读及实现

pytorch 实现git地址 论文地址:Neural Discrete Representation Learning 1 论文核心知识点 encoder 将图片通过encoder得到图片点表征 如输入shape [32,3,32,32] 通过encoder后输出 [32,64,8,8] (其中64位输出维度) 量化码本 先随机构建一个码本,维度…

ROS2/ROS+conda+pytorch配置

0、需求 项目开发中遇到在ROS2中调用pytorch,但pytorch安装在了conda环境下。如果独立安装ros和conda会存在python版本、ubuntu系统版本的问题。网上还没看到比较好的解决方案,通过探索发现以下方案,实现的效果是在一个conda环境中&#xff…

Linux操作系统基础(14):文件管理-文件属性命令

1. 查看文件属性 stat命令用于显示文件的详细信息,包括文件的权限、所有者、大小、修改时间等。 #1.显示文件信息 stat file.txt#2.显示文件系统状态 stat -f file.txt#3.显示以时间戳的形式文件信息 stat -t file.txt2. 修改文件时间戳 touch命令用于创建新的空…

window.print打印事件,固定打印界面,打印成功或取消返回打印前界面,再次点击打印事件不生效

我是弹框中有打印&#xff0c;然后如果还原界面后在点打印事件不生效 我用 window.location.reload() 后刷新界面有返回的界面是关闭了弹框。我需要的是打印成功或取消返回打印不关闭弹框 之前打印代码 我这是是vue3 &#xff0c;我打印界面是单独写的 <printPag ref"…

GitHub Copilot 功能介绍和使用场景

原文 &#xff1a; https://openaigptguide.com/github-copilot/ GitHub Copilot是一款由GitHub、OpenAI和Microsoft联合开发的AI辅助开发工具&#xff0c;它以人工智能的方式提供语法结构、表达式、变量名等的自动补全建议&#xff0c;并对代码进行注释解释&#xff0c;将代码…

linux stop_machine 停机机制应用及一次触发 soft lockup 分析

文章目录 stop_mchine 引起的 soft lockup触发 soft lockup 原因分析&#xff08;一&#xff09;&#xff1a;触发 soft lockup 原因分析&#xff08;二&#xff09;触发 soft lockup 原因分析&#xff08;三&#xff09; stop_mchine 引起的 soft lockup 某次在服务器上某节点…

1389 蓝桥杯 二分查找数组元素 简单

1389 蓝桥杯 二分查找数组元素 简单 //C风格解法1&#xff0c;lower_bound(),通过率100% //利用二分查找的方法在有序的数组中查找&#xff0c;左闭右开 #include <bits/stdc.h> using namespace std;int main(){int data[200];for(int i 0 ; i < 200 ; i) data[i] …

LeetCode简单题记录

1、两数之和&#xff0c;给定数组nums&#xff0c;求和为target的两个数组元素的下标 我用了两个for循环&#xff0c;官方解为 哈希表&#xff0c;知识盲区 class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<i…

React Hooks中useState的介绍,并封装为useSetState函数的使用

useState 允许我们定义状态变量&#xff0c;并确保当这些状态变量的值发生变化时&#xff0c;页面会重新渲染。 useState 返回值 const [state, setState] useState(initialState);useState 返回一个长度为 2 的数组。通常&#xff0c;我们这样定义状态变量&#xff1a; co…

Socket.D 替代 http 协议像 Ajax 一样开发前端接口

我们在"前端接口"开发时&#xff0c;使用 socket.d 协议有什么好处&#xff1a; 功能上可以替代 http 和原生 ws安全&#xff01;安全&#xff01;安全&#xff01;现有的工具想抓包数据&#xff0c;难&#xff01;难&#xff01;难&#xff01;&#xff08;socket.…