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

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

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




输出 



      SSN_________ 



      300…54…1117 



      301…45…7111 



      459…78…9998 



注   这在当数字特别大        例如    1  343 178  128 需要用逗号分隔时以及区位号码或电 



话号码需要下划线分隔时特别有效 



这是 SUBSTR  的另一个非常有用的功能  倘若你需要打印一个报表而其中一些列的宽度超 



过了 50  个字符时     你可以使用 SUBSTR  来减小列宽以使它更接近数据的真实宽度  请看 



一个下面的这两个例子 



输入 



SQL》 SELECT  NAME   JOB  DEPARTMENT    FROM JOB_TBL 



输出 



NAME______________________________________________________________ 



JOB_______________________________DEPARTMENT______________________ 



ALVIN  SMITH 



VICEPRESIDENT                                          MARKETING 



1 ROW SELECTED。 



分析 



    注意  这几列已经换行显示了  这例得阅读变行非常困难  现在试一下下边的 SELECT 



语句 



输入 



SQL》 SELECT SUBSTR(NAME; 1;15) NAME; SUBSTR(JOB;1;15) JOB; 



EMAIL  wyhsillypig@163。                                            89 


…………………………………………………………Page 90……………………………………………………………

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



                        DEPARTMENT 



    2    FROM  JOB_TBL; 



输出 



NAME________________JOB_______________DEPARTMENT_____ 



ALVIN  SMITH                  VICEPRESIDENT          MARKETING 



是不是变得好多了 



TRANSLATE 



    这一函数有三个参数          目标字符串  源字符串和目的字符串              在目标字符串与源字符 



串中均出现的字符将会被替换成对应的目的字符串的字符 



输入 



