八宝书库 > 文学其他电子书 > SQL 21日自学通(V3.0)(PDF格式) >

第15部分

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

小说: SQL 21日自学通(V3.0)(PDF格式) 字数: 每页4000字

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




SWHLESALE IS NULL 在这里比使用=更恰当  它将会返回所有存在空值的记录 



这个例子也是对使用        =  进行的比较操作进行的完全展示  这之中的 WHERE              子句就不 



用多说了     下面简要说一下等号 



在今天的早些时候你已经看到了在一些 SQL  解释器中等号可以在 SELECT                  子句中用以给 



搜索字段赋以别名       而在 WHERE   子句中它则用于比较操作         并且它是从多个记录中捡选 

所需要数值的一种有效手段          试一下 



输入 



SQL》  SELECT  * FROM   FRIENDS 



输出 



   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 

现在让我们来找一下 JD。MAST       的记录信息(在我们的这个表中这很容易             但是你的朋友可 



能不只这些  也许像这样的记录你有成千上万) 



输入/输出 



SQL》  SELECT  * FROM   FRIENDS WHERE   FIRSTNAME  =  'JD' 



      LASTNAME    FIRSTNAME   AREACODE   PHONE    ST   ZIP 

      MAST        JD          381         555…6767 LA  23456 

结果如我们所愿  再试一下 

输入/输出 



SQL》  SELECT  * FROM   FRIENDS WHERE   FIRSTNAME  =  'AL' 



      LASTNAME    FIRSTNAME  AREACODE    PHONE    ST   ZIP 

      BUNDY       AL         100         555…1111 IL   22333 

      MEZA        AL         200         555…2222 UK 



注  你应该看到在这里        =  号返回了多个记录       注意第二个记录的邮政编码  ZIP         是空 



的  邮政编码是一个字符型字段  你将在第 8 天学习如何创建和组装一个表                     这个特殊的 



空字段表明在字符型字段中空字段与空白字段是不同的 

此外还有一个关于敏感性的问题  试一下 



输入/输出 



SQL》  SELECT  * FROM   FRIENDS WHERE   FIRSTNAME  =  BUD 



      FIRSTNAME 

      BUD 



EMAIL wyhsillypig@163。                                        49 


…………………………………………………………Page 50……………………………………………………………

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



1  row selected 

再试一下 

输入/输出 



SQL》  select * from friends where firstname = Bud 



No  rows selected 

分析 



   尽管 SQL 对大小写是不敏感的  但是数据库中的数据对大小写却是敏感的                    大多数公 

司在存储数据时采用大写以保证数据的一致性  所以你应该永远采用大写或小写来存储数 



据  大小写的混合使用会对你精确地查找数据造成障碍 



大于与大于等于 



大于操作的使用方法如下 



输入: 

SQL》  SELECT  * FROM  FRIENDS  WHERE   AREACODE  》  300 



输出 



LASTNAME    FIRSTNAME   AREACODE   PHONE     ST   ZIP 

MAST        JD          381        555…6767  LA   23456 

BULHER      FERRIS      345        555…3223  IL   23332 

分析 



   这个操作将显示所有比区号比 300 大的记录  但是不包括 300              如果要包括 300    应写 



成如下方式 



输入/输出 

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》  S

返回目录 上一页 下一页 回到顶部 0 0

你可能喜欢的