首页 > 数据库 >SQL学习七

SQL学习七

时间:2023-02-02 19:12:51浏览次数:44  
标签:team 查询 学习 player SQL WHERE id SELECT

1.子查询可以分为关联子查询和非关联子查询。

子查询从数据表中查询了数据结果,如果这个数据结果只执行一次,然后这个数据结果作为主查询的条件进行执行,那么这样的子查询叫做非关联子查询。

如果子查询需要执行多次,即采用循环的方式,先从外部查询开始,每次都传入子查询进行查询,然后再将结果反馈给外部,这种嵌套的执行方式就称为关联子查询。

2.子查询中有一些关键词,可以方便我们对子查询的结果进行比较。比如存在性检测子查询,也就是 EXISTS 子查询,以及集合比较子查询,其中集合比较子查询关键词有 IN、SOME、 ANY 和 ALL,这些关键词在子查询中的作用是什么;

EXISTS 子查询关联子查询通常也会和 EXISTS 一起来使用,EXISTS 子查询用来判断条件是否满足,满足的话为 True,不满足为 False。


SQL:SELECT player_id, team_id, player_name FROM player WHERE EXISTS (SELECT player_id FROM player_score WHERE player.player_id = player_score.player_id)

 


SQL: SELECT player_id, team_id, player_name FROM player WHERE NOT EXISTS (SELECT player_id FROM player_score WHERE player.player_id = player_score.player_id)

集合比较子查询的作用是与另一个查询结果集进行比较,我们可以在子查询中使用 IN、ANY、ALL 和 SOME 操作符,它们的含义和英文意义一样:

 

 


SELECT player_id, team_id, player_name FROM player WHERE player_id in (SELECT player_id FROM player_score WHERE player.player_id = player_score.player_id)

我们可以把这个模式抽象为:


SELECT * FROM A WHERE cc IN (SELECT cc FROM B)


SELECT * FROM A WHERE EXIST (SELECT cc FROM B WHERE B.cc=A.cc)

ANY 和 ALL 都需要使用比较符,比较符包括了(>)(=)(<)(>=)(<=)和(<>)等。

需要强调的是 ANY、ALL 关键字必须与一个比较操作符一起使用。因为如果你不使用比较操作符,就起不到集合比较的作用,那么使用 ANY 和 ALL 就没有任何意义。

3.子查询也可以作为主查询的列,我们如何使用子查询作为计算字段出现在 SELECT 查询中呢?

实际上子查询也可以作为主查询的计算字段。


SQL: SELECT team_name, (SELECT count(*) FROM player WHERE player.team_id = team.team_id) AS player_num FROM team

得到场均得分大于 20 的球员。场均得分从 player_score 表中获取,同时你需要输出球员的 ID、球员姓名以及所在球队的 ID 信息。

标签:team,查询,学习,player,SQL,WHERE,id,SELECT
From: https://www.cnblogs.com/anniedaniel/p/17087111.html

相关文章

  • SQL学习八
    1.SQL实际上存在不同的标准,不同标准下的连接定义也有不同。你首先需要了解常用的SQL标准有哪些;SQL有两个主要的标准,分别是SQL92和SQL99。92和99代表了标准提出......
  • 安卓应用漏洞学习case7
    安卓应用漏洞学习case7前期回顾漏洞免费实战部分-安卓应用层getLastPathSegment函数问题漏洞实战部分2-安卓应用ZipEntry对象问题实战漏洞实战部分3-ContentProvider......
  • RAID 磁盘阵列学习资料
    目录RAID和LVM的区别RAID等级RAID0RAID1RAID5RAID10Linux软RAID创建RAID阵列使用RAID阵列模拟磁盘坏了什么是快(R)乐(A)星(I)球(D)磁盘阵列(RedundantArr......
  • Sql整理
    1:数据库数据库是以某种有组织的方式存储的数据集合。保存有组织数据的容器,通常是一个文件或者一组文件。SQL是StructuredQueryLanguage(结构化查询语言)的缩写。2:表......
  • win下如何用heidiSQL连接Docker Desktop中的pg数据库
    step1:   step2:  setp3:在container中就出现了这个示例 ......
  • Django学习教程
    一、django安装ubuntu一般都是自带python,可以先python3-V查看版本,没出现就代表未安装python安装python3sudoapt-getinstallpython3pip是Python包管理工具,提供了......
  • 【英语学习工具】LeHoCat 提供免费的 视频集播放工具 使用方法, 看视频学英语的工具,
    学习英语常常要硬背教材,要背得起来真的很难,看看能不能找有兴趣的内容一面消遣一面学习,比如说一部英文电影视频至少有1000句话,要是能把整部电影视频的英语学得差不多......
  • MySQL基础
    vsMySQL数据库1.数据库相关概念数据库:存储数据的仓库,数据是有组织的进行存储,英文:DataBase,进程DB存储和管理数据的仓库其本质是一个文件系统,还是以文件的方式将......
  • SQL学习六
    1.聚集函数都有哪些,能否在一条SELECT语句中使用多个聚集函数;SQL中的聚集函数一共包括5个,可以帮我们求某列的最大值、最小值和平均值等,它们分别是:  一条SELECT......
  • Redis 学习笔记
    Redis是非关系型的键值对数据库,数据是存储在内存中的,读写速度很快,广泛用于缓存方向,也可用于数据库的持久化。MySQL是关系型的磁盘数据库。访问Redis的速度要更快一点,但受......