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

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

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





…………………………………………………………Page 58……………………………………………………………

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



       BAKER 

       CHARLIE 

       DEAN 

       EXITOR 

       FALCONER 

       GOOBER 

       ABLE 

       BRAVO 

       CHARLIE 

       DECON 

       EXITOR 

       FUBAR 

       GOOBER 



14 rows selected。 

分析 



可以看到  UNION  ALL 与 UNION 一样对表进行了合并  但是它不去掉重复的记录                  可是 

如果我们想知道都有谁同时在两个表中呢                UNION 无法做到这一点        我们需要学习使用 



INTERSECT 



INTERSECT  相交 



INTERSECT 返回两个表中共有的行  看下例           它将返回两个表中有存在的员工 



输入: 



SQL》 SELECT * FROM FOOTBALL 



    2    INTERSECT 

    3    SELECT  *  FROM  SOFTBALL 



输出 



        NAME 

        ABLE 

        CHARLIE 

        EXITOR 

        GOOBER 

分析 



这些记录是两个表中都存在的 



MINUS   相减 

MINUS 返回的记录是存在于第一个表中但不存在于第二个表中的记录  例如 



输入: 



SQL》 SELECT * FROM FOOTBALL MINUS SELECT * FROM SOFTBALL 



输出 



          NAME 

          BRAVO 

          DECON 

          FUBAR 

上例中显示了三个不在垒球队中的足球队员                如果你把语句的次序颠倒  那么你将得到在 



垒球队中但不在足球队中的队员 

输入: 



SQL》 SELECT * FROM SOFTBALL MINUS SELECT * FROM FOOTBALL 



输出 



        NAME 

        BAKER 

        DEAN 



EMAIL wyhsillypig@163。                                          58 


…………………………………………………………Page 59……………………………………………………………

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



         FALCONER 

从属运算  IN and BETWEEN 



这两个运算符对你已经做过的例子提供了更快捷的操作                          如果你想找一个你在 Colorado; 

California;和 Louisiana  的朋友  可以输入 



输入: 



SQL》  SELECT  *  FROM  FRIENDS  WHERE  STATE=  'CA'  OR  STATE  ='CO'  OR  STATE  = 

'LA' 



输出 



LASTNAME     FIRSTNAME    AREACODE     PHONE      ST     ZIP 

MERRICK      BUD          300          555…6666   CO     80212 

MAST         JD           381          555…6767   LA     23456 

PERKINS      ALTON        911          555…3116   CA     95633 

也可以输入 



输入/输出: 

SQL》 SELECT * FROM FRIENDS WHERE STATE IN('CA';'CO';'LA') 



LASTNAME     FIRSTNAME    AREACODE     PHONE      ST     ZIP 

MERRICK      BUD          300          555…6666   CO     80212 

MAST         JD           381          555…6767   LA     23456 

PERKINS      ALTON        911          555…3116   CA     95633 

分析 

第二个实例比第一个更易读和简捷  我想你一会再用以前的方法来工作了吧                                 在 IN   中也 



可以使用数字  例如 



输入/输出: 



SQL》 SELECT * 



    2    FROM  FRIENDS 

    3    WHERE  AREACODE  IN(100;381;204) 



LASTNAME     FIRSTNAME     AREACODE     PHONE      ST    ZIP 

BUNDY        AL             100         555…1111   IL     22333 

MAST         JD            381          555…6767   LA     23456 

BOSS         SIR           204          555…2345   CT     95633 

如果你想要查找符合某一范围的记录  例如 

输入/输出: 



SQL》   SELECT  *  FROM   PRICE  WHERE   WHOLESALE     0。25  AND  WHOLESALE 



  0。75 



             ITEM          WHOLESALE 

             TOMATOES     。34 

             POTATOES     。51 

             BANANAS      。67 

             TURNIPS      。45 

或使用 BEWTEEN      你可以这样写 



输入/输出: 



SQL》SELECT    * FROM   PRICE  WHERE   WHOLESALE     BETWEEN   0。25 AND   0。75 



             ITEM          WHOLESALE 

             TOMATOES     。34 

             POTATOES     。51 

             BANANAS      。67 

             TURNIPS      。45 

