Oracle_SQL99_连接查询
Oracle_SQL99_连接查询
| 交叉连接 cross join |
|
--交叉连接 cross join
--作用:产生两个表的笛卡尔积
select * from emp cross join dept;
select * from emp cross join dept where emp.deptno = dept.deptno; |
| 自然连接 natural join |
|
--自然连接 natural join,类似于SQL92中的等值连接
--自然连接不允许在参照列上使用表名或者别名作为前缀
select * from emp natural join dept;
--using连接,用于指定进行等值连接的列名
--using中不允许使用表名或表的别名修饰
--join单独使用就是内连接的意思,可以省略inner
select * from emp inner join dept using(deptno); |
| on 子句 |
|
--查询员工的姓名,职位,薪资,薪资等级
--on子句:用于指定连接条件
select e.ename, e.job, e.sal, s.grade from emp e
join salgrade s
on e.sal between s.losal and s.hisal; --查询员工的编号,姓名,部门名称,薪资等级
select e.empno, e.ename, d.dname, s.grade
from emp e
join dept d on e.deptno = d.deptno
join salgrade s on e.sal between s.losal and s.hisal;
select e.empno, e.ename, d.dname, s.grade
from emp e
natural join dept d
join salgrade s on e.sal between s.losal and s.hisal;
select e.empno, e.ename, d.dname, s.grade
from emp e
join dept d using(deptno)
join salgrade s on e.sal between s.losal and s.hisal; |
| 自然连接 |
|
--自连接
--查询员工的编号,姓名,领导的编号,领导的姓名
select e1.ename, e2.empno, e2.ename from emp e1
join emp e2
on e1.mgr = e2.empno(+); |
|
--SQL99外连接 outer join
--左外连接(left outer join)
--右外连接(right outer join)
--满外连接(full outer join) |
|
select * from emp;
select e1.empno, e1.ename, e1.mgr, e2.ename from emp e1
left outer join emp e2
on e1.mgr = e2.empno;--左外连接,显示左边表的全部行
select * from emp;
select e1.empno, e1.ename, e1.mgr, e2.ename from emp e1
right outer join emp e2
on e1.mgr = e2.empno;--右外连接,显示右边表的全部行
select * from emp;
select e1.empno, e1.ename, e1.mgr, e2.ename from emp e1
full outer join emp e2
on e1.mgr = e2.empno;--满外连接,显示两个表的全部行 |
Oracle_SQL99_连接查询的更多相关文章
- MySQL8:连接查询
连接查询 连接是关系型数据库模型的主要特点. 连接查询是关系型数据库中最主要的查询,主要包括内连接.外连接等通过联结运算符可以实现多个表查询. 在关系型数据库管理系统中,表建立时各种数据之间的关系不必 ...
- SQL多表连接查询(详细实例)
转载博客:joeleo博客(http://www.xker.com/page/e2012/0708/117368.html) 本文主要列举两张和三张表来讲述多表连接查询. 新建两张表: 表1:stud ...
- Mysql联合,连接查询
一. 联合查询 UNION, INTERSECT, EXCEPT UNION运算符可以将两个或两个以上Select语句的查询结果集合合并成一个结果集合显示,即执行联合查询.UNION的语法格式为 ...
- Oracle学习笔记五 SQL命令(三):Group by、排序、连接查询、子查询、分页
GROUP BY和HAVING子句 GROUP BY子句 用于将信息划分为更小的组每一组行返回针对该组的单个结果 --统计每个部门的人数: Select count(*) from emp group ...
- SQL多表连接查询
SQL多表连接查询 本文主要列举两张和三张表来讲述多表连接查询. 新建两张表: 表1:student 截图如下: 表2:course 截图如下: (此时这样建表只是为了演示连接SQL语句,当然实际 ...
- mysql的查询、子查询及连接查询
>>>>>>>>>> 一.mysql查询的五种子句 where(条件查询).having(筛选).group by(分组). ...
- oracle(sql)基础篇系列(二)——多表连接查询、子查询、视图
多表连接查询 内连接(inner join) 目的:将多张表中能通过链接谓词或者链接运算符连接起来的数据查询出来. 等值连接(join...on(...=...)) --选出雇员的名字和雇员所 ...
- Sql Server系列:多表连接查询
连接查询是关系数据中最主要的查询,包括内连接.外连接等.通过连接运算符可以实现多个表查询.内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值.SQL Server中的内连接有 ...
- SubSonic3.0使用外连接查询时查询不出数据的问题修改
今天在开发时,要使用到外连接查询,如图 老是查不出数据,所以就追踪了一下代码,发现查询后生成的SQL语句变成了内连接了,真是晕 然后继续Debug,发现原来SqlQuery类在调用LeftInnerJ ...
随机推荐
- linux部署solr服务--小记
1.将solr压缩包上传到web项目-solr文件夹下 2.解压solr-5.5.4.zip到当前文件夹下 linux 解压zip文件到当前目录 unzip filename.zip 提示没有unzi ...
- mysql数据库出现2003-Can't connect to MySQL server on 'localhost' (10061)的解决方法
1.右键点击我的电脑,找到管理! 2.找到服务和应用程序: 3.打开找到服务,打开: 4.在服务里找到MySQL,改成启动:
- 【转】String Date Calendar之间的转换
1.Calendar 转化 String Calendar calendat = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDa ...
- ASP.NET Core使用静态文件、目录游览与MIME类型管理
前言 今天我们来了解了解ASP.NET Core中的静态文件的处理方式. 以前我们寄宿在IIS中的时候,很多静态文件的过滤 和相关的安全措施 都已经帮我们处理好了. ASP.NET Core则不同,因 ...
- Django学习日记05_模板_模板语言
Variables 在模板中,使用两个大括号包含变量的方式来使用变量: {{ name }} 该变量应该作为键值对中的键,在Context中能被查找到. Tags 模板中使用Tags来进行简单的逻辑: ...
- Robot Framework学习笔记(九)------创建资源和用户关键字
一.测试套件下创建用户关键字 1.创建关键字测试套件右击->点击new user keyword,然后输入name,点击OK保存. 2.在用户关键字的edit点击settings,然后输入Arg ...
- Spring异常处理@ExceptionHandler
最近学习Spring时,认识到Spring异常处理的强大.之前处理工程异常,代码中最常见的就是try-catch-finally,有时一个try,多个catch,覆盖了核心业务逻辑: try{ ... ...
- 再见乱码:5分钟读懂MySQL字符集设置
一.内容概述 在MySQL的使用过程中,了解字符集.字符序的概念,以及不同设置对数据存储.比较的影响非常重要.不少同学在日常工作中遇到的"乱码"问题,很有可能就是因为对字符集与字符 ...
- python3基础(二)
loops循环语句 一 if语句,if语句配合else使用,可以没有else. 单分支if语句 age = input('Age:') password = '67' if age == passwo ...
- webgl鱼眼算法
在网页上面实现,采用的是球面映射和材质线性映射,这里注意的是用线性映射保留了球面的感觉,而不是采用sin映射,sin映射在边缘会产生很难看的效果. 最后效果如下: