SQL Server其他连接概述

外连接定义:

        不但返回满足连接条件的所有记录,而且会返回部分不满足条件的记录。(用左表的第一行分别和右表的所有行进行连接,如果有匹配的行,则一起输出,如果右表有多行匹配,则结果集输出多行,如果没有匹配行,则结果集中只输出一行,该输出行的左边为左表第一行内容,右边全部输出null)

外连接分类:

        左外连接、右外连接。

tip:实际上左连接产生的结果集的行数很可能大于left join左边表的记录的总数,不能理解为:左连接left join左边表有n行,最终产生的记录也是n行。实际上左连接产生的结果集的行数很可能大于left join左边表记录的总数。

例:

select * from dept "D"
    left join emp "E"
    on E.deptno = D.deptno

完全连接: 

        (1)两个表中匹配的所有行记录。

        (2)左表中那些在右表中找不到匹配行的记录,这些记录的右边全为null。

        (3)右表中那些在左表找不到匹配行的记录,这些记录的左边全为null。

交叉连接:

        select * from emp cross  join dept

        等价于

        select * from emp,dept

自连接(重点):

        定义:

                一张表自己和自己连接起来查询数据。

        例:使用聚合函数找到工资最高的员工及其信息。

        select * from emp where sal = (select max(sal) from emp)

        例:不使用聚合函数找到工资最高的员工及其信息。(自连接)

        select * from emp

                where  empno not in (

                        select distinct "E1".empno

                        from emp "E1"

                        join emp "E2"

                        on "E1".sal < "E2".sal

                )

联合(union)

        定义:

                表和表之间的数据以纵向的方式连接在一起。

        例:输出每个员工的姓名、工资、上司的姓名

                select "E1".ename, "E1".sal, "E2".ename "上司的姓名"

                        from emp "E1"

                        join emp "E2"

                        on "E1".mgr = "E2".empno

                union        

                select ename, sal "最大老板", 

                        from emp

                        where mgr is null

分页查询:

类似于网页查找时,最下面一排的导航栏,需要在点击不同的链接时,显示出该页所需展示的数据库中的数据。 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值