MYSQL 高级SQL语句(二)

news2024/9/25 15:26:21

目录

一、表连接查询

1.1 left join(左连接)

1.2 right join(右连接)

1.3 inner join(内连接)

二、视图

2.1 视图表与派生表比较


一、表连接查询

MYSQL数据库中的三种连接:

  • inner join(内连接):只返回两个表中联结字段相等的行(有交集的值)
  • left join(左连接):返回包括左表中的所有记录和右表中联结字段相等的记录
  • right join(右连接):返回包括右表中的所有记录和左表中联结字段相等的记录

注:oracle数据库支持 outer join(外连接),mysql不支持。

1.png

1.1 left join(左连接)

left join(左连接):返回包括左表中的所有记录和右表中联结字段相等的记录。

 

select * from location A LEFT JOIN store_info B on A.store_name=B.store_name;  #左连接

1-2.png

1-3.png

1.2 right join(右连接)

right join(右连接):返回包括右表中的所有记录和左表中联结字段相等的记录。

 

select * from location A RIGHT JOIN store_info B on A.store_name=B.store_name; #右连接

1-4.png

1.3 inner join(内连接)

inner join(内连接):只返回两个表中联结字段相等的行。

 

方法一:
 select * from location A inner join store_info B on A.store_name=B.store_name;
 ​
 方法二:
 select * from location A, store_info B where A.store_name=B.store_name;
 ​
 方法三:
 select * from location A inner join store_info B using(store_name); #using()是函数,必须保证括号内的字段在两个表中是同名的

1-5.png

1-6.png

1-7.png

示例:

设置location表的别名为A、store_info表的别名为B,查询A表和B表中store_name字段值相等的行,之后对region字段进行分组汇总,并计算组内销售额之和。

 

select A.region region,sum(B.sales) sales from location A,store_info B where A.store_name=B.store_name group by region;

1-8.png

二、视图

视图:可以被当作是虚拟表或存储查询。

  • 视图跟表格的不同是,表格中有实际储存数据记录,而视图是建立在表格之上的一个架构,它本身并不实际储存数据记录。
  • 临时表在用户退出或同数据库的连接断开后就自动消失了,而视图不会消失。
  • 视图不含有数据,只存储它的定义,它的用途一般可以简化复杂的查询。 比如你要对几个表进行连接查询,而且还要进行统计排序等操作,写SQL语句会很麻烦的,用视图将几个表联结起来,然后对这个视图进行查询操作,就和对一个表查询一样,很方便。

语法:

 

CREATE VIEW "视图表名" AS "SELECT 语句";   #创建视图表
 ​
 DROP VIEW "视图表名";                     #删除视图表

示例:

视图表就是保存了select语句的查询结果,可以理解为select语句的别名。

原表数据变化后,视图表的结果也会发生变化。

 

#将两个表的连接查询,创建为视图表
 create view v_region_sales as select A.region region,sum(B.sales) sales from location A inner join store_info B on A.store_name=B.store_name group by region;
 ​
 select * from v_region_sales;     #查看视图表的存储结果
 ​
 drop view v_region_sales;         #删除视图表

2-1.png

2-2.png

2-3.png

2.1 视图表与派生表比较

派生表,两个select查询写在一个句子当中,比较复杂冗长。

视图表,简化复杂的查询。只需创建一次,后面可以直接对已创建好的视图表进行操作。

 

#派生表:C就是子查询中select语句的派生表。
 select sum(C.sales) from (select A.region region,sum(B.sales) sales from location A,store_info B where A.store_name=B.store_name group by region) C;
 ​
 ​
 #视图表:只需创建一次,后面可以直接对已创建好的视图表进行操作。
 create view v_region_sales as select A.region region,sum(B.sales) sales from location A inner join store_info B on A.store_name=B.store_name group by region;
 ​
 select sum(sales) from v_region_sales;    #对视图表进行操作

2-4.png

2-5.png

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

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

相关文章

pytorch分类和回归:阿里天池宠物年龄预测

文章目录 dog年龄预测论文Deep expectation of real and apparent age from a single image without facial landmarks分类的损失函数1.多分类交叉熵损失函数:2.KLDiv Loss: 分布差异3.facenet 三元组损失函数 timm and torchvisiontorchvision 尝试一&a…

刚创业,租什么类型办公场地比较合适

对于刚创业的公司,选择哪种类型的办公场地取决于公司的规模、预算和业务需求。以下是一些选择办公场地的考虑因素: 1. 灵活性:初创企业可能需要随着业务的发展和变化而快速调整办公空间。因此,选择一个灵活的办公场地&#xff0c…

深入学习 Redis - 深挖经典数据类型之 zset

