• 子查询、联合查询和连接查询


    子查询:查询中嵌套查询。

    如:select * from (select CName,CId from TblClass union select DName,DId from Department) as t1 order by cname

    联合查询:将多个结果集合并成一个结果集,前提是列数相同,并且相应的列的类型相同。判断标准以第一个表的结果集为准。

    执行结果集的特点:结果集的列名以第一个为准;

    如上面的语句的结果集为在第一个表的基础上,插入第二个表的数据。列数和原来一致,只增加行数。

    使用union关键字,不自动排序,也不消除重复项

    使用union all关键字,自动排序、消除重复项

    连接查询:做多个表的数据查询。有时,结果集中的数据被包含在多个表中,则需要使用连接查询。

    第一种:内连接 inner join... on 或join... on 

    匹配两个表中都有的数据

    select tClassName,tSName from TblClass inner join tblstudent on TblClass.tClassId=TblStudent.tSClassId

    只有两个表中的数据集合on条件,才会显示在结果集中。

    第二种:自连接 inner join... on 

    在实际开发过程中,如果几个表(实体)满足树状结构,每个表处于单独一级,且观察发现表的结构非常类似,于是考虑将这些表合成一张表,这个时候就可以用自连接。

    特点:关系列的值引用的本表中主键列信息

    示例数据groups表(对于没有上级的信息,可以使用0来填充)

    gid    gname                 gparent

    1       总部                     0

    2       北京分公司            1

    3       上海分公司            1

    4       深圳分公司            1

    5       广州分公司            1

    6       .net部门               2

    7       .net部门               5

    这个表也可以通过总部、分公司、部门三个表进行联合查询得到。

    当前表的含义:第一级分类:总部,第二级分类:分公司,第三级分类:部门,明显满足条件,所以考虑用自连接,即gparent作为关系列。

    使用自连接查询部门名称及对应的公司名称

    --查询部门名称

    select gname from groups as department

    --查询公司名称

    select gname from groups as company

    --需要从部门表和公司表连接查询

    select department.gname,company.gname from groups as department inner join groups as company on department.gparent=company.gid

    第三种:外连接left join right join full join 

    left join:左表中的信息全部出现,右表中的信息必须能够匹配的才出现,未匹配的项使用null填充

    right join:右表中的信息全部出现,左表中的信息必须能够匹配的才出现,未匹配的项使用null填充

    full join:所有数据都会出现,不匹配的项使用null填充,只要想做连接查询,必须分析出两个表间的关系

  • 相关阅读:
    Unity3D Shader入门指南(二)
    Unity3D Shader入门指南(一)
    NGUI 减少drawcall规则
    linux系统date命令详解
    使用Installutil安装系统服务方法
    各大视频网站广告屏蔽代码
    C#--无边框窗体实现拖动、最大化、最小化、关闭(转)
    C# 如何在winform窗体自定义一个扁平化控件(转)
    C# winform 界面美化技巧(扁平化设计) (转)
    VC6插件安装--Unable to register this add-in because its DllRegisterServer returns an error (转)
  • 原文地址:https://www.cnblogs.com/shuibi/p/6627056.html
Copyright © 2020-2023  润新知