SQL多表查询实战:连接类型与子查询应用
创作时间:
2025-01-21 17:38:08
作者:
@小白创作中心
SQL多表查询实战:连接类型与子查询应用
在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 |
热门推荐
汽车发动机技术大比拼:大众、本田、日产谁最强?
电商用户分析,揭开电子商务市场中用户行为的奥秘
从赤焰冤案到靖王争储,《琅琊榜》中的故事,历史上真的存在?
希腊奶酪:七种获得欧盟PDO认证的美味
劳动合同期满终止能领失业金吗
甜玉米是转基因的吗?一文读懂如何辨别转基因玉米
如何积累好词好句:实用方法与技巧
女跑者都该做的一件事:定期测血,看你缺不缺铁
关于喷墨打印:液滴喷射及基材影响的那些事儿
北京地铁3号线、12号线通车在即,线路图、车站效果图“剧透”
这几个时间点不要批评孩子,再急再气也要忍住
洗衣机嗡嗡响但不转,具体原因和解决方法
武汉航母楼改建,新一代航母开工?10万吨、核动力,酷似福特级
职场必学:掌握"策略性沉默"的艺术
九十岁老人血压范围多少正常
模拟手机设备:使用 Playwright 实现移动端自动化测试
搞懂混动技术,如何挑选混动车才不会踩坑?
一拳超人:从力量到人性的深度解读
怀孕可以吃哪些大葱好?怀孕可以吃大葱吗?
福建美食攻略:名菜、小吃、特产、美食街、老字号餐厅全览
海军航空兵某团多措并举抓好新飞行员改装训练
中国名人成长故事精选
承包地水井纠纷:法律适用与争议解决路径探析
校车是否可以上高速公路?
双显卡配置究竟有哪些好处?
集中采购机构是什么?如何运作?集中采购机构的优势与挑战解析
GBNS 1101焊接钢管:高性能工业材料的全方位解析
干细胞外泌体或成为老年痴呆治疗新突破
莱布雷希特专栏:小泽征尔的异国情调
【药食同源】发汗解表 化湿和中之“香薷”