黑马程序员-Oracle(第六讲)sql1992

来源:互联网 发布:淘宝黑号是永久的吗 编辑:程序博客网 时间:2024/05/16 13:02

黑马程序员-Oracle(第六讲,sql1999

1、自连接

需求:求出emp表中每个人的名字,以及他的经理人的名字

 

2、sql语言有两个版本,19921999,上面的语法基本都是旧的语法,现在来学习一下新的语法。

看个sql语句:

 

这是1992的标准,它的缺点是没有将连接条件个过滤条件明显的分开。

 

 

同样的效果,看看1999的新语法

 

3、选出emp表中每个人是哪个部门的

sql语句:

 

新的sql语句不会这么写,它不会将连接条件放在where里面,where里面只放过滤条件。

 

on指定连接条件。

对于这种等值连接还有一种简单用法,

 

它的意思是用两个表中deptno相等进行连接,但是这种用法不推荐使用。

4、看看非等值连接的情况

求出emp表中每个人的薪水等级

 

再看一下三个表连接在一起的情况:
求出emp表中每个人的姓名,所属部门,薪水等级,并且这个人的名字的第二个字母不能是A.

 

求出emp表中所有人的姓名及其经理的姓名

 

注意上面选择了13行,因为KING没有经理,那么我们如果也想要将KING选出来呢?即使他没有经理。这时候可以用做外连接。

5、左外连接

会将左边那张表中没有匹配的数据也显示出来

 

 

效果一样 leftleft outer的简写。

 

6、右外连接 right outer 可以省略outer

 

可以看到,在dept中有deptno40的记录

但是

 

由于在emp表中没有员工的所属部门是OPERATIONS,所以看不到这个部门,但是现在我想要在结果中显示所有的部门,这就要用到右外连接。

 

7、全外连接 full join

就是将左边表右边表的所有数据都显示出来

 

0 0
原创粉丝点击