【Mysql数据库基础04】连接查询、内连接、外连接

news2024/11/24 3:06:57

Mysql数据库基础04

  • 0 该博客所要用的数据库表的属性
  • 1 SQL92 内连接
    • 1.1 等值连接
      • 1.1.1 两个表的顺序可以调换
      • 1.1.2 加筛选
      • 1.1.3 加分组
      • 1.1.4 加排序
      • 1.1.5 三表连接
    • 1.2 非等值连接
    • 1.3 自连接
  • 2 SQL99 内连接
    • 2.1 等值连接
    • 2.2 非等值连接
    • 2.3 自连接
  • 3 外连接
    • 3.1 左外和右外连接
  • 4 其他连接

0 该博客所要用的数据库表的属性

在这里插入图片描述

1 SQL92 内连接

1.1 等值连接

查询员工名和对应的部门名

select last_name,department_name
from employees,departments
where departments.department_id = employees.department_id;

1.1.1 两个表的顺序可以调换

为表起别名
查询员工名、工种号、工种名

select last_name,j.job_id,job_titel
from jobs j,employees e
where e.job_id = j.job_id;

如果为表起了别名,则查询的字段就不能使用原来的表名去限定

1.1.2 加筛选

查询城市名中第二个字符为o的部门名和城市名

select department_name,city
from departments d,locations l
where d.location_id = l.location_id 
and city like '_o%';

1.1.3 加分组

查询每个城市的部门个数

select count(department_id),city
from departments d,locations l
where d.location_id = l.location_id
group by city;

1.1.4 加排序

查询每个工种的工种名和员工的个数,并且按员工个数降序

select job_title,count(employee_id) as 员工个数
from jobs j,employees e
where j.job_id = e.job_id
group by j.job_id
order by 员工个数 desc;

1.1.5 三表连接

查询员工名、部门名和所在的城市

select last_name,department_name,city
from employees e,departments d,locations l
where e.department_id = d.department_id
and d.location_id = l.location_id;

1.2 非等值连接

查询员工的工资和工资级别

select salary,grade_level
from employees e,job_grades g
where salary BETWEEN lowest_sal and highest_sal;

1.3 自连接

查询 员工名和上级的名称

select e.employee_id,e.last_name,m.employee_id,m.last_name
from employees e,employees m
where e.manager_id = m.employee_id;

在这里插入图片描述

2 SQL99 内连接

语法:

select
from1
inner join2
on 连接调节
where
group by
having
order by

2.1 等值连接

1.查询部门个数>3的城市名和部门个数

select city,count(department_id) as 部门个数
from departments d
inner join locations l
on d.location_id = l.location_id
group by city
having 部门个数 > 3;

2.查询哪个部门的员工个数>3的部门名和员工个数,并按个数降序

select department_name,count(employee_id) as 员工个数
from departments d
inner join employees e
on d.department_id = e.department_id
group by d.department_id
having 员工个数 > 3
order by 员工个数 desc;

2.2 非等值连接

查询每个工资级别的个数>20,并且按工资级别降序排序

select grade_level,count(grade_level) as 级别个数
from job_grades g
join employees e
on e.salary between g.lowest_sal and highest_sal
group by grade_level
having 级别个数 > 20
order by 级别个数 desc;

2.3 自连接

查询姓名中包含字符k的员工的名字、上级的名字

select e.last_name as employee_name,m.last_name as manager_name 
from employees e
inner join employees m 
on e.manager_id = m.employee_id
where e.last_name like '%k%';

3 外连接

外连接的结果为主表中的所有记录
外连接的结果=主表中有+从表中没有的记录

3.1 左外和右外连接

谁当主表就可以查询到该表所有的记录
在这里插入图片描述
例:查询哪个城市没有部门
主表是城市的那个表

select l.city
from locations l
left outer join departments d
on l.location_id = d.location_id
where department_id is null;

外连接学的头晕😥

4 其他连接

交叉连接:笛卡尔乘积
全连接:在这里插入图片描述

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

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

相关文章

大模型主流微调训练方法总结 LoRA、Adapter、Prefix-tuning、P-tuning、Prompt-tuning 并训练自己的数据集

大模型主流微调训练方法总结 LoRA、Adapter、Prefix-tuning、P-tuning、Prompt-tuning 概述 大模型微调(finetuning)以适应特定任务是一个复杂且计算密集型的过程。本文训练测试主要是基于主流的的微调方法:LoRA、Adapter、Prefix-tuning、P-tuning和Prompt-tuning,并对…

网络原理(3)——TCP协议

目录 一、连接管理 二、三次握手 1、何为三次握手? 2、三次握手有何意义? 三、四次挥手 三次握手和四次挥手的相似之处和不同之处 (1)相似之处 (2)不同之处 四、TCP的状态 建立连接: 断开…

Matlab中inv()函数的使用

在Matlab中,inv()函数是用来求解矩阵的逆矩阵的函数。逆矩阵是一个与原矩阵相乘后得到单位矩阵的矩阵。在数学中,矩阵A的逆矩阵通常用A^-1表示。 什么是逆矩阵 在数学中,对于一个n阶方阵A,如果存在一个n阶方阵B,使得…

华为综合案例-普通WLAN全覆盖配置(1)

