oracle之连接查询和子查询

本文详细介绍了Oracle数据库中的连接查询,包括SQL92和SQL99的多表连接方式,如等值连接、非等值连接、外连接和自连接。同时,文章也探讨了子查询的使用,包括单行子查询和多行子查询,并提到了rowid和rownum在查询中的作用。此外,还讲解了分页查询的实现方法。
摘要由CSDN通过智能技术生成

连接查询和子查询

SQL92的多表连接查询

一、本节要点
1.笛卡尔集
2.等值连接
3.非等值连接
4.外连接
5.自连接
说明。SQL 92是1992年提出的查询语法,向上兼容
二、语法,类型及连接类型区分
语法规则

SELECT table1.column, table2 .column
FROM
table1, table2
WHERE table1.column1 = table2 .column2;

特点
1.在WHERE子句中写入连接条件
2.当多个表中有重名列时,必须在列的名字前加上表名作为前缀
连接的类型:
等值连接- Equijoin
非等值连接- Non- equijoin
外连接- Outer join
1.左外连接
2.右外连接
自连接- Self join
三、笛卡尔集

select * from dept;//4条记录
select * from emp; ;/14条记录
select * from dept,emp; ;//4* 14=56条记录

总结
检索出的行的数目将是第一个表中的行数乘以第二 个表中的
行数
检索出的列的数目将是第-个表中的列数加上第二个表中的
列数
应该保证所有联结都有where子句,不然数据库返回比想要
的数据多得多的数据
四、等值查询
在这里插入图片描述
注意点
当被连接的多个表中存在同名字段时,须在该字段前加
上"表名"前缀可使用AND操作符增加查询条件;
使用表别名可以简化查询;
使用表名(表别名)前缀可提高查询效率;
五、非等值查询
要求:查询员工的工资等级

select empno,ename,job,sal,grade
from emp e,salgrade s
where e.sal<s.hisal and e sal>s.losal;

select empno,ename,job,sal,grade
from emp e,salgrade s
where e.sal<s.hisal and e.sal>s.losal and e.job='MANAGER';

六、外连接
使用外连接可以看到参与连接的某一方不满足连接条件的记
录,而不仅仅是满足连接条件的数据。
外连接运算符为(+)
外连接分为左外连接和右外连接两种
左外连接显示左边表的全部行

SELECT table.column, table column
FROM
table1, table2
WHERE table1.column = table2.column
  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值