友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
狗狗书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

SQL 21日自学通(V3.0)(PDF格式)-第47章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!






与数据库管理员来套交情好让他看管你那庞大的                        多部门的数据库         另外的优点就是由于 



网路的发展  每个表都可以放在不同的机器上  所有它可以在适当的地点由对它的内部数 



据熟悉的人来进行维护            而不是像大型机那样需要一队的专家来进行维护 



    现在将 PARTS 表与 ORDERS 表进行联合 



    INPUT/OUTPUT 



    SELECT  O。ORDEREDON      O。NAME    O。PARTNUM    P。PARTNUM    P。DESCRIPTION 



    FROM    ORDERS    O  PART   P 



ORDEREDON       NAME             PARTNUM         PARTNUM         DESCRIPTION 



15…MAY…1996     TRUE WHEEL       23              54              PEDALS 



19…MAY…1996     TRUE WHEEL       76              54              PEDALS 



  2…SEP…1996    TRUE WHEEL       10              54              PEDALS 



30…JUN…1996     TRUE WHEEL       42              54              PEDALS 



                                                                             124 


…………………………………………………………Page 125……………………………………………………………

SQL 21  日自学通(V1。0)                                           翻译人   笨猪 



ORDEREDON     NAME           PARTNUM       PARTNUM       DESCRIPTION 



30…JUN…1996   BIKE SPEC     54             54            PEDALS 



30…MAY…1996   BIKE SPEC     10             54            PEDALS 



30…MAY…1996   BIKE SPEC     23             54            PEDALS 



17…JAN…1996   BIKE SPEC     76             54            PEDALS 



17…JAN…1996   LE SHOPPE     76             54            PEDALS 



  1…JUN…1996  LE SHOPPE     10             54            PEDALS 



  1…JUN…1996  AAA BIKE      10             54            PEDALS 



  1…JUL…1996  AAA BIKE      76             54            PEDALS 



  1…JUL…1996  AAA BIKE      46             54            PEDALS 



11…JUL…1996   JACKS BIKE    76             54            PEDALS 



分析 



    上表只是结果集的一部分          实际上记录数应该有 14        定单行数       6 零件行数  =84 



行  它与今天的早些时候 TABEL1  与 TABEL2  的联合类似  这条语句的结果仍然没有太大 



的用处  在我们对这种语句深入之前             我们先回想并讨论一下别名的问题 



正确地找到列 



    当你将 TABLE1 与 TABLE2 联合以后      你使用 SELECT *  来选择了表中的所有列  在 



联合表 ORDER 和 PART  时  SELECT 看起来不太好懂 



    SELECT O。ORDEREDON   O。NAME   O。PARTNUM   P。PARTNUM  P。DESCRIPTION 



    SQL 可以知道 ORDEREDON 和 NAME  是在 ORDER 表中而 DESCRIPTION  则存在于 



PART 表中  但是 PARTNUM     呢  它在两个表中都有啊         如果你想使用在两个表中都存在 



的列  你必须使用别名来说明你想要的是哪一列                 常用的办法为每一个表分配一个简单的 



字符   就像你在 FROM 子句中所做的那样 



    FROM  ORDERS   O  PART  P 



    你可以在每一列中都使用这个字符             就像你刚才在 SELECT      中所做的那样      SELECT 



子句也可以写成下边的形式 



    SELECT  ORDEREDON   NAME   O。PARTNUM   P。PARTNUM  DESCRIPTION 



    可是不要忘记  有时你会不得不回过头来对查询进行维护                    所以让它更具有可读性并 



没有什么害处  还是不要使用这种省略的形式吧 



                                                                   125 


…………………………………………………………Page 126……………………………………………………………

SQL 21  日自学通(V1。0)                                               翻译人    笨猪 



等值联合 



    下边的表是 ORDERS 与 PARTS 表的联合结果的片断               作为缺货的情况 



30…JUN…1996    TRUEWHEEL       42             54             PEDALS 



30…JUN…1996    BIKESPEC        54             54             PEDALS 



30…MAY…1996    BIKESPEC        10             54             PEDALS 



注意到 PARTNUM 是两个表的共有字段              如果输入如下的语句会有什么结果呢 



    INPUT 



    SELECT  O。ORDEREDON    O。NAME   O。PARTNUM    P。PARTNUM   P。DESCRIPTION 



    FROM   ORDERS   O  PART   P  WHERE   O。PARTNUM    P。PARTNUM 



    OUTPUT 



  ORDEREDON      NAME            PARTNUM     PARTNUM     DESCRIPTION 



  1…JUN…1996      AAA BIKE       10          10          TANDEM 



  30…MAY…1996     BIKE SPEC      10          10          TANDEM 



  2…SEP…1996      TRUE WHEEL     10          10          TANDEM 



  1…JUN…1996      LE SHOPPE      10          10          TANDEM 



  30…MAY…1996     BIKE SPEC      23          23          MOUNTAIN BIKE 



  15…MAY…1996     TRUE WHEEL     23          23          MOUNTAIN BIKE 



  30…JUN…1996     TRUE WHEEL     42          42          SEATS 



  1…JUL…1996      AAA BIKE       46          46          TIRES 



  30…JUN…1996     BIKE SPEC      54          54          PEDALS 



  1…JUL…1996      AAA BIKE       76          76          ROAD BIKE 



  17…JAN…1996     BIKE SPEC      76          76          ROAD BIKE 



  19…MAY…1996     TRUE WHEEL     76          76          ROAD BIKE 



  11…JUL…1996     JACKS BIKE     76          76          ROAD BIKE 



  17…JAN…1996     LE SHOPPE      76          76          ROAD BIKE 



分析 



    利用在两个表中都存在的 PARTNUM            列  我们得到了存储在 ORDERS          表中的的信息 



以及在 PARTS    中的与 ORDERS     相关的信息      它表明了你已经定出的零件数量              这种联合 



操作称为等值联合         因为它只显示第一个表中的数据以及第二个表中的  存在于第一个表 



中的数值 



    你也可以使用 WHERE 子句对其结果进行更大的限制  例如 



    INPUT/OUTPUT 



    SELECT  O。ORDEREDON    O。NAME   O。PARTNUM    P。PARTNUM   P。DESCRIPTION 



                                                                         126 


…………………………………………………………Page 127……………………………………………………………

SQL 21  日自学通(V1。0)                                                翻译人    笨猪 



    FROM   ORDERS    O  PARTP  WHERE    O。PARTNUM    P。PARTNUM 



    AND   O。PARTNUM=76 



ORDEREDON       NAME           PARTNUM         PARTNUMDES     DESCRIPTION 



1…JUL…1996      AAABIKE        76              76             ROADBIKE 



17…JAN…1996     BIKESPEC       76              76             ROADBIKE 



19…MAY…1996
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!