关系数据库标准语言SQL(9,10)

目录

连接查询

等值与非等值连接查询

自然连接

自身连接

外连接

多表连接

嵌套查询

带有in谓词的子查询

例子

带有比较运算符的子查询

带有ANY或ALL谓词的子查询


连接查询

等值与非等值连接查询

①当连接运算符为"="称为等值连接,其他运算符称为非等值连接。

【例】查询每个学生及其选修课程的情况。 SELECT Student.*SC. FROM Student,SC WHERE Student.Sno=SC.Sno;

自然连接

自然连接:若在等值连接中把目标列中重复的属性列去掉则为自然连接。

自身连接

一个表与其自己进行连接

外连接

外连接分为:

左外连接:列出左边关系中所有的元组。 LEFT OUT JOIN SC ON

右外连接:列出右边关系中所有的元组。 RIGHT OUT JOIN SC ON

多表连接

连接操作是两个以上的表进行连接。

嵌套查询

【说明】①子查询中不能使用ORDER BY子句。

②层层嵌套方式反映了SQL语言的结构化。

③有些嵌套查询可以用连接运算替代。

④外层查询(父查询)、内层查询(子查询)

【例】 SELECT Sname FROM Student 外层查询/父查询

WHERE Sno IN(SELECT Sno FROM SC内层查询/子查询 WHERE Cno='2);

带有in谓词的子查询

在嵌套查询中,子查询的结果往往是个集合,用IN谓词表示父查询的条件在子查询结果的集合中。

例子

查询选修课程名为"信息系统"的学生学号和姓名

SELECT Sno ,Sname FROM Student WHERE Sno IN(SELECT Sno FROM SC WHERE Cno IN(SELECT Cno FROM Course WHERE Cname=·信息系统));

SELECT Sno,Sname FROM Student.SC.Course WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno AND Course.Cname=:'信息系统':

带有比较运算符的子查询

当能确切知道内层查询返回单值时,可用比较运算符(>,<,=,>=,<=,!=或<>)

带有ANY或ALL谓词的子查询

ANY任意一个值

ALL所有值

用聚集函数实现子查询要比直接用ANY、ALL效率更高

相关推荐
这个DBA有点耶5 天前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
DBA_G5 天前
从地面到云霄:GBase数据库在民航三大场景的落地实践
数据库
自由能燃气设备5 天前
商用全预混低氮冷凝锅炉免费方案vs付费方案对比+选型避坑指南
大数据·数据库·人工智能
科创致远5 天前
科创致远 ESOP 系统核心效能与实战价值展示
大数据·数据库·人工智能·精益工程
漂着的圆木5 天前
Agent 功能参与度:Copilot 怎么算
sql·数据分析·agent·githubcopilot·度量
2601_962218615 天前
万象生鲜系统称重自动多退少补算法解决生鲜非标品痛点
大数据·数据库·人工智能·python·算法
张洛闻Eren5 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
于平安5 天前
MySQL-触发器
数据库·mysql
白远山5 天前
上海24小时自助健身房解决方案实战指南与经验分享
java·数据库·架构·需求分析
Omics Pro5 天前
斯坦福Nature+Science|广义虚拟细胞基础大模型
数据库·人工智能·算法·机器学习·自然语言处理