zoukankan      html  css  js  c++  java
  • 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;

     

  • 相关阅读:
    [luoguP1098] 字符串的展开(模拟)
    [luoguP1033] 自由落体(模拟?)
    [luoguP1011] 车站(递推)
    [luoguP1097] 统计数字(水)
    [luoguP2672] 推销员(贪心 + 树状数组 + 优先队列)
    [luoguP1043] 数字游戏(DP)
    [luoguP1058] 立体图(超级大模拟(¬︿̫̿¬☆))
    [luoguP1021] 邮票面值设计(DFS + dp)
    POJ 2184 Cow Exhibition (带负值的01背包)
    POJ 2392 Space Elevator (DP)
  • 原文地址:https://www.cnblogs.com/jasonlixuetao/p/5987768.html
Copyright © 2011-2022 走看看