Oracle数据库--------------------多表查询(SQL1999语法)

Oracle数据库的学习记录:

十六、多表查询(SQL1999语法)
之前给出的(+)标记只是Oracle才有的
整个SQL:1999语法里面定义的多表查询的结构如下:
SELECT [DISTINCT] * | 列 [别名] FROM 表名称1
                                     [CROSS JION 表名称2]
                                     [NATURAL JOIN 表名称2]
                                     [JOIN 表名称 ON(条件)|USING(字段)]
                                     [LEFT|RIGHT|FULL OUTER JOIN 表名称2;
建议不使用
1.交叉连接:CROSS JOIN,主要的功能是产生笛卡尔积,
范例:SELECT * FROM emp CROSS JOIN dept;
2.自然连接:NATURAL JOIN,自动使用关联字段消除笛卡尔积(一般关联字段是外键,此处是使用名字),属于内连接的概念
范例:SELECT * FROM emp NATURAL JOIN dept;
在返回查询结果时,默认情况下会将关联字段设置在第一列上,重复的列内容不再显示
3.USING子句:如果一张表里面有多个关联字段存在,那么可以使用USING子句明确的设置一个关联字段
范例:SELECT * FROM emp JOIN dept USING(deptno);
4.ON子句:如果没有关联字段,那么可以使用ON子句设置条件
范例:SELECT * FROM emp e JOIN salgrade s ON(e.sal BETWEEN s.losal AND s.hisal);
5.外连接,在SQL:1999语法标准里面明确的定义了数据表的左外连接、右外连接、全外连接
范例:左外连接
SELECT * FROM emp LEFT OUTER JOIN dept USING(deptno);
范例:右外连接
SELECT * FROM emp RIGHT OUTER JOIN dept USING(deptno);
范例:全外连接
SELECT * FROM emp FULL OUTER JOIN dept USING(deptno);

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值