数据库中的连接查询方式(基本)

1 问题描述
在数据库的学习中,我们知道数据库涉及到多表查询的时候需要用到不同的连接查询方式,SQL中将连接分成:内连接、外连接、自然连接、交叉连接;其中内连接与外连接是比较常用的连接。内连接:从左表中取出数据去跟右表中的所有记录进行匹配:匹配结果必须是某个条件在左表和右表中的结果相同才会保留,否则不保留。在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给我们带来很大的灵活性,可以增加新的数据类型。之后通过连接进行查询。接下来将简单的谈一谈我所理解的数据库的几种连接查询方式。

2 问题分析
通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。
连接查询可分为三种:内连接、外连接和交叉连接。内连接使用比较运算符进行表间某(些)列数据的比较操作,并列出这些表中与连接条件相匹配的数据行。根据所使用的比较方式不同,内连接又分为等值连接、自然连接和不等连接三种。 外连接分为左外连接、右外连接、和全外连接三种。与内连接不同的是,外连接不只列出与连接条件相匹配的行,而是列出左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的数据行。

3 解决方案
内连接(inner join 或 join)

内连接是等值连接,它使用“=、>、<、<>”等运算符根据每个表共有的列的值匹配两个表中的行
查询语句:
请添加图片描述

左连接(left join 或 left outer join)

左连接又称左向外连接,查询的结果集包括SQL语句中左表的所有行,右表中匹配的行。如果左表的某行在右表中没有匹配行,则用空值表示
查询语句:
请添加图片描述

右连接(right join 或 right outer join)

右连接也成右向外连接,查询的结果集包括SQL语句中右表的所有行,左表中匹配的行。如果右表的某行在左表中没有匹配的行,则用空值表示
查询语句:
请添加图片描述

完全外连接(full join 或 full outer join)

完全外连接,查询的结果集包括SQL语句中左表和右表的所有行。如果某行在另一个表中没有匹配行时,则用空值表示。
查询语句:
请添加图片描述

4 总结
INNER JOIN: 如果查询的表中都有至少一个匹配,则返回行
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行
UNION:合并多个SELECT 语句的结果集

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的数据库查询连接查询实验。 假设我们有两个表格,一个叫做“学生表格”,包含学生的信息,另一个叫做“成绩表格”,包含学生的各种科目的成绩。两个表格都有一个共同的字段“学生ID”。 学生表格: | 学生ID | 姓名 | 年龄 | 性别 | | ------ | ---- | ---- | ---- | | 001 | 张三 | 20 | 男 | | 002 | 李四 | 22 | 男 | | 003 | 王五 | 20 | 女 | | 004 | 赵六 | 21 | 男 | 成绩表格: | 学生ID | 语文成绩 | 数学成绩 | 英语成绩 | | ------ | -------- | -------- | -------- | | 001 | 80 | 90 | 85 | | 002 | 75 | 85 | 90 | | 003 | 85 | 95 | 80 | | 004 | 90 | 80 | 95 | 我们想要查询每个学生的姓名、年龄、性别以及他们的语文成绩。 使用简单查询: ``` SELECT 学生表格.姓名, 学生表格.年龄, 学生表格.性别, 成绩表格.语文成绩 FROM 学生表格, 成绩表格 WHERE 学生表格.学生ID = 成绩表格.学生ID; ``` 使用连接查询: ``` SELECT 学生表格.姓名, 学生表格.年龄, 学生表格.性别, 成绩表格.语文成绩 FROM 学生表格 INNER JOIN 成绩表格 ON 学生表格.学生ID = 成绩表格.学生ID; ``` 这两个查询的结果应该是相同的: | 姓名 | 年龄 | 性别 | 语文成绩 | | ---- | ---- | ---- | -------- | | 张三 | 20 | 男 | 80 | | 李四 | 22 | 男 | 75 | | 王五 | 20 | 女 | 85 | | 赵六 | 21 | 男 | 90 | 这个实验使用的是简单的查询连接查询数据库查询语言还有很多其他的语法和功能,需要根据实际需求进行选择和使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值