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

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

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




输入/输出 



SQL》 SELECT LASTNAME WORKAHOLICS 



    2    FROM  VACATION 



    3    WHERE  YEARS  》=  5 



    4    AND 

    5    ((YEARS  *12)…LEAVETAKEN)/(YEARS  *  12)  《  0。50 



         WORKAHOLICS 

         BAKER 

         BLEDSOE 

给这些人放假吧        也让我们结束对 AND 的学习 



OR 

你也可以使用 OR  来对几个条件进行合并               当其中的任一个条件为真时  其结果就会为真 



值   为了展示它与 AND 的不同  下面我们用 OR 来换掉上一个例子中的 AND 



输入: 



SQL》 SELECT LASTNAME WORKAHOLICS 



    2    FROM  VACATION 



    3    WHERE  YEARS  》=  5 



    4    OR 

    5      ((YEARS  *12)…LEAVETAKEN)/(YEARS  *  12)  》=  0。50 

输出: 



EMAIL  wyhsillypig@163。                                             55 


…………………………………………………………Page 56……………………………………………………………

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



         WORKAHOLICS 

         ABLE 

         BAKER 

         BLEDSOE 

         BOLD 

         COSTALES 

分析 



上例中的结果仍然在其中  但是我们又多个几个记录                      这几个记录出现的原因是它们满足 



我们所提出的条件中的一个  OR 只要记录满足其中的一个条件就会把记录返回 



NOT 

顾名思义     它对条件取反       条件为假时结果为真          条件为真时结果为假 

下边的 SELECT 子句将返回所有开头的名字不是 B 的员工 



输入 



SQL》 SELECT * 



    2    FROM  VACATION 

    3    WHERE  LASTNAME  NOT  LIKE  'B%' 

输出: 



LASTNAME      EMPLOYEENUM      YEARS     LEAVETAKEN 

ABLE          101              2         4 

COSTALES      211               10       78 

当 NOT  应用于NULL 时可以使用操作符 IS          让我们再来看一下 PRICES 表中WHOLESALE 



列 ORANGES 记录中的空值 



输入/输出: 



SQL》 SELECT * FROM PRICE 



ITEM          WHOLESALE 

TOMATOES     。34 

POTATOES     。51 

BANANAS      。67 

TURNIPS      。45 

CHEESE       。89 

APPLES       。23 

ORANGES 



7 rows selected。 

想找出所有的非空项  可以写出如下语句 



输入/输出: 



SQL》SELECT * FROM PRICE WHERE WHOLESALE IS NOT NULL 



ITEM          WHOLESALE 

TOMATOES     。34 

POTATOES     。51 

BANANAS      。67 

TURNIPS      。45 

CHEESE       。89 

APPLES       。23 



6 rows selected。 

集合运算     SET 



在第一天     介绍 SQL    中我们已经知道了 SQL 是基于集合的理论的                下面这一部分将讨论 

集合运算 



UNION 与 UNION ALL 



UNION 将返回两个查询的结果并去除其中的重复部分                    下边有两个值勤人员表 



EMAIL  wyhsillypig@163。                                              56 


…………………………………………………………Page 57……………………………………………………………

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



输入: 



SQL》 SELECT * FROM FOOTBALL 

输出: 



            NAME 

            ABLE 

            BRAVO 

            CHARLIE 

            DECON 

            EXITOR 

            FUBAR 

            GOOBER 



7 rows selected。 

输入: 

SQL》 SELECT * FROM SOFTBALL 



输出: 



         NAME 

         ABLE 

         BAKER 

         CHARLIE 

         DEAN 

         EXITOR 

         FALCONER 

         GOOBER 



7 rows selected。 

在这两个表中有哪些不重复的人员呢 



输入/输出: 



SQL》 SELECT NAME FROM SOFTBALL 



    2    UNION 

    3    SELECT  NAME  FROM  FOOTBALL 



       NAME 

       ABLE 

       BAKER 

       BRAVO 

       CHARLIE 

       DEAN 

       DECON 

       EXITOR 

       FALCONER 

       FUBAR 

       GOOBER 

10 rows selected。 

UNION 返回了两个表中的 10 个记录  它们是不重复的  但是两个表中共有多少人呢                             包 



括重复的人员 



输入/输出: 



SQL》 SELECT NAME FROM SOFTBALL 

    2    UNION  ALL 

    3    SELECT  NAME  FROM  FOOTBALL 



       NAME 

       ABLE 



EMAIL  wyhsillypig@163。                                               57 


…………………………………………………………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' 



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