我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SQL联表查询

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SQL联表查询

表1学生信息表
在这里插入图片描述
表二专业信息表
在这里插入图片描述
– join on 连接查询
– where 等值查询

在这里插入图片描述

分为两种
等值连接: 查找两个表中连接字段相等的记录。

--查询每个学生的(学生表)学号、姓名、籍贯、年龄、(专业表)专业、班级--涉及到student和major两张表,用共有字段“学号”为连接字段--写法1:使用INNER JOINSELECT A.学号, A.姓名, A.籍贯, A.年龄, B.专业, B.班级FROM student AINNER JOIN major B   ON  A.学号=B.学号--写法2:--省去了INNER,直接写JOIN,与INNER JOIN没有区别SELECT A.学号, A.姓名, A.籍贯, A.年龄, B.专业, B.班级FROM student AJOIN major B  ON  A.学号=B.学号--写法3: --使用WHERE,已经逐渐被淘汰SELECT A.学号, A.姓名, A.籍贯, A.年龄, B.专业, B.班级FROM student A, major BWHERE A.学号=B.学号 

自身连接: 就是和自己进行连接查询,给一张表取两个不同的别名,然后附上连接条件。

--要在学生表里查询与 HH 同龄且籍贯也相同的学生信息SELECT B.学号, B.姓名, B.性别, B.籍贯, B.年龄FROM student A JOIN student BON A.年龄=B.年龄 AND A.籍贯=B.籍贯 AND A.姓名='HH'

我自己对于自身连接的理解:首先要查询B表中的数据,将A表的姓名的条件用完,A表只剩下了一HH相关的数据。接着执行AB的等值条件并从B表中筛选出数据。

获取左表中的所有记录,即使在右表没有对应匹配的记录。

--左连接:显示左表student所有记录,如右表中没有与之--匹配的项则以NULL值代替。SELECT A.学号, A.姓名, A.籍贯, A.年龄, B.专业, B.班级FROM student A LEFT JOIN major B  ON  A.学号=B.学号

在这里插入图片描述
左连接(以左边的记录为基准)个人理解:
左表student右表major
上述要查询AB表中的信息,条件为学号
首先先找出AB中学号相同的记录

SELECT A.学号, A.姓名, A.籍贯, A.年龄, B.专业, B.班级FROM student A, `master` B  WHERE  A.学号=B.学号

在这里插入图片描述
由于是左连接,A表中还剩下几条数据,而这几条数据在B表中没有相应的数据,那么补NULL即可

在这里插入图片描述

--右连接:显示右表major所有记录,如左表中没有与之--匹配的项则以NULL值代替。SELECT A.学号, A.姓名, A.籍贯, A.年龄, B.专业, B.班级FROM student A RIGHT JOIN major B  ON  A.学号=B.学号

在这里插入图片描述
个人理解:现根据条件进行等值连接,再右表中的数据补上,没有的值补上NULL

返回两个表的所有行
在这里插入图片描述

--完全连接:显示两张表的并集,如果其中一张表的记录--在另一张表中没有匹配的行,则对应的数据项填充NULLSELECT A.学号, A.姓名, A.籍贯, A.年龄, B.专业, B.班级FROM student A FULL JOIN major B  ON  A.学号=B.学号

在这里插入图片描述
个人理解:有点像是左右连接的结合体。

结果是笛卡尔积,就是第一个表的行数乘以第二个表的行数。
在这里插入图片描述

--交叉连接:一张表中的数据依次取出分别与另一张表中的--每条数据挨个组合,最后记录数量为两张表记录数的乘积SELECT * FROM student CROSS JOIN major--本例student和major都为7条记录,所以结果为7*7=49条记录

在这里插入图片描述
个人理解:左表中的每一条数据都和右表中的每一条数据进行匹配
左表7条
右表7条
那么查询出的结果就是49条

返回左表有但右表没有关联数据的记录。
在这里插入图片描述

--左表唯一:将右表B以及两张表交集的部分过滤掉,--得到的记录是左表中唯一存在的。SELECT A.学号, A.姓名, A.籍贯, A.年龄, B.专业, B.班级FROM student A LEFT JOIN major B  ON  A.学号=B.学号WHERE B.学号 IS NULL

在这里插入图片描述

--右表唯一:将左表A以及两张表交集的部分过滤掉,--得到的记录是右表中唯一存在的。SELECT A.学号, A.姓名, A.籍贯, A.年龄, B.专业, B.班级FROM student A RIGHT JOIN major B  ON  A.学号=B.学号WHERE A.学号 IS NULL

在这里插入图片描述

