连接查询(重点)

连接查询

        定义:

                将两个表或者两个以上的表以一定的连接条件连接起来,从中检索出满足条件的数据。

        分类:

                内连接,外连接,完全连接,交叉连接,自链接,联合。

内连接(重点中的重点,难点中的难点)

tip:顺序

                select top...

                        from A

                        join B

                        on...

                        join C      

                        on...

                        where...

                        group by...

                        having...

                        order by...

        1.select ... from A, B 的用法;

                产生的结果(把A表的每一条记录和B表的每一条记录组合在一起形成的是个笛卡尔积):

                        行数为A、B的乘积;

                        列数为A、B之和;

                        select * from emp,dept--输出70行11列

        2.select ... from A, B where ... 的用法;

                产生的结果:

                        对select ... from A, B

                        产生的笛卡尔积用where中的条件进行过滤。

                        select * from emp,dept 

                                where empno = 7369--输出5行

        3.select ... from A join B on ... 的用法;

                产生的结果(join为连接on为连接条件):

                        select "E".ename "员工姓名", "D".dname "部门名称"

                                from emp "E"

                                join dept "D"

                                on "E".deptno = "D".deptno--输出14行2列

        4.select ... from A, B where ...与select ... from A join B on ... 的比较;

                select ... from A, B where ...(是SQL92标准)

                select ... from A join B on ...(是SQL99标准)

                比较:

                        SQL92标准与SQL99标准输出相同。

                        推荐使用SQL99标准:

                                1.SQL99更容易理解;

                                2.在SQL99中,on和where可以做不同的分工,on指定连接条件,where对连接之后的临时表的数据进行过滤。

                例:SQL92实现方式

                        select *

                                from emp "E", dept "D"

                                where "E".sal > 2000 and "E".deptno = "D".deptno

                例:SQL99实现方式

                        select *

                                from emp "E"

                                join dept "D"

                                on "E".deptno = "D".deptno

                                where "E".sal > 2000

        5.select、from、where、join、on、group、order、top、having的混合使用;

        6.习题

                (1)求出每个员工的姓名,部门编号,薪水和薪水的等级。

                (2)查找每个部门的编号,该部门所有员工的平均工资,平均工资等级。

                (3)求出emp表中所有领导的姓名。

                (4)求出平均薪水最高的部门的编号和部门的平均工资。

                (5)把工资大于所有员工中工资最低的人中,前三人的姓名、工资、部门编号、部门名称、工资等级输出。

  • 27
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值