• mysql_数据查询_连接查询


    连接查询

    1.连接(join)

      也称θ连接,从两个关系的笛卡尔积中选择属性间满足一定条件的元组。

      等值连接:θ为“=”的连接运算称为等值连接。从关系R和S的广义笛卡尔积中选取A、B属性值相等的元组。

    自然连接:一种特殊的等值连接。要求关系中进行比较的分量必须是同名的属性组,并且在结果中把重复的属性去掉

    外连接:把悬浮元组也保存在结果关系中,而在其他属性上填NULL。OUTER JOIN

    左外连接:只保留左边R关系的悬浮元组。  LEFT OUTER JOIN

    右外连接:只保留右边S关系的悬浮元组。  RIGHT OUTER JOIN

    2.连接查询:

    查询同时设计两个以上的表,则称之为连接查询。是数据库中最主要的查询,包括等值连接查询、自然连接查询、非等值连接查询、自身连接查询、外连接查询和复合条件连接查询。

    1.等值与非等值连接查询:

    SELECT Student.*,SC.* FROM Student,SC WHERE Student.Sno=SC.Sno;   等值连接

     

    SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade      自然连接

    FROM Student,SC WHERE Student.Sno=SC.Sno;

     

    一条SQL语句可以同时完成选择和连接查询,这是WHERE子句是由连接谓词和选择谓词组成的复合条件。

    SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade
    FROM Student,SC WHERE Student.Sno=SC.Sno AND SC.Grade>90;

    该查询的一种优化的执行过程,先从SC中挑选出Cno='2'并且Grade>90的元组形成一个中间关系,再和Student中满足连接条件的元组进行连接得到最终的结果关系。

    2.自身连接:

    查询有先修课的课

    SELECT FIRST.Cno,SECOND.Cno FROM Course FIRST,Course SECOND WHERE FIRST.Cpno=SECOND.Cno;

    为Course取了两个别名FIST,SECOND

    3.外连接:

    把悬浮元组保存在结果集合中。

    SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade

    FROM Student LEFT OUTER JOIN SC ON(Student.Sno=SC.Sno);

    4.多表连接:

    涉及多张表。

    SELECT Student.Sno,Sname,Cname,Grade

    FROM Student,SC,Course WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno;

     

  • 相关阅读:
    C++互斥器:Semaphores
    C++互斥器:Mutex
    内联函数(inline)
    C++显式转换
    线程同步控制
    拷贝构造函数——防篡改
    extern关键字
    虚析构、纯虚析构
    类的友元关系
    char 与 unsigned char的本质区别
  • 原文地址:https://www.cnblogs.com/jasonlixuetao/p/5987768.html
Copyright © 2020-2023  润新知