适用范围和业务需求 适用范围 本案例适用于大多数场景,如办公室、普通教室、会议室等普通非高密场景。 业务需求 主要业务需求如下: 接入需求 随时、随地无线业务接入。无线覆盖需要做到覆盖均匀、无盲区。 无线漫游需求 多层网络、快速切换、网络…

P1143 进制转换题解

题目 请你编一程序实现两种不同进制之间的数据转换。 输入输出格式 输入格式 共三行,第一行是一个正整数,表示需要转换的数的进制n (2≤n≤16),第二行是一个n进制数,若n>10则用大写字母A∼F表示数码10∼15,并且…

使用 GTSAM 进行曲线拟合的示例

GTSAM介绍 GTSAM(通用因子图优化库)是一种用于状态估计和传感器数据融合的开源C++库。它提供了强大的工具,用于在机器人和自主系统领域进行感知、决策和控制。 功能和特点 状态估计与优化: GTSAM 提供了灵活且高效的状态估计框架,能够处理从传感器获取的数据,并…

接口测试系列 —— 转转交易业务场景接口测试实践

01 Why接口测试 一、提高效率 关键词:QA 职责保质保量的完成需求测试工作在保证质量的前提下提高效率,要保证质量,首先需要先弄清楚这次需求的测试范围,针对性的使用不同的测试方法,而接口测试就是其中的一种&#x…

JMeter 并发测试和持续性压测详解

并发测试和持续性压测都是评估系统性能的常用方法,它们可以帮助开发人员发现并解决系统中的性能问题。本文来详细介绍下。 概念 并发测试: 旨在评估系统在同时处理多个用户请求时的性能。在这种 测试 中,系统会暴露于一定数量的用户负载下&…

Bito插件

此文档只作用于指导性工作,更多资料请自行探索。 1、插件安装与介绍 1.1 插件下载与安装 在idea中搜索:Bito Bito is also available for:​编辑VSCode​编辑JetBrains​编辑CLI 1.2 官方介绍 插件:ChatGPT GPT-4 - Bito AI Code Assista…

SQLiteC/C++接口详细介绍sqlite3_stmt类(五)

返回:SQLite—系列文章目录 上一篇:SQLiteC/C接口详细介绍sqlite3_stmt类(四)- 下一篇: 无 12. sqlite3_bind_text16函数 sqlite3_bind_text16函数用于将UTF-16编码的文本数据(字符串)绑定…

推荐一款管理hosts文件的利器

程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一份大厂面试资料《史上最全大厂面试题》,Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等 …

windows下不同python版本切换

一、简介 有时候在windows环境下会安装很多个不同的Python版本,但是在运行一些特定环境时,又需要特定的python版本。于是就需要切换Python版本。 二、实操 右键“我的电脑”-》属性 右侧“高级系统设置” “高级”-》“环境变量” 双击“Path” 可以看到…

计算机视觉之三维重建(2)---摄像机标定

文章目录 一、回顾线代1.1 线性方程组的解1.2 齐次线性方程组的解 二、透镜摄像机的标定2.1 标定过程2.2 提取摄像机参数2.3 参数总结 三、径向畸变的摄像机标定3.1 建模3.2 求解 四、变换4.1 2D平面上的欧式变换4.2 2D平面上的相似变换和仿射变换4.3 2D平面上的透射变换4.4 3D…

深入浅出前端本地储存(1)

引言 2021 年,如果你的前端应用,需要在浏览器上保存数据,有三个主流方案: CookieWeb Storage (LocalStorage)IndexedDB 这些方案就是如今应用最广、浏览器兼容性最高的三种前端储存方案 今天这篇文章就聊一聊这三种方案的历史…

全球首例AI软件工程师Devin:Cognition AI引领智能编程新纪元

近日,初创企业Cognition AI震撼发布了全球首位AI软件工程师——Devin,这一开创性的突破标志着人工智能在编程与软件开发领域的应用迈上了全新的台阶。Devin以其卓越的计算机推理与规划能力,正在重新定义我们对软件工程实践的理解。 Devin&am…

软件设计师:03 - 数据库系统

一、数据模型的分类 1.1、概念数据模型 1.2、结构数据模型 1.3 真题 二、三级模式 概念模式对应的是基本表,概念模式也称为模式 外模式对应的是视图,也称用户模式或者子模式 内模式对应的是数据库里面的存储文件,也称存储模式 真题 三、两级…

漏洞发现-漏扫项目篇Poc开发Yaml语法反链判断不回显检测Yaml生成

知识点 1、Xray&Afrog-Poc开发-环境配置&编写流程 2、Xray-Poc开发-数据回显&RCE不回显&实验室 3、Afrog-Poc开发-数据回显&RCE不回显&JDNI注入 章节点: 漏洞发现-Web&框架组件&中间件&APP&小程序&系统 扫描项目-综合…

三连杆滑块机构运动学仿真 | 【Matlab源码+理论公式文本】|曲柄滑块 | 曲柄连杆 | 机械连杆

【程序简介】💻🔍 本程序通过matlab实现了三连杆滑块机构的运动学仿真编程,动态展现了三连杆机构的运动动画,同时给出了角位移、角速度和角加速度的时程曲线,除了程序本身,还提供了机构运动学公式推导文档…

防火墙互联技术

1.防火墙基础配置 2.配置防火墙远程管理 3.配置防火墙管理员角色 4.配置防火墙系统时钟 抓包

自动化测试报告生成(Allure)

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快 之前尝试使用过testNG自带的测试报告、优化过reportNG的测试报告…