MySQL之视图索引执行计划

news2024/12/25 13:09:22

目录

一.视图

二.执行计划

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.coloradmin.cn/o/1362658.html

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

相关文章

Nginx快速入门:Nginx实现高可用|结合keepalived实现主备节点(九)

0. 引言 在生产中我们要尽可能避免单点故障,nginx也不例外,因此搭建主备节点必不可少,今天我们来学习下如何利用keepalived实现主备 1. keepalived简介 keepalived 是一个LINUX系统中开源的负载均衡和故障转移软件,它主要用于高…

解决 POST http://x.x.x.x:8000/aaa/ net::ERR_CONNECTION_TIMED_OUT

记录一下我遇到的问题和解决办法 我的项目前后端分离,在前端用的vue访问后端时连接不上后端,一切操作都触发不了后端,数据也传不到后端去; 原因:url有问题,url地址写的不是本机,所以导致连接超…

Nginx快速入门:worker、master进程的作用和热部署原理(十)

0. 引言 我们通过查询nginx进程,可以发现nginx有两个进程:worker和master。一个程序启动了两个进程,那么这两个进程的作用和区别是什么呢?nginx又是如何利用这两个进程进行工作的呢?nginx不停机热部署又是如何实现的&…

如何使用UUP从windows更新服务器下载windows10原版镜像

UUP是指Windows 10中的一种更新技术,全称为Unified Update Platform。UUP的目标是提供更快、更高效的更新体验,它通过增量更新的方式来更新操作系统,只下载和安装实际变化的部分,而不是整个更新包。这样可以节省带宽和时间&#x…

LLM漫谈(二)| QAnything支持任意格式文件或数据库的本地知识库问答系统

一、QAnything介绍 QAnything (Question and Answer based on Anything) 是致力于支持任意格式文件或数据库的本地知识库问答系统,可断网安装使用。 您的任何格式的本地文件都可以往里扔,即可获得准确、快速、靠谱的问答体验。 目前已支持格式: PDF&…

Mac Parallels19.1.0 Install CentOS7.9

0、资源准备 # centos7.9镜像一份 链接: https://pan.baidu.com/s/1acIjUnsTGhk_2cYCZLSoGg?pwd6666 提取码: 6666 --来自百度网盘超级会员v7的分享1、打开PD 2、选择镜像进行安装 指定镜像名称 创建 进行密码设置 安装目的地点开后直接点击完成 网络和主机名称 开…

SonarQube 漏洞扫描

SonarQube 漏洞扫描 一、部署服务 1.1 docker方式部署 #安装docker curl -L download.beyourself.org.cn/shell-project/os/get-docker-latest.sh | sh yum install -y docker-compose #进去输入:set paste可以保证不穿行 [rootlocalhost sonar]# vim docker-compose.yml v…

什么猫粮便宜又好?什么牌子的主食冻干猫粮健康又实惠?

冻干对于猫咪的好处,相信许多养猫的朋友们都非常了解。冻干猫粮是将含有水分的新鲜肉在低温且真空的环境中急速冻结,使得冰直接升华成水蒸气,从而排掉水分,让肉变得干燥。这种方式可以保证蛋白质和维生素等物质的生物活力&#xf…

Zabbix实现网络响应超时监控

一、简介 在IT运维管理过程中,网络响应超时是比较常见的故障之一。尽管网络响应超时的原因多种多样,解决方案各不相同,但归根结底解决故障的首要前提是发现问题。 在网络超时监控方面,Zabbix能够实时捕获并响应网络设备的超时事…

技术方向:比较与选择

针对未入行、刚入行、工作好几年依然不停切换择业方向、长期技术无法突破的人。 1 技术栈 一切的开始其实是对编程的兴趣,兴趣指引你跨过所有障碍。 编程语言是基础,编程语言之上,发展为两个主要方向,服务和大数据。 2 编程语言…

【一】达梦数据库安装和使用-Windows

达梦数据库安装和使用-Windows 简介: 新能源行业关系到国计民生,保障能源安全的意识不容懈怠,近些年各行各业都在推进数字化进程,能源行业在国家3060双碳目标提出之后更是进行的如火如荼,能源互联网方面在数字化的同时…

软件测试|Python函数参数之必传参数、默认参数、可变参数、关键字参数的详细使用

在Python中,函数参数是定义在函数头部的变量,用于接收传递给函数的数据。Python函数参数有四种类型:必传参数、默认参数、可变参数和关键字参数。每种类型都有不同的使用方式和适用场景。本文将详细介绍这四种函数参数的使用方法。 Python函…

如何做一个炫酷的Github个人简介(3DContribution)

文章目录 前言3D-Contrib第一步第二步第三步第四步第五步第六步 前言 最近放假了,毕设目前也不太想做,先搞一点小玩意玩玩,让自己的github看起来好看点。也顺便学学这个action是怎么个事。 3D-Contrib 先给大家看一下效果 我的个人主页&am…

RH850P1X芯片学习笔记-A/D Converter (ADCF)

文章目录 Features of RH850/P1x-C ADCFNumber of UnitsRegister Base AddressClock SupplyInterrupts and DMAHardware ResetExternal Input/Output SignalsVirtual Channel OverviewFunctional OverviewBlock DiagramPhysical Channels, Virtual Channels and Scan Groups Re…

【airsim】python控制airsim

使用airsim 1.8.1编译完成,进过block项目在cpp测试后,开始踩坑使用python。 使用AirSim\PythonClient\setup.py或者pip安装airsim。 python setup.py install或者 pip install airsim此时,windows电脑的环境信息 (air_py38) D:\code\Gith…

UV胶水与聚氯乙烯PVC材料的塑料粘接,效果如何?

UV胶水可以与聚氯乙烯PVC很好地粘接。 PVC是一种常见的塑料材料,UV胶水通常对PVC具有良好的粘接性能。UV胶水可以在紫外线照射下迅速固化,形成坚固的粘接,因此通常被用于PVC制品的粘接和修复。 UV胶水与PVC粘接的优点: 1. 快速固…

Java并发集合详解

第1章:引言 大家好,我是小黑,在这篇博客中,咱们将一起深入探索Java中的并发集合。多线程编程是一个不可或缺的部分,它能让程序运行得更快,处理更多的任务。但同时,多线程也带来了一些挑战&…

Linux 编译安装 Nginx

目录 一、前言二、四种安装方式介绍三、本文安装方式:源码安装3.1、安装依赖库3.2、开始安装 Nginx3.3、Nginx 相关操作3.4、把 Nginx 注册成系统服务 四、结尾 一、前言 Nginx 是一款轻量级的 Web 服务器、[反向代理]服务器,由于它的内存占用少&#xf…

独立式键盘控制步进电机实验

#include<reg51.h> //包含51单片机寄存器定义的头文件 sbit S1P1^4; //将S1位定义为P1.4引脚 sbit S2P1^5; //将S2位定义为P1.5引脚 sbit S3P1^6; //将S3位定义为P1.6引脚 unsigned char keyval; //储存按键值 unsigned char ID; …

etcd基本介绍

etcd基本介绍 ETCD是SoreOs公司发布的一个分布式的、高可用的、key-value存储的数据库。基于Go语言实现&#xff0c;k8s中也使用了ETCD作为数据库。主要用于共享配置和服务发现。相对于zookeeper采用的Paxos&#xff0c;ETCD采用的是Raft算法&#xff0c;该算法具备的性能更佳…