SQL》 SELECT FIRSTNAME; TRANSLATE(FIRSTNAME 



      '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 



      'NNNNNNNNNNAAAAAAAAAAAAAAAAAAAAAAAAAA)                        FROM 



CHARACTERS 



      输出 



      FIRSTNAME      TRANSLATE(FIRST 



      kelly          kelly 



      CHUCK          AAAAA 



      LAURA          AAAAA 



      FESTER         AAAAAA 



      ARMANDO        AAAAAAA 



      MAJOR          AAAAA 



      6 rows selected。 



注意    这个函数对大小写是敏感的 



INSTR 



    如果需要知道在一个字符串中满足特定的内容的位置可以使用 INSTR                         它的第一个参 



数是目标字符串        第二个参数是匹配的内容           第三和第四个参数是数字            用以指定开始搜 



EMAIL  wyhsillypig@163。                                             90 


…………………………………………………………Page 91……………………………………………………………

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



索的起点以及指出第几个满足条件的将会被返回                 下例将从字符串的第二个字符开始             搜 



索并返回第一个以 O 开头的字符的位置 



输入 



SQL》SELECT LASTNAME   INSTR  LASTNAME    O   2 1  FROM  CHARACTERS 



输出 



       LASTNAME      INSTR(LASTNAME;'O';2;1) 



       PURVIS        0 



       TAYLOR        5 



       CHRISTINE     0 



       ADAMS         0 



       COSTALES      2 



       KONG          2 



       6 rows selected 



分析 



默认第三个与第四个参数的数值均为               如果第三个数值为负数  那么将会从后向前搜索 



LENGTH 



LENGTH 将返回指定字符串的长度          例如 



输入 



SQL》SELECT FIRSTNAME  LENGTH   RTRIM  FIRSTNAME   FROM CHARACTERS 



输出 



       FIRSTNAME    LENGTH(RTRIM(FIRSTNAME)) 



       kelly        5 



       CHUCK        5 



       LAURA        5 



       FESTER       6 



       ARMANDO      7 



       MAJOR        5 



注意   这里使用了函数 RTRIM       否则 LENGTH 将全部返回 15 



转换函数 



   转换函数有三个       可以使你方便地将数据从一种类型变换为另一种类型                   本节的示例 



EMAIL wyhsillypig@163。                                         91 


…………………………………………………………Page 92……………………………………………………………

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



使用表 CONVERSIONS 



输入 



SQL》 SELECT  *  FROM  CONVERSIONS 



     输出 



     NAME     TESTNUM 



     40       95 



      13      23 



      74      68 



NAME 列为字符串  该列的宽度为 15          TESTNUM 列为数字 



TO_CHAR 



该函数的最初功能是将一个数字转换为字符型  不同的解释器可能会使用它来转换其它的 



数据类型     例如日期型转换为字符型或者是拥有更多的参数                  下例展示了该函数的基本功 



能 



输入 



SQL》 SELECT  TESTNUM   TO_CHAR   TESTNUM   FROM   CONVERT 



     输出 



     TESTNUM     TO_CHAR(TESTNUM) 



      95         95 



     23          23 



      68         68 



稍安勿燥     下例可以证明它确实已经将 TESTNUM 转换为字符型了 



输入 



SQL》SELECT   TESTNUM   LENGTH  TO_CHAR   TESTNUM    FROM   CONVERT 



输出 



TESTNUM     LENGTH(TO_CHAR(TESTNUM)) 



95          2 



23          2 



68          2 



分析 



如果对数字使用 LENGTH 函数将会返回错误  注意 TO_CHAR 与在先前进过的 CHR 不同 



EMAIL wyhsillypig@163。                                           92 


…………………………………………………………Page 93……………………………………………………………

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



CHR 返回字符集中给定数字位置的一个字符或符号 



TO_NUMBER 



该函数与 TO_CHAR   函数相对应  显而易见  它是将一个字符串型数字转换为数值型               例 



如 



输入 



SQL》 SELECT NAME TESTNUM TESTNUM*TO_NUMBER NAME  FROM CONVERT 



输出 



NAME    TESTNUM   TESTNUM*TO_NUMBER(NAME) 



40      95        3800 



13      23        299 



74      68        5032 



分析 



   如果该函数没有将 NAME 转换为数值的话将会返回一个错误信息 



其它函数 



   这里有三个函数可能对你是有用处的 



GREATEST 与 LEAST 



   这两个函数将返回几个表达式中最大的和最小的  例如 



输入 



SQL》 SELECT GREATEST  ALPHA   BRAVO   FOXTROT    DELTA 



     FROM  CONVERT 



输出 



     GREATEST 



     FOXTROT 



     FOXTROT 



     FOXTROT 



分析 



   注意 GREATEST 将会返回在字母表中最靠后的字符开头的字符串             虽然看起来似乎没 



EMAIL wyhsillypig@163。                                    93 


…………………………………………………………Page 94……………………………………………………………

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



有必要使用 FROM     子句   可是如果 FROM    子句没有的话     你将会收到一个错误信息  每 



一个 SELECT 语句都需要 FROM 子句      由于给定的表有三行  所以结果返回了三个 



输入 



SQL》 SELECT LEAST  34 567  3 45 1090 FROM   CONVERT 



输出 



     LEAST(34 567 3  45 1090) 



     3 



     3 



     3 



就像你看到的那样  这两个函数也可以对数字进行处理 



USER 



   该函数返回当前使用数据库的用户的名字 



输入 



SQL》 SELECT USER  FROM  CONVERT 



输出 



     USER 



     PERKINS 



     PERKINS 



     PERKINS 



   只有我一个人在使用这个数据库  看            SELECT  又一次对表中的每一行都返回了结果 



该函数与在今天早些时候提及的日期函数类似  甚至尽管 USER                不是表中确实存在的列 



但 SELECT 仍然检索了表中的每一行 



总结 



   好长的一天啊      我们一共学习了 47  个函数      你无需记住每一个函数        只需要知道它们 



的大致类型  算术函数        日期/ 时间函数    字符函数  转换函数       其它函数     而当你写一 



个查询的时候你有一个明确的目标就够了 



EMAIL wyhsillypig@163。                                       94 


…………………………………………………………Page 95……………………………………………………………

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



问与答 



问  为什么在 ANSI 标准中定义的函数这么少  而不同的解释器又都定义了这么多的函数 



答  ANSI 标准是一个非常宽松的标准  而且如果对所有的解释器生产厂家来说过多的限 



   制会使其走向破产的道路       另一方面  如果 A  公司对 SQL  补充了一个用于统计的函 



   数包而销路特别好的话  那么 B 公司和 C 公司一定也会跟着做的 



问  我认为你对 SQL 的介绍太简单了  我的工作时应该如何去使用这些函数呢 



答  这个问题与一个都三角的教师所提出的问题类似             事实上我也不知道如何却求一个等 



   腰三角形的面积     所以   我的回答是    根据你的职业而定      你的工作中需要用到哪些 



   函数你就去使用它      而其它的对你来说则是没有必要掌握的           这一观点也适用于你的 



   查询 



校练场 



   1  哪个函数是用来将给定字符串的第一个字母变成大写而把其它的字符变成小写的 



   2  哪此函数的功能就如同它的名字含义一样 



   3  下边的查询将如何工作 



     SQL》 SELECT COUNT(LASTNAME) FROM CHARACTERS; 



   4  下边的查询是干什么的 



     SQL》 SELECT SUM(LASTNAME) FROM CHARACTERS; 



   5  哪个函数可以将 FIRSTNAME 列与 LASTNAME 列合并到一起 



   6  在下边的查询中    6 是什么意思 



        输入 



        SQL》 SELECT COUNT(*) FROM TEAMSTATS; 



        输出 



        COUNT(*) 



        6 



   7  下列语句将输出什么 



        SQL》 SELECT SUBSTR LASTNAME;1;5 FROM NAME_TBL; 



EMAIL wyhsillypig@163。                                 95 


…………………………………………………………Page 96……………………………………………………………

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



练习 



     1   用今天的 TEAMSTARTS 表来写一个查询                 用来显示谁的中球率低于 0。25               中球率 



        的计算方法为 hits/ab 



    2    用今天的 CHARACTERS 表来写一个查询                 要求返回下边的结果 



         INITIALS__________CODE 



         K。A。P。                            32 



         1 row selected。 



EMAIL   wyhsillypig@163。                                                          96 


…………………………………………………………Page 97……………………………………………………………

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



第五天             SQL  中的子句 



目标 



     今天的主题是子句 — — 它不是你在渡假时的赠品                            而是你所学习的 SELECT             语句的一 



个组成部分  在今天结束以后我们将学会以下子句 



     l   WHERE 



     l    STARTING WITH 



     l    ORDER BY 



     l    GROUP BY 



     l   HAVING 



     为了对这些子句有一个大致的印象  请看一下 SELECT 语句的通用语法表达式 



语法 



     SELECT 'DISTINCT | ALL' { * 



                                             |  {  'schema。'{table  |  view  |  snapshot}。* 



                                             |  expr  }    '  'AS'  c_alias  ' 



                                           ';  {  'schema。'{table  |  view  |  snapshot}。* 



                                             |  expr  }  '  'AS'  c_alias  '    '  。。。  } 



     FROM 'schema。'{table | view | snapshot}'@dblink' 't_alias' 



           '; 'schema。'{table | view | snapshot}'@dblink' 't_alias' ' 。。。 



                 'WHERE  condition  ' 



           'GROUP BY expr '; expr' 。。。 'HAVING condition' ' 



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