友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
第三电子书 返回本书目录 加入书签 我的书架 我的书签 TXT全本下载 『收藏到我的浏览器』

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

快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!




成如下方式 



输入/输出 

SQL》  SELECT  * FROM  FRIENDS  WHERE   AREACODE》=300 



      LASTNAME    FIRSTNAME  AREACODE    PHONE    ST  ZIP 

      MERRICK     BUD        300         555…6666 CO  80212 

      MAST        JD         381         555…6767 LA  23456 

      BULHER      FERRIS     345         555…3223 IL  23332 

当然  你使用 AREACODE》299 时会得到相同的结果 

注  在这个语句中 300 没有使用引号  对于数字型字段是不需要加引号的 



小于与小于等于 



如你所料  它们的使用方法与大于和大于等于操作相同  但结果相反 



输入 



SQL》  SELECT  * FROM  FRIENDS  WHERE   STATE《 LA 

输出 



      LASTNAME    FIRSTNAME  AREACODE    PHONE    ST  ZIP 

      BUNDY       AL          100        555…1111 IL  22333 

      MERRICK     BUD        300         555…6666 CO  80212 

      BULHER      FERRIS     345         555…3223 IL  23332 



注  为什么 STATE 会变成 ST  呢  这是因为这一列只有两个字符宽  所以结果只会返回两 



个字符    如果列为 COWS    那么它将会显示成 CO       而 AREACODE   和 PHONE 所在列的 



列宽大于它们自身的名字  所以它们不会被截去 



分析 



请等一下  你现在知道《 在字符字段中的用法了吗               当然知道了     你可以在各种数据类型 

中进行你想要的比较操作  结果会因数据类型的不同而不同  例如                    你在下例中使用小写 



字符 



输入/输出 



EMAIL wyhsillypig@163。                                       50 


…………………………………………………………Page 51……………………………………………………………

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



SQL》SELECT   * FROM   FRIENDS  WHERE   STATE  《    la 



       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 

分析 



因为大写的字母代码比小写的小             所以大写的字符总是排在小写字符的前面                这里再说一 



次  为了保证安全  请在执行前检查大小写情况 



技巧   想知道你所进行操作的结果            那你先要检查一下你的电脑所采用的字符编码集                  PC 

机解释器使用的是 ASCLL 编码  而其它平台则使用 EBCDIC 编码 



要想在结果中显示 Louisiana     键入 



输入/输出 



SQL》  SELECT  *  FROM   FRIENDS  WHERE   STATE  SELECT  *  FROM   FRIENDS  WHERE   FIRSTNAME      AL 



输出 



       LASTNAME    FIRSTNAME   AREACODE    PHONE     ST  ZIP 

       MERRICK     BUD         300         555…6666  CO  80212 

       MAST        JD          381         555…6767  LA  23456 

       BULHER      FERRIS      345         555…3223  IL  23332 

想找一下不在 California 住的人     可以写成 



输入/输出: 



SQL》  SELECT  *  FROM   FRIENDS  WHERE   STATE  != CA 



       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 

注意    =和符号都表示不等于 



字符操作 



无论数据的输出是否为有条件输出              你都可以对其中的字符串进行操作             本部分将会讲述 

两个操作符  LIKE 和||     以及字符串连接的概念 



LIKE 

如果你想从数据库中选出一部分数据并把它们添到一个模板中                       并且不需要非常精确的匹 



配   你可以用     =  来对每一种可能的情况进行操作  但是这一过程烦琐而又耗时                      这时 



你可以使用 LIKE     如下例 

    输入 



EMAIL wyhsillypig@163。                                           51 


…………………………………………………………Page 52……………………………………………………………

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



SQL》SELECT * FROM PARTS 



输出 



NAME          LOCATION       PARTNUMBER 

APPENDIX      MID…STOMACH    1 

ADAMSAPPLE    THROAT         2 

HEART         CHEST          3 

SPINE         BACK           4 

ANVIL         EAR            5 

KIDNEY        MID…BACK       6 

你怎样找出其中有 BACK  的记录呢  粗看一下这里有两个记录                可不幸的是它们有一点差 



别 



请试一下 

输入/输出: 



SQL》SELECT  * FROM   PARTS WHERE   LOCATION  LIKE   %BACK% 



                NAME      LOCATION   PARTNUMBER 

                SPINE     BACK       4 

                KIDNEY    MID…BACK   6 

你可能注意到了在这条语句的 LIKE  后边使用了%            在 LIKE  表达式中   %是一种通配符 



它表示可能在 BACK 中出现的其它信息  如果你输入如下 



输入 



SQL》SELECT  * FROM   PARTS WHERE   LOCATION  LIKE BACK% 

你将会检索到所有以 BACK 开头的 LOCATION 记录 



输出 



NAME    LOCATION    PARTNUMBER 

SPINE   BACK        4 

如果你输入 



输入 



SQL》 SELECT *  FROM  PARTS  WHERE  NAME   LIKE A% 



你将会得到所有 NAME 中以  开头的记录 

输出 



             NAME       LOCATION         PARTNUMBER 

             APPENDIX   MID…STOMACH      1 

             ADAMS      APPLE    THROAT  2 

             ANVIL      EAR              5 

那么 LIKE 语句是否对大小写敏感呢  请看下边的例子 

输入/输出: 



SQL》  SELECT  * FROM  PARTS  WHERE  NAME   LIKE  'a%' 



no rows selected 

分析 



回答是敏感的  当涉及到数据是时候总是大小写敏感的 

如果你想查找在某一确定的位置上有字符的数据时你应该如何去做呢  你可以使用另一个 



通配符 — — 下划线 



下划线  _ 



输入 



SQL》  SELECT  * FROM  FRIENDS 

输出 



      LASTNAME   FIRSTNAME   AREACODE   PHONE    ST    ZIP 



EMAIL wyhsillypig@163。                                       52 


…………………………………………………………Page 53……………………………………………………………

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



      BUNDY       AL            100         555…1111   IL    22333 

      MEZA        AL            200         555…2222   UK 

      MERRICK     UD            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 

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



输入/输出 



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   
返回目录 上一页 下一页 回到顶部 1 1
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!