简简单单 My SQL 学习笔记(3)——连接和嵌套查询

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 简简单单 My SQL 学习笔记(3)——连接和嵌套查询

初始数据

学生表

create table Student(Sid varchar(6), Sname varchar(10), Sage datetime, Ssex varchar(10));
insert into Student values('01' , '小唐' , '2002-07-11' , '男');
insert into Student values('02' , '小喜' , '2002-05-21' , '男');
insert into Student values('03' , '小欢' , '2002-05-21' , '男');
insert into Student values('04' , '小黄' , '2002-02-14' , '女');

成绩表

create table SC(Sid varchar(10),  score decimal(18,1));
insert into SC values('01' , 80);
insert into SC values('02' , 70);
insert into SC values('04' , 50);

大概是这样


连接 表1.相同列=表2.相同列

一听连接这个东西就是把我们相同的列重合在一起,然后形成一个表,大概就是这样,数据结构还是和上一篇讲的一样三层结构

比如说在这里,我想把这两个表连起来,让我还可以看到每一个人的成绩

select Student.Sid,Sname,Sage,Ssex,score
from Student, SC
where Student.Sid= SC.Sid;

由于我们的sid是两个表都有的,所以说,我们还要去标明他们各自的所属关系,即student.sid和sc.sid。对于那一些我们单独没有重复的列名,我们就可以选择不标

这个时候我们发现一个问题,我们小欢同学的成绩不见了!!!,我们回到上面去看我们的成绩表,sid=3的根本没有学号和成绩,好吧,他根本没有成绩,但是这个时候我们想要他显示怎么办???


左右连接 表名 left/right outer join 表名 on(相同列名)

他和直接连接最大的不同就是,他会显示出没有的数据

右连接

select Student.Sid,Sname,Sage,Ssex,score
from Student right outer join sc on(Student.Sid= SC.Sid);

就有人问了,小唐,小唐怎么还是一样的呀,嘿嘿,我还没有说完呢,我们现在的是右连接,只会显示我们右边所有的元组,我们右边是什么,那个是成绩表!!!我们可以交换两边的次序,同时也可以在不改变次序的情况下,使用左连接!!!


左连接

select Student.Sid,Sname,Sage,Ssex,score
from Student left outer join sc on(Student.Sid= SC.Sid);


嵌套查询

这个东西,很多老师讲得很复杂,但是我的理解就真的很单纯,先举个例子吧

我们需要查找及格学生的名字!!!必须用嵌套

select  Sname
from Student
where sid in
 (
select sid
from sc
where score>=60
);

简单的来说,就是我们在where里面使用a in b(就是a表里面包含b的输出),用下面的式子来查找相应的学号,然后在返回上一级里面的sid查找

不难发现的是,他就是由两个查询的基本结构,组成的

他的最底层的嵌套都可以单独执行,我们看看这个部分

输出的就是我们的符合条件的学号,返回上一级他的逻辑就是这样子来写

是不是一下子就清楚了,就是子循环返回的结果,传递给上一级,然后上一级再去做出选择

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2天前
|
SQL
SQL查询
SQL查询
9 0
|
4天前
|
SQL 存储 安全
SQL入门与进阶:数据库查询与管理的实用指南
一、引言 在数字化时代,数据库已经成为各行各业存储、管理和分析数据的关键基础设施
|
4天前
|
NoSQL 关系型数据库 Serverless
Serverless 应用引擎产品使用合集之连接RDS、Redis等数据库时,是否需要通过安全组来控制访问权限
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
5天前
|
DataWorks 关系型数据库 MySQL
DataWorks操作报错合集之在尝试连接到MySQL数据库时遇到了“Communications link failure”错误,如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
5天前
|
SQL 安全 数据库
SQL实践指南:从基础到进阶的数据库查询与管理
一、引言 在数据驱动的时代,数据库已成为各行各业不可或缺的一部分
|
5天前
|
SQL 安全 数据库
掌握SQL:数据库操作与查询的精髓
一、引言 在数据驱动的时代,数据库是任何组织或项目不可或缺的一部分
|
5天前
|
SQL 存储 数据库
掌握SQL:数据库查询与管理的关键技能
一、引言 在信息化快速发展的今天,数据库已成为存储、处理和查询数据的重要工具
|
5天前
|
SQL 存储 安全
深入SQL:掌握数据库操作与查询的艺术
一、引言 在信息化高度发展的今天,数据库已成为企业、组织甚至个人管理数据的核心工具
|
5天前
|
SQL 存储 数据库
深入理解SQL:从基础查询到高级数据库管理
一、引言 SQL(结构化查询语言)是数据库管理系统的核心语言,用于存储、检索、更新和管理关系数据库中的数据
|
5天前
|
SQL 存储 监控
精通SQL:数据库查询与管理的全面指南
一、引言 在当今的数据驱动世界中,[数据库](https://www.iyxwzx.com/)技术无处不在,而SQL(结构化查询语言)则是数据库操作的基础