看   第二个是不是比第一个更清楚和易读 



EMAIL  wyhsillypig@163。                                                  59 


…………………………………………………………Page 60……………………………………………………………

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



注   如果批发价为 0。25  的商品在表中存在  那么它们也将会被返回  BETWEEN  操作将包 



括边界值 

摘要 



在第三天我们学会了使用最基本的 SELECT 子句和 FROM 子句                 现在我们已经掌握了最为 



常用的操作来使数据库返回的结果满足你的要求  你学会了使用算术                         比较  字符和逻辑 



操作   这为你进一步学习 SQL 打下了良好的基础 



问与答 

问  如果我不想使用命令行的 SQL 那么学习这些东西对我有什么用 



答   不论你使用内嵌 SQL  的 COBOL 还是微软的 ODBC           它们所使用的 SQL  结构都是一 



样的   所以你现在学习的东西将会更有助于你以后的学习 



问  既然 SQL 是一种标准  那为什么又种是让我检查一下自己的解释器呢 



答   我们所使用的是 ANSI1992     标准  但大多数供应商对它进行了修改以使它更适用于自 

己的数据库  我们是以 ANSI1992 标准为基础的  但在具体使用时要注意它们的不同 



校练场 



应用下表的内容来回答下列问题 



       LASTNAME    FIRSTNAME   AREACODE    PHONE     ST  ZIP 

       BUNDY       AL          100         555…1111  IL  22333 

       MEZA        AL          200         555…2222  UK 

       MERRICK     BUD         300         555…6666  CO  80212 

       MAST        JD          381         555…6767  LA  23456 

       BULHER      FERRIS      345         555…3223  IL  23332 

       PERKINS     ALTON       911         555…3116  CA  95633 

       BOSS        SIR         204         555…2345  CT  95633 

写一下查询  返回数据库中所有名字以 M 开头的每一个人 



写一个查询  返回数据库 ST 为 LA 且 FIRSTNAME  以AL 开头的人 



给你两个表  PART1 和 PART2      你如何才能找出两个表中的共有元素  请写出查询 



WHERE a 》= 10 AND a  SELECT (FIRSTNAME || 'FROM') NAME; STATE 

    2    FROM  FRIENDS 



    3    WHERE  STATE  =  'IL'  AND 

    5    LASTNAME  =  'BUNDY' 



输出 



NAME               ST 

AL                  FROM IL 

仍使用上表  返回以下结果 



NAME        PHONE 

MERRICK;    BUD      300…555…6666 

MAST;       JD       381…555…6767 

BULHER;     FERRIS   345…555…3223 



EMAIL wyhsillypig@163。                                           60 


…………………………………………………………Page 61……………………………………………………………

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



EMAIL   wyhsillypig@163。                                                              61 


…………………………………………………………Page 62……………………………………………………………

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



第四天        函数     对数据的进一步处理 



目标 



   在今天我们将学习函数       在 SQL  中的函数可以执行一些储如对某一些进行汇总或或将 



一个字符串中的字符转换为大写的操作  在今天结束之际               您将学会以下内容 



   l  汇总函数 



   l   日期与时间函数 



   l  数学函数 



   l  字符函数 



   l  转换函数 



   l  其它函数 



   这些函数将大大加强你对这一周的早些时间所学习的 SQL 的基本功能所获得的数据的 



操作能力    开始的五个汇总函数  COUNT      SUM  AVG  MAX  MIN  是由 ANSI 标准 



所制定的    大多数的 SQL 解释器都对汇总函数进行了扩充          其中有一些今天会提到  在有 



些解释器这汇总函数的名称与这里所提到的不一样 



汇总函数 



   这是一组函数  它们返回的数值是基于一列的            因为你不会对单个的记录求它的平均 



数   这一部分的例子将使用 TEAMSTATS 表 



   输入 



   SQL》SELECT    FROM  TEAMSTATS 



   输出 



  NAME        POS AB  HITS WALKS SINGLES DOUBLES TRIPLES HR SO 



  JONES       1B  145 45   34    31     8      1      5   10 



  DONKNOW     3B  175 65   23    50     10     1      4   15 



  WORLEY      LF  157 49   15    35     8      3      3   16 

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