oracle表内连接和外连接
n 概述
表连接分为内连接和外连接
n 内连接
内连接实际上就是利用where子句对两张表形成的笛卡尔集进行筛选,我们前面学习的查询都是内连接,也是在开发过程中用的最多的连接查询。
基本语法:
select 字段1,字段2,. . . from 表1 inner join 表2 on 条件 . . .
select emp.ename,dept.dname from emp,dept where emp.deptno=dept.deptno; 等同于
select emp.ename,dept.dname from emp inner join dept on emp.deptno=dept.deptno;
n 外连接
①左外连接 (如果左侧的表完全显示我们就说是左外连接)
②右外连接 (如果右侧的表完全显示我们就说是右外连接)
③完全外连接 (完全显示两个表,没有匹配的记录置为空)
SQL> create table stu(id number,name varchar2(32));
SQL> create table exam(id number,grade number);
实际应用
显示所有人的成绩,如果没有成绩,也要显示该人的姓名和ID号,成绩显示为空。
select stu.name,stu.id,exam.grade from stu,exam where stu.id=exam.id;
上面我们使用的内连接:它的特点是只有两张表同时匹配,才被选择。
①使用左外连接:
select stu.name,stu.id,exam.grade from stu left join exam on stu.id=exam.id;
如果stu(左表)的记录没有和exam任何一条记录匹配,也要被选中。
怎么判断一张表是左边,如果在left join左边,就是左表。
另外一种写法:
select stu.name,stu.id,exam.grade from stu,exam where stu.id=exam.id(+);
②右连接(显示所有成绩,如果没有名字匹配,显示空)
select stu.name,stu.id,exam.grade from stu right join exam on stu.id=exam.id;
③完全外连接(显示所有成绩和所有人的名字,如果相应的匹配值,则显示空)
说明:有外联,指定是右边的表如果没有和左边任何一条记录匹配,也要被选中。
另外还有一种写法:
select stu.name,stu.id,exam.grade from stu,exam where stu.id(+)=exam.id;
把(+)写在左边,就表示右外联。
小结:实际上左外联和右外联是可以互为转换
显示所有人的成绩,如果没有成绩,也要显示该人的姓名和ID号,成绩显示为空。
(1)select stu.name,stu.id,exam.grade from stu right join exam on stu.id=exam.id;
(2)select stu.name,stu.id,exam.grade from stu,exam where stu.id(+)= exam.id;
(3)select stu.name,stu.id,exam.grade from exam left join stu on stu.id=exam.id;
(4)select stu.name,stu.id,exam.grade from stu,exam where exam.id= stu.id(+);
完全外连接(显示所有成绩和所有人的名字,如果相应的匹配值,则显示空)
即:两个表查询,不管有没有匹配,全都显示。
select stu.name,stu.id,exam.grade from stu full outer join exam on stu.id=exam.id;
转载于:https://www.cnblogs.com/fanweisheng/p/11113719.html
oracle表内连接和外连接相关推荐
- Oracle数据库:oracle内连接inner join on,多表查询各种自链接、内连接、外连接的练习示例
Oracle数据库:oracle内连接inner join on,多表查询各种自链接.内连接.外连接的练习示例 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得 ...
- 4.mysql数据库创建,表创建模等模板脚本,mysql_SQL99标准的连接查询(内连接,外连接,满外连接,交叉连接)
mysql数据库创建,表创建模等模板脚本 --用root用户登录系统,执行脚本 --创建数据库 create database mydb61 character set utf8 ; --选择数 ...
- oracle连接总结(内连接、外连接、自然连接,交叉连接,自连接)
永不放弃,一切皆有可能!!! 只为成功找方法,不为失败找借口! oracle连接总结(内连接.外连接.自然连接,交叉连接,自连接) 1.简述 1) 两个表的连接,是通过将一个表中的一列或者多列同另一 ...
- mysql外连接基准表_4.mysql数据库创建,表创建模等模板脚本,mysql_SQL99标准的连接查询(内连接,外连接,满外连接,交叉连接)...
mysql数据库创建,表创建模等模板脚本 --用root用户登录系统,执行脚本 --创建数据库 create database mydb61 character set utf8 ; --选择数 ...
- MySQL基础~多表查询分类与SQL92和99语法如何实现内连接和外连接
文章目录 多表查询的分类 等值连接 vs 非等值连接 自连接 vs 非自连接 内连接 vs 外连接 SQL92和SQL99语法如何实现内外连接 多表查询的分类 这个分类是根据多表查询时的连接条件而划分 ...
- Mysql表连接:内连接、外连接、交叉连接、自然连接真的都不一样吗
文章目录 前言 测试环境 创建测试数据 对比测试 内连接 交叉连接 外连接 左外连接 右外连接 自然连接 一般自然连接 自然左外连接 自然右外连接 STRAIGHT_JOIN 逗号分隔连接表 各种连接 ...
- oracle 内连接、外连接、全连接
oracle 内连接.外连接.全连接 1.内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 stude ...
- mysql 多表既有内连接又有外连接_MySQL 多表查询中的内连接和外连接
一般情况下一个网站的数据库通常会有多张数据表组成,这些数据表分别存储网站不同区域的内容.数据表之间可以用类似 ID 的字段来关联,在查询的时候可以通过一条语句来查询多张表的内容.例如 论坛的数据库,帖 ...
- MySQL 内连接、左连接、右连接、外连接、多表查询
MySQL 内连接.左连接.右连接.外连接.多表查询 构建环境: create table t_emp(id int primary key, name varchar(20),deptId int ...
- 二、MySQL连接查询学习笔记(多表连接查询:内连接,外连接,交叉连接详解)
MySQL连接查询(多表连接查询:内连接,外连接,交叉连接详解) 6:多表连接查询 笛卡尔乘积:如果连接条件省略或无效则会出现 解决办法:添加上连接条件 连接查询的分类: 1.按年代分类:1)sql ...
最新文章
- HarmonyOS UI 开发 vp ,fp , px 以及写具体数字的 理解
- 本是同根生,相煎何太急?
- Linux下实现文件双向同步
- gin post 数据参数_Gin 使用示例(四):绑定查询字符串或 POST 数据
- ABAP 编程语言中的系统字段(System Fields)
- 域名带后缀_[Python 爬虫]获取顶级域名及对应的 WHOIS Server 及 whoisservers.txt 下载...
- 面试官十大常问面试问题总结
- 【为了爱,为了pascal】【第三章】 认识PASCAL语言基础
- 召唤神龙Ladon强化Cobalt Strike
- 电信dns地址是多少?
- python中一元二次方程的判别式_【Python算法作业】解一元二次方程
- 大数据讲课笔记5.5 MR案例——倒排索引
- 2022-2028全球婚恋交友软件行业调研及趋势分析报告
- 查看mysql中SQL的执行计划
- 一个虎扑社区数据分析实战
- 小程序 wx.showModal
- Adobe软件安装错误127替代方案
- Python之面相对象 - 函数VS方法 反射
- Fluent Ribbon界面布局
- jdk下载与安装教程(win10)
热门文章
- 装ubuntu_系统安装_win10下安装Ubuntu后,启动时无win10选项的解决办法。
- win10亮度怎么调_装好原版win10后,没有这样设置过,你的系统怎么可能好用!...
- TortoiseSVN使用教程
- ext3日志模式---文件系统
- c++时间类型详解 time_t
- ixigua解析_资本运作系列课程五:《科创板申请上市估值模型理论解析》现场直播回放...
- java编辑遗忘曲线代码_用jsp写出记忆曲线的表格(用学习新概念英语做例子)
- 0 y 100写成c语言,c语言100编程实例
- C++ OS 网络 数据库 (面试)
- main函数执行前后发生了什么