在这里插入图片描述

--非交集连接:查找两张表中没有关联的记录项。SELECT A.学号, A.姓名, A.籍贯, A.年龄, B.专业, B.班级FROM student A FULL JOIN major B  ON  A.学号=B.学号WHERE A.学号 IS NULL OR B.学号 IS NULL

在这里插入图片描述
相当于左右表唯一的结合体

来源地址:https://blog.csdn.net/m0_52784892/article/details/127688559

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SQL联表查询

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SQL联表查询

表1学生信息表 表二专业信息表 – join on 连接查询 – where 等值查询 1、内连接 分为两种 等值连接: 查找两个表中连接字段相等的记录。 --查询每个学生的(学生表)学号、姓名、籍贯、年龄、(专业表)专业、班级--涉
2023-08-19

sql三表关联查询怎么查

sql 三表关联查询涉及以下步骤:选择表连接类型(inner join、left join、right join、full join)使用 on 关键字指定关联条件(左表字段 = 右表字段)使用以下语法执行查询:select from
sql三表关联查询怎么查
2024-06-04

sql三表关联怎么查询

三表关联是一种 sql 查询技术,通过指定连接条件将三个或更多表连接起来获取信息。主要有三种关联类型:内连接,左外连接和右外连接。使用 join 语句进行三表关联,指定连接表之间的列相等作为连接条件。SQL 三表关联查询什么是三表关联?
sql三表关联怎么查询
2024-05-30
2023-09-01

SQL 关联子查询

目录一、普通的子查询和关联子查询的区别二、关联子查询也是用来对集合进行切分的三、结合条件一定要写在子查询中请参阅学习重点关联子查询会在细分的组内进行比较时使用。关联子查询和 GROUP BY 子句一样,也可以对表中的数据进行切分。关联子查询的结合条件如果未出现
SQL 关联子查询
2016-06-28

Access中sql如何关联两个表查询

如何关联Access中的两个表关联查询将来自多个表的相关数据组合在一起。在Access中,使用SQL查询关联表:确定关联列(相同或相关的数据)创建SQL查询,添加JOIN语句连接表:SELECT列名FROM表1JOIN表2ON表1.关联列=表2.关联列;指定条件(可选)选择JOIN类型(INNERJOIN、LEFTJOIN等)示例:关联Customers和Orders表:SELECTCustomers.CustomerName,Orders.OrderIDFROMCustomersJOINOrdersON
Access中sql如何关联两个表查询
2024-04-09

【MySQL】MySQL表之联合查询(多表查询)

📌前言:本篇博客介绍MySQL数据库的MySQL表之联合查询(多表查询),学习MySQL之前要先安装好MySQL,如果还没有安装的小伙伴可以看看博主前面的博客,里面有详细的安装教程。 那我们废话不多说,直接进入主体!
2023-08-16

Mysql 复杂查询丨联表查询

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! JOIN(联表查询) 联表查询(Join)是一种在数据库中使用多个表进行关联查询的操
2023-08-16

sql两表关联查询的方法是什么

在SQL中,两个表之间的关联查询通常通过使用JOIN子句来实现。以下是几种常见的关联查询方法:INNER JOIN:内连接,返回两个表中匹配行的交集。SELECT *FROM table1INNER JOIN table2ON tab
sql两表关联查询的方法是什么
2024-03-06

SQL的多表联查

SQL的多表联查在奋斗,90在追求。勇往无前,斗志昂扬,激情澎湃。我们在坚定的毅志中一天天的长大,一天天的成熟。岁月蹉跎,只为追求此生无悔!表关联 association概念表table代表了生活中一个主体,如部门表dept,员工表emp。表关联则代表了表之间
SQL的多表联查
2022-03-17

SQL 多表联合查询的几种方式详解

目录前言正文内连接等值连php接/相等连接自然连接自连接外连接左外连接右外连接全外连接/完全外连接交叉连接/笛卡尔积总结前言连接查询是关系数据中最主要的查询,包括内连接、外连接等。通过连接运算符可以实现多个表查询。正文连接查询主要分为
2023-02-15

SQL 多表联合查询的几种方式详解

这篇文章主要介绍了SQL 多表联合查询的几种方式,连接查询是关系型数据库中的一个重要标志,这次和大家一起复习多表查询的几种操作,结合实例代码讲解的非常详细,需要的朋友可以参考下
2023-02-15

sql全表查询避免

1. 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,select id from a where a is null;2. 应尽量避免在 where 子句中使用!=或操作符,否则将引擎放弃使用索引而进行
sql全表查询避免
2016-03-19

编程热搜

目录