详解SQL多表查询:连接类型与子查询实战
创作时间:
作者:
@小白创作中心
详解SQL多表查询:连接类型与子查询实战
引用
CSDN
1.
https://blog.csdn.net/Lyhdreamer/article/details/136338455
在SQL中,多表查询是指在一个查询语句中同时处理两个或多个表的数据。分为连接查询和子查询。
一、连接查询
通过连接运算符可以实现多个表查询。分为内连接、外连接、交叉连接。
连接运算是由一个笛卡尔积运算和一个选取运算构成的。首先用笛卡尔积完成对两个数据集合的乘运算,然后对生成的结果集合进行选取运算。
示例表如下:
- student表
- score表
1. 内连接
把两个表中数据对应的数据查询出来,内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值,即查询两张表的交集。内连接分以下三种:
(1)等值连接
在连接条件中使用等于号“=”运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。
SELECT * FROM student INNER JOIN score ON student.id = score.id;
(2)自然连接
在连接条件中使用等于“=”运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。
自然连接仅适用于那些具有相同名称和数据类型的列。如果两个表中的列名称或数据类型不匹配,自然连接将无法执行。
-- NATURAL JOIN无ON语句
SELECT * FROM student NATURAL JOIN score;
(3)不等值连接
在连接条件使用除等于运算符以外的其它比较运算符比较被连接列的列值。这些运算符包括>、>=、<=、<、!>、!<和<>。
2. 外连接
以某个表为基础把对应数据查询出来,返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接时)、右表(右外连接时)或两个表(全外连接)中的所有行。
(1)左外连接
SELECT * FROM student LEFT OUTER JOIN score ON student.id = score.id;
(2)右外连接
SELECT * FROM student RIGHT OUTER JOIN score ON student.id = score.id;
(3)全外连接
SELECT * FROM student FULL OUTER JOIN score ON student.id = score.id;
3. 交叉连接
交叉连接不带ON语句,返回被连接的两个表所有行的笛卡尔积。
-- CROSS JOIN无ON语句
SELECT * FROM student CROSS JOIN score;
二、子查询
SQL语句中嵌套SELECT语句,称为嵌套语句,又称子查询,根据子查询结果不同分为以下四种:
子查询外部的语句可以是INSERT/UPDATE/DELETE/SELECT的任何一个。
分类 | 描述 | 常用操作符 |
---|---|---|
标量子查询 | 子查询结果为单个值 | =、<>、>、>=、<、<= |
列子查询 | 子查询的结果为一列 | IN、NOT IN、ANY、SOME、ALL |
行子查询 | 子查询的结果为一行 | =、<>、IN、NOT IN |
表子查询 | 子查询的结果为多行多列 | IN |
热门推荐
甘肃怎么办?专家详解经济困境与破局之道
补血吃什么?这些食物助你快速恢复红润
100克猪蹄的热量是多少,猪蹄的热量高不高
同样是祭祀节日,中元节跟清明节区别很大,传统民俗建议了解一下
维护正规售票渠道,保障旅客权益
如何验证个人专利查询结果的真实性
古代皇后命的八字:如何解读她们的命运与影响力
国医大师张志远临证70年精华录:刀斧外伤、跌打损伤、软组织损伤
世界历史上各国的铠甲,网友说中国的最霸气!
如何设置和激活 eSIM 在美国:循序渐进的教程
AI变革科研模式,催生跨界科学家
酒精的化学性质是什么 酒精的用途
美国留学回国后该如何规划职业发展
告别死记硬背,高效提升词汇量:掌握科学记单词技巧
被遗忘的穆斯林文化成就
2025全国中医药大学排行榜【校友会版】 最新排名名单
性别和性取向的政治:20世纪70年代后的美国女权主义和同性恋运动
多地发布新一轮生育意愿调查报告:还有哪些痛点?现行政策奏效吗?
张学良:与赵一荻的爱情故事轰轰烈烈,却负了于凤至一生
什麼顏色配什麼顏色最好看?色彩搭配秘訣大公開!
怎么能调理脾虚?四个实用方法助你改善脾虚症状
菜心种植方法与注意事项(春季是最佳种植时间,栽培技巧需掌握)
如何通过梅花易数动爻预测未来?
深呼吸具体怎么做?
大模型技术突破,推动人工智能迈向新高度
秋风起,走进金秀,沉浸式体验瑶“养”秘境之旅
实现基于角色的访问控制
Docker如何满足不同开发环境
卫生巾行业大洗牌:从信任危机到新生机遇
财务BP发展前景及趋势