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

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

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




如果你想查找所有以  开头的州             可以使用如下语句 



输入/输出 



SQL》  SELECT   *  FROM   FRIENDS  WHERE    STATE  LIKE    C_ 



      LASTNAME     FIRSTNAME    AREACODE    PHONE      ST    ZIP 

      MERRICK      BUD          300         555…6666   CO    80212 

      PERKINS      ALTON        911         555…3116   CA    95633 

      BOSS         SIR          204         555…2345   CT    95633 

也可以在一个语句中使用多个下划线  如 



输入/输出 



SQL》  SELECT   *  FROM   FRIENDS  WHERE    PHONE   LIKE   555…6_6_ 



       LASTNAME     FIRSTNAME   AREACODE     PHONE     ST   ZIP 

       MERRICK      BUD          300         555…6666  CO   80212 

       MAST         JD           381         555…6767  LA   23456 

这个语句也可以写成如下形式 



输入/输出 

SQL》  SELECT   *  FROM   FRIENDS  WHERE    PHONE   LIKE  555…6% 



LASTNAME    FIRSTNAME     AREACODE    PHONE     ST    ZIP 

MERRICK     BUD           300         555…6666  CO    80212 

MAST        JD            381         555…6767  LA    23456 

看   它们的结果是一样的  这两个通配符也可以联合起来使用                      下边的例子将找出所有的 



第   个字母为     的记录 



输入    输出 



SQL》  SELECT   *  FROM   FRIENDS  WHERE    FIRSTNAME   LIKE  _L% 



LASTNAME    FIRSTNAME     AREACODE    PHONE     ST    ZIP 

BUNDY       AL            100         555…1111  IL    22333 

MEZA        AL            200         555…2222  UK 

PERKINS     ALTON         911         555…3116  CA    95633 

连接 



  可以将两个字符串连接起来  例如 

输入 



SQL》  SELECT   FIRSTNAME   || LASTNAME    ENTIRENAME   FROM   FRIENDS 



输出 



                       ENTIRE           NAME 

                       AL               BUNDY 

                       AL               MEZA 

                       BUD              MERRICK 

                       JD               MAST 

                       FERRIS           BULHER 

                       ALTON            PERKINS 

                       SIR              BOSS 

7 rows selected。 



EMAIL  wyhsillypig@163。                                             53 


…………………………………………………………Page 54……………………………………………………………

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



分析 



请注意这里使用的是         而不是    号   如果你试图使用       号来连接两个字符串的话  对于我 

们使用的 SQL 解释程序(Personal Oracle7)将会产生如下错误信息 



输入/输出 



SQL》  SELECT  FIRSTNAME       LASTNAME   ENTIRENAME   FROM   FRIENDS 



ERROR 



ORA…01722  invalid number 

它试图将两个数字做加法运算  但是它没有在表达式中找到任何数字 



注   有一些解释器也采用加号来连接字符串  请检查一下你的解释器 



对于连接字符串这里有更多的实例 



输入/输出 



SQL》  SELECT  LASTNAME    ||     || FIRSTNAME  NAME   FROM  FRIENDS 



NAME 

BUNDY          AL 

MEZA            AL 

MERRICK       BUD 

MAST            JD 

BULHER        FERRIS 

PERKINS      ALTON 

BOSS            SIR 



7  rows selected。 

分析 

这条语句在姓与名之间插入了一个逗号 



注  请注意在姓与名之间的多余的空格              这些空格是数据的一部分  对于确定的数据类型 



空格将右填充至达到字段的设定宽度  请检查你的解释器                    有关数据类型内容将在第 9         天 



的  表的创建与维护        中讨论 



至现在为止你已经学完了所有的比较操作符                 对于一些问题这种方法非常好            可是如果你 

是想找出所有的名字中的第一个字母为 P               并且他的应有的休假时间已经超过了 3             天的人 



呢 



逻辑运算 



逻辑运算用于 SQL 的 WHERE 子句中将两个或更多条件组合在一起 



休假的时间总是人们在工作时讨论的热门话题  现在我们来为财务部门设计一个名为渡假 

  VACATION  的表    内容如下 



输入 



SQL》  SELECT  *  FROM   VACATION 



输出 



          LASTNAME    EMPLOYEENUM     YEARS    LEAVETAKEN 

          ABLE        101             2        4 

          BAKER       104             5        23 

          BLEDSOE     107             8        45 

          BOLIVAR     233             4        80 

          BOLD        210             15       100 

          COSTALES    211             10       78 



6 rows selected。 

假设你的公司的雇员每年可以有 12 天的休假时间  现在使用你所知道的逻辑运算来实现以 



下要求  名字是以 B 开头并且他的休假时间已经超过了 50 天的员工 



输入/输出 



EMAIL wyhsillypig@163。                                           54 


…………………………………………………………Page 55……………………………………………………………

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



SQL》  SELECT   LASTNAME    YEARS   * 12  LEAVETAKEN    REMAINING 



FROM   VACATION   WHERE   LASTNAME    LIKE    B%    AND 

YEARS   *12 LEAVETAKEN    50 



            LASTNAME     REMAINING 

            BLEDSOE       51 

            BOLD          80 

分析 



这个查询语句是你讫今为止学到的最为复杂的语句                     SELECT 子句中使用了算术运算符来 



确定每一个员工还有多少天剩余的假期                标准的算式为 YEARS  *  12  –  LEAVETAKEN    而 



更为清楚的表达方法为  YEARS * 12)         LEAVETAKEN 



LIKE  中使用了通配符%来发现所有的以 B 开头的员工                而比较运算的       则用来发现所有休 

假时间超过 50 天的员工 



这里我们使用了逻辑运算符号 AND 来使查找到的记录同时满足两个条件                          带下划线的 



AND 

AND  只有当两个表达式的值都为真的时候才会返回真  如果任意一个表达式的值不是真 



那么结果就会是假的         例如    找一下在你的公司中工作不超过 5  年但是剩余的休假时间超 

过 20 天的员工 



输入 



SQL》   SELECT   LASTNAME     FROM    VACATION   WHERE    YEARS20 



输出 



      LASTNAME 

      BAKER 

      BOLIVAR 

如果你想知道在你的公司中工作时间  年以上人员工和休假时间不足已有假期的                                   的 



员工呢  你可以写成下边这样 

输入/输出 



SQL》 SELECT LASTNAME WORKAHOLICS 



    2    FROM  VACATION 



    3    WHERE  YEARS  》=  5 



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