目录 前言 一、zset 类型 1.1、操作命令 zadd / zrange(添加 / 查询) zcard(个数) zcount(区间元素个数) zrevrange(逆序展示) zrangebyscore(按分数找元素&#…

服务器(容器)开发指南——SSH打洞开发

文章目录 SSH容器服务打包测试服务文件镜像打包 SSH打洞开发部署带SSH的容器SSH连接服务器(容器内部)SSH访问容器内的缺陷 IDE远程SSH开发VSCode远程SSH开发Jetbrains系列产品SSH远程开发 在进行定制化的服务开发时,我们有时候只能在固定的服…

页面设计—GridRow栅格行组件

1、何时使用 在栅格布局基础上,一般需要通过行(GridRow)和列(GridCol)来定义信息区块的外部框架,以保证页面的每个区域能够稳健地排布起来。 2、如何使用 (1)找到GridRow组件&…

乙酰基四肽-2--------增加肌肤紧实度,重建表皮结构

简介 为了避免皮肤下垂和松弛,以下几种重要蛋白共同参与,维持皮肤结构的粘着和紧致:Fibulin 5亦称FBLN-5,是细胞外基质蛋白Fibulin家族中的最新成员。它广泛分布于富含弹性纤维的组织,能直接与原弹性蛋白结合&#xf…

【矩特征】图像矩特征

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 cv2.moments() 矩特征 1. 正文 (1). 空间矩 零阶矩:m00一阶矩:m10,m01二阶矩:m20,m11,m02三阶矩:m30,m…

配置Tomcat远程调试

配置Tomcat远程调试 1.Tomcat开启远程访问调试1.1 编写脚本,开启配置1.2 重启Tomcat服务 2. IDEA配置远程调试Tomcat2.1 IDEA右上角更改配置2.2 添加一个remote jvm debug2.3 进行配置2.4 配置后进行启动连接至此在本地打断点即可调试远程服务器 1.Tomcat开启远程访问调试 1.1…

Cesium:加载geojson面贴地和显示边界问题

1.背景 cesium加载geojson面数据后,有部分数据在地形下面显示不全, 加了clampToGround: true,设置贴地后,边界又不见了 this.viewer.dataSources.add(GeoJsonDataSource.load(http://xx/xzbj.geojson, {stroke: Color.BLACK.with…

questasim一个

安装好questasim后默认的波形查看界面字体很小,颜色看起来也不舒服,所以调整了一下颜色布局如下图,顺便记录一下波形窗口颜色大小及选中行高亮如何设置 1、波形字体颜色设置 参考如何设置一个清爽的仿真窗口(仿真工具使用技巧&a…

vue build 打包遇到bug解决记录

文章目录 vue-cli-service servevue打包修改dist文件夹名字vue build require is not defined 和 exports is not defind 错误 vue-cli-service serve 通常vue是不能直接使用vue-cli-service命令在终端运行的,所以才会在package.json中配置了scripts: …

精选 2023 年大厂高频 Java 面试真题集锦(含答案),面试一路开挂

本文涵盖了阿里巴巴、腾讯、字节跳动、京东、华为等大厂的 Java 面试真题,不管你是要面试大厂还是普通的互联网公司,这些面试题对你肯定是有帮助的,毕竟大厂一定是行业的发展方向标杆,很多公司的面试官同样会研究大厂的面试题。 …

小程序轮播图的两种后台方式(PHP)--【浅入深出系列008】

微信目录集链接在此: 详细解析黑马微信小程序视频–【思维导图知识范围】难度★✰✰✰✰ 不会导入/打开小程序的看这里:参考 让别人的小程序长成自己的样子-更换window上下颜色–【浅入深出系列001】 文章目录 本系列校训学习资源的选择啥是轮播图轮播…

基于Android系统的外卖APP【纯干货分享,免费领源码04871】

摘要 立足于当下餐饮行业现有的点餐模式,分析传统APP点餐的运作流程,结合Android系统的特点设计新型的外卖APP。近几年,人们生活水平日益提升,但工作强度和压力不断增强,尤其是对于上班族而言,到餐厅吃饭费…

C++实现通用进制转换

C实现通用进制转换 #include <iostream> #include <string> #include <algorithm> #include <sstream> using namespace std; // 将一个字符转换为对应的数字 int charToNum(char c) { if (c > 0 && c < 9)return c - 0; el…

四旋翼无人机使用教程

文章目录 前言一、检查遥控器电源开关混控拨码开关微调开关飞行模式刹车开关行程开关接收机对码 二、检查飞机检查接线 三、解锁并飞行 前言 PX4固件 QGC地面站 Pixhwak飞控 Mc6c遥控器 开源飞控博大精深&#xff0c;欢迎广大爱好者加博主微信名片&#xff0c;一起学习交流。…

Windows版filehub安装教程

一个基于Github开发的文件存储软件&#xff0c;美其名曰&#xff1a;FileHub&#xff0c;可存万物&#xff0c;而且绝不和谐任何文件。类似于百度云盘的功能&#xff0c;但是功能上肯定达不到百度云盘的效果&#xff0c;但是基本功能还是有的&#xff1a;例如登录注册&#xff…

C语言每天一练:输出杨辉三角

题目&#xff1a;请输出以下杨辉三角(要求输出前10行) 列&#xff1a; 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 ...... 题解析&#xff1a;不了解杨辉三角的可以百度看一下&#xff0c;大概是这样的&#xff0c;咱们就可以解…

日撸代码300行:第55天(基于 M-distance 的推荐 (续))

代码来自闵老师”日撸 Java 三百行&#xff08;51-60天&#xff09;“&#xff0c;链接&#xff1a;https://blog.csdn.net/minfanphd/article/details/116975957 工作承接第54天的基于M-distance 的推荐&#xff0c;目标是自己实现一下user-based recommendation。原博客中的…

NLP实验案例100个(6-10)

实验六 数据类型 一、实验目的及要求 熟悉数据的数据类型二、实验设备&#xff08;环境&#xff09;及要求 开发环境&#xff1a;jupyter notebook 开发语言以及相关的库&#xff1a;python开发语言 numpy库 三、实验内容与步骤 1.创建一个array类型的数据&#xff0c;设置…