Oracle SQL——inner jion;left join;right join的区别和使用场景
背景
- 在一次面试的时候,面试官让我说一下这三者的使用场景和区别,当时瞬间懵逼,哈哈。回来赶快看一看,记下来。
详解
- inner join
- 等值查询:返回两张表中,联结字段值相等的组合记录
- 举例:所有学生参加考试,学生考试结果查询
- 表如下
表Student(学生表)记录如下:
t_id name
1 龙
2 情
3 风
4 月
5 度 表Score(分数表)记录如下:
c_id num t_id
1 50 1
2 88 2
3 90 3
4 62 4
5 0 5 - 查询语句:select s.t_id,s.name,c.num from Student s inner join Score c on s.t_id=c.t_id;
- 查询结果
t_id name num
1 龙 50
2 情 88
3 风 90
4 月 62
5 度 0
- 表如下
- left join
- 左外关联查询:返回包括左表中的所有记录和右表中联结字段有关的组合记录。如果左表中数据多于右表,查询结果中右表的数据为null。
- 举例:一个学生没有参加考试,查询考试结果
- 表如下
表Student(学生表)记录如下:
t_id name
1 龙
2 情
3 风
4 月
5 度表Score(分数表)记录如下:
c_id num t_id
1 50 1
2 88 2
3 90 3
4 62 4 - 查询语句:select s.t_id,s.name,c.num from Student s left join Score c on s.t_id=c.t_id;
- 查询结果
t_id name num
1 龙 50
2 情 88
3 风 90
4 月 62
5 度 null
- 表如下
- right join
- 右外关联查询:返回包括右表中的所有记录和左表中联结字段相等的组合记录。如果右表中数据多于左表,查询结果中左表的数据为null。
- 举例
- 表如下
表Student(学生表)记录如下:
t_id name
1 龙
2 情
3 风 表Score(分数表)记录如下:
c_id num t_id
1 50 1
2 88 2
3 90 3
4 62 4 - 查询语句:select s.t_id,s.name,c.num from Student s rightjoin Score c on s.t_id=c.t_id;
- 查询结果如下
t_id name num
1 龙 50
2 情 88
3 风 90
null null 62
- 表如下
Oracle SQL——inner jion;left join;right join的区别和使用场景的更多相关文章
- Oracle SQL Lesson (6) - 使用Join进行联合查询
使用连接SQL 1999SELECT table1.column, table2.columnFROM table1[NATURAL JOIN table2] |[JOIN table2 USING ...
- Oracle SQL中join方式总结
在ORACLE数据库中,表与表之间的SQL JOIN方式有多种(不仅表与表,还可以表与视图.物化视图等联结).SQL JOIN其实是一个逻辑概念,像NEST LOOP JOIN. HASH JOIN等 ...
- mysql inner join,full outer join,left join,right jion
https://sites.google.com/site/349624yu/courses/mysql/mysqldbgjzcx inner join,full outer join,left jo ...
- SQL中的Join和Where的区别
一.sql语句中left join.inner join中的on与where的区别 0.各种join操作的概念和作用 left join :左连接,返回左表中所有的记录以及右表中连接字段相等的记录. ...
- SQL JOIN语法,以及JOIN where 和and区别,还有where和join效率问题。
语法 join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据. Join 和 Key 有时为了得到完整的结果,我们需要从两个或更多的表中获取结果.我们就需要执行 join. 数据库中的表可 ...
- SQL Left Join, Right Join, Inner Join, and Natural Join 各种Join小结
在SQL语言中,存在着各种Join,有Left Join, Right Join, Inner Join, and Natural Join等,对于初学者来说肯定一头雾水,都是神马跟神马啊,它们之间到 ...
- 图解SQL的inner join(join)、left join、right join、full outer join、union、union all的区别
对于SQL的Join,在学习起来可能是比较乱的.我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚.Codin ...
- sql表连接left join,right join,inner join三者之间的区别
sql表连接left join,right join,inner join区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 (以左表数据为基准,不足补为NULL) ...
- SQL内连接-外连接join,left join,right join,full join
1.创建测试表test1及test2 SQL)); 表已创建. SQL)); 表已创建. ,'name1'); ,'name2'); ,'name3'); ,'name4'); ,'name5'); ...
随机推荐
- vue中使用elementui里的table时不被选中设置
情景:例如提现列表,转账失败后转账金额直接返回用户余额,所以当前数据不可以再次操作 直接粘贴代码: <el-table-column type="selection" wid ...
- (3)Python3笔记之变量与运算符
一.变量 1). 命名规则: 1. 变量名不能使用系统关键字或保留关键字 2. 变量区分大小写 3. 变量命名由字母,数字,下划线组成但不能以数字开头 4. 不需要声明变量类型 是 a = 1 ...
- 01JAVA语言基础课后作业
1.问题 一个Java类文件中真的只能有一个公有类吗? 请使用Eclipse或javac检测一下以下代码,有错吗? 回答 真的只能有一个公有类 一个Java源文件中最多只能有一个public类,当有 ...
- 删除SQL Server大容量日志的方法(转)
删除SQL Server大容量日志的方法 亲自实践的方法 1.分享数据库,如果提示被其他连接占用,不能分离,刚勾上drop connections 2.复制下所有文件,一定要备份好,以防自己操作失误 ...
- http与https区别
1.安全. 内容采用对称加密,身份认证.建立一个信息安全通道来保证数据传输的安全.采用对称加密算法,来加密真实传输的数据.采用非对称加密算法(公钥和私钥),来保证连接的安全性.防止内容被第三方冒充和篡 ...
- Python全栈-day14-模块和包
一.模块 1.模块 1)定义 一系列功能的集合体,在Python中py文件就是一个模块 2)模块的类别 a.使用Python编写的py文件 b.已经被编译成共享库或者DLL的C 或者 C++ 扩展 c ...
- html5-css动画-2d
div{ width: 300px; height: 100px; margin: 50px; padding: 50px; background: green; ...
- poj2114 寻找树上存在长度为k点对,树上的分治
寻找树上存在长度为k点对,树上的分治 代码和 这个 差不多 ,改一下判断的就好 #include <iostream> #include <algorithm> #inc ...
- Gitlab注册时报错:There was an error with the reCAPTCHA. Please solve the reCAPTCHA again.
今天注册时碰到以下问题: 上面的错误是因为注册时有一个google的验证码需要输入.但是中国无法访问google,因此无法访问并输入该验证码导致. 解决方案: FanQiang或者通过Github登陆 ...
- Python 学习记录之----模块 paramiko
paramiko 一.安装 pip3.5 install paramiko pip3.5 install pycrypto # pycrypto,由于 paramiko 模块内部依赖pycrypto, ...