什么时候使用内连接,什么时候使用外连接
需要查找两张表同时存在的数据,使用内连接
需要查找两张表中一张表存在,另一张表不存在的时候使用左外链接 或 右外链接
内连接的查询结果都是满足连接条件的元组。但有时我们也希望输出那些不满足连接条件的元组信息。比如,我们想知道每个学生的选课情况,包括已经选课的学生(这部分学生的学号在学生表中有,在选课表中也有,是满足连接条件的),也包括没有选课的学生(这部分学生的学号在学生表中有,但在选课表中没有,不满足连接条件),这时就需要使用外连接。外连接是只限制一张表中的数据必须满足连接条件,而另一张表中的数据可以不满足连接条件的连接方式。3种外连接:
1)左外连接(LEFTOUTER JOIN)
如果在连接查询中,连接管子左端的表中所有的元组都列出来,并且能在右端的表中找到匹配的元组,那么连接成功。如果在右端的表中,没能找到匹配的元组,那么对应的元组是空值(NULL)。这时,查询语句使用关键字LEFT OUTERJOIN,也就是说,左外连接的含义是限制连接关键字右端的表中的数据必须满足连接条件,而不关左端的表中的数据是否满足连接条件,均输出左端表中的内容。
例如:要查询所有学生的选课情况,包括已经选课的和还没有选课的学生,查询语句为
SELECT学生表.学号,姓名,班级,课程号,成绩
FROM学生表LEFT OUTER JOIN选课表ON学生表.学号=选课表.学号
左外连接查询中左端表中的所有元组的信息都得到了保留。
2)右外连接(RIGHTOUTERJOIN)
右外连接与左外连接类似,只是右端表中的所有元组都列出,限制左端表的数据必须满足连接条件,而不管右端表中的数据是否满足连接条件,均输出表中的内容。
例如:同上例内容,查询语句为
SELECT学生表.学号,姓名,班级,课程号,成绩
FROM学生表RIGHTOUTERJOIN选课表ON学生表.学号=选课表.学号
右外连接查询中右端表中的所有元组的信息都得到了保留。
3)全外连接(FULL OUTER JOIN)
全外连接查询的特点是左、右两端表中的元组都输出,如果没能找到匹配的元组,就使用NULL来代替。
例如:同左外连接例子内容,查询语句为
SELECT学生表.学号,姓名,班级,课程号,成绩
FROM学生表FULL OUTER JOIN选课表ON学生表.学号=选课表.学号
全外连接查询中所有表中的元组信息都得到了保留。
什么时候使用内连接,什么时候使用外连接相关推荐
- 数据库:区分笛卡儿积、自然连接、内连接、等值连接、外连接
假设存在两张表 c 和 p,这里使用的是MySQL数据库. 数据表 c: course_id title dept_name credits BIO-301 Genetics Biology 4 CS ...
- mysql a左外连接b b左外连接c_数据库中的 内连接,外连接(左连接,左外连接,右连接,右外连接),全连接,交叉连接...
数据库的连接类型:内连接,外连接,全连接 ,交叉连接 作用:连接是关系数据库的特点,数据的关联查询用到 多表连接 提高查询效率 前段时间面试被问到数据库的内连接和外连接的问题,进过一番周折的无师自通, ...
- 实例讲解内连接、左连接、右连接、交叉连接、外连接以及全连接
目录 示例表: 1.内连接-inner: 实例1:内连接表a和表b 实例2:内连接表a和表c 实例3:内连接表a和表b,使用">"号 实例4:内连接表a和表b,使用" ...
- oracle左外连接语法,Oracle 左外连接、右外连接、全外连接小总结
Oracle 左外连接.右外连接.全外连接小总结: 1.左外连接: left outer join 或者 left join 左外连接就是在等值连接的基础上加上主表中的未匹配数据,例: SELECT ...
- LINQ IN ACTION读书笔记:LINQ 使用连接 1、组连接 2、内连接 3、左外连接 4、交叉连接 使用和区别...
使用的数据源类型: static public class SampleData{static public Publisher[] Publishers ={new Publisher {Name= ...
- 理解内连接中的隐式内连接、显式内连接和外连接中的左外连接、右外连接
一.多表查询 二.在 MySQL 中创建 book 和 actor 两张表 1 创建 book 表及添加数据 CREATE TABLE `book` (`id` INT PRIMARY KEY NOT ...
- mysql的内连接、等值连接、外连接
内连接就是等值连接 所以一般直接在where语句中直接将相同字段用等号连接就行. select emp.empno,emp.ename,emp.deptno,dept.loc from emp,dep ...
- Oracle 多表查询 --笛卡尔集--左连接--右连接--1999 语法--满外连接
Oracle 多表查询总结 笛卡尔集现象: 笛卡尔集会在下面条件下产生: – 省略连接条件 – 连接条件无效 – 所有表中的所有行互相连接 为了避免笛卡尔集, 可以在where加入有效的连接条件. O ...
- mysql左外连接条件_mysql – 左外连接的MAX条件
---------- samples ---------- SamplesID stylenumber stylename status ----------- samples_details --- ...
- 外连接 及 无用的外连接
一:左右连接实例. 表TEST1: id 20 30 200 表TEST2: id 20 30 100 表TEST3: id 20 100 200 以下语句的查询结果 select t1.id as ...
最新文章
- 【转载】iOS堆和栈的理解
- 【pmcaff】苏杰:产品经理对技术做这些,就完蛋了
- Institute for Manufacturing virtual check in part 1
- 【Java基础】Java中的值传递、引用传递
- Elasticsearch DSL
- 基于单样本单统计推断-假设检验
- settype where used list - set type where use list - equipment download environme
- 训练日志 2018.12.6
- linux网络 (三):网络测试
- SCRT软件的使用教程
- 重要文件即时搞定,不用插电就能打印,汉印MT800移动便携打印机上手
- 数学建模:线性规划—投资的收益和风险模型 (Python 求解)
- 用C语言读把SGY地震数据读成txt
- 运筹说 第19期 | 线性规划经典例题讲解
- excel表格如何不需鼠标往下拖动而自动往下填
- Kafka 消费者模块(三):rebalance的发送JoinGroupResult请求
- VB程序界面设计经验点滴
- python+opencv实现文字颜色识别与标定
- Android7.0(mtk)开放root权限,adb root和app root
- HP路由器和交换机日志分析
热门文章
- 带你解锁蓝牙skill(一)
- 机器学习深度学习:准确率(Precision)、召回率(Recall)、F值(F-Measure)、ROC曲线、PR曲线
- AXIOM的介绍与使用
- Android Hook框架Xposed进阶
- Openwrt在AR9331交叉编译工具链
- Element-ui实现树形控件节点添加图标
- Salient Image Matting
- 高电压技术(电力装备数字化)领域的期刊
- 汽车车漆计算机调色的基本程序,汽车油漆调色技术教程(第4版)
- 最小二乘、加权最小二乘(WLS)、迭代加权最小二乘(迭代重加全最小二乘)(IRLS)