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

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

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






输入 



SQL》SELECT     A   LN(A)   FROM    NUMBERS 



EMAIL   wyhsillypig@163。                                                       77 


…………………………………………………………Page 78……………………………………………………………

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



输出 



    ERROR 



    ORA…01428    argument …45 is out of range 



这是因为我们忽视了参数的取值范围                负数是没有对数的  改写为 



输入/输出 



SQL》SELECT   A   LN  ABS   A     FROM   NUMBERS 



       A        LN   ABS  A       A        LN   ABS  A 



       3。1415   1。1447004         …57。667  4。0546851 



       …45      3。8066625         15       2。7080502 



       5        1。6094379         …7。2      1。974081 



分析 



    注意   你可以将 ABS     函数嵌入到 LN  函数中使用  第二个对数函数需要两个参数                     其 



中第二个参数为底数  下例将返回以 10 为底的 B 列的对数值 



输入/输出 



SQL》 SELECT   B  LOG   B  10    FROM   NUMBERS 



            B      LOG(B;10)   B     LOG(B;10) 



            4      1。660964    42    。61604832 



            。707   …6。640962    55   。57459287 



            9      1。0479516    5。3   1。3806894 



MOD 



    其实我们已经见过 MOD         函数了  在第三天的  表达式            条件及操作      就有它     我们 



知道在 ANSI 标准中规定取模运算的符号为%在一些解释器中被函数 MOD 所取代                            下例的 



查询就返回了 A 与 B 相除后的余数 



输入 



SQL》SELECT   A   B  MOD   A  B    FROM    NUMBERS 



输出 



         A        B      MOD(A;B) 



         3。1415   4      3。1415 



         …45       。707  …。459 



         5         9     5 



EMAIL  wyhsillypig@163。                                               78 


…………………………………………………………Page 79……………………………………………………………

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



         …57。667  42    …15。667 



         15       55     15 



         …7。2     5。3   …1。9 



POWER 



    该函数可以返回某一个数对另一个数的幂                 在使用幂函数时       第一个参数为底数         第 



二个指数 



输入 



SQL》SELECT   A  B  POWER   A  B    FROM   NUMBERS 



输出 



ERROR 



ORA…01428  argument    45  is out of range 



分析 



    粗看时你可能会认为它不允许第一个参数为负数  但这个印象是错误的                          因为像…4   这 



样的数是可以做为底数的  可是             如果第一个参数为负数的话  那么第二个参数就必须是 



整数    负数是不能开方的         对于这个问题可以使用 CEIL         或 FLOOR   函数 



输入 



SQL》SELECT   A  CEIL  B   POWER   A  CEIL  B   FROM   NUMBERS 



输出 



       A        CEIL  B      POWER(A;CEIL(B)) 



       3。1415   4            97。3976 



       …45      1            …45 



       5        9            1953125 



       …57。667  42           9。098E+73 



       15       55           4。842E+64 



       …7。2     6            139314。07 



现在就可以有正确的结果了 



SIGN 



    如果参数的值为负数  那么 SIGN 返回…1           如果参数的值为正数  那么 SIGN 返回 1 



如果参数为零  那么 SIGN 也返回零  请看下例 



EMAIL  wyhsillypig@163。                                            79 


…………………………………………………………Page 80……………………………………………………………

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



输入 



SQL》SELECT    A  SIGN  A   FROM   NUMBERS 



输出 



      A        SIGN  A      A         SIGN  A 



      3。1415   1            …57。667   …1 



      …45      …1           15        1 



      5        1            …7。2      …1 



    你也可以在 SELECT WHERE 子句中使用 SIGN 



输入 



SQL》SELECT    A  FROM   NUMBERS    WHERE    SIGN   A  =1 



输出 



      A 



      3。1415 



      5 



      15 



SQRT 



    该函数返回参数的平方根            由于负数是不能开平方的  所以我们不能将该函数应用于 



负数 



输入/输出 



SQL》SELECT    A  SQRT   A  FROM   NUMBERS 



ERROR 



ORA…01428   argument '…45' is out of range 



但是你可以使用绝对值来解除这一限制 



输入/输出 



SQL》SELECT    ABS  A    SQRT  ABS   A   FROM   NUMBERS 



        ABS(A)    SQRT(ABS(A)) 



        3。1415    1。7724277 



        45        6。7082039 



        5         2。236068 



        57。667    7。5938791 



EMAIL  wyhsillypig@163。                                                80 


…………………………………………………………Page 81……………………………………………………………

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



       15       3。8729833 



       7。2      2。6832816 



       0        0 



字符函数 



    许多 SQL 解释器都提供了字符和字符串的处理功能               本部分覆盖了大部分字符串处理 



函数  这一部分的例子使用 CHARACTERS 表 



输入/输出 



SQL》  SELECT  *  FROM  CHARACTERS 



     LASTNAME     FIRSTNAME    M    CODE 



     PURVIS       KELLY        A    32 



     TAYLOR       CHUCK        J    67 



     CHRISTINE    LAURA        C    65 



     ADAMS        FESTER       M    87 



     COSTALES     ARMANDO      A    77 



     KONG         MAJOR        G    52 



CHR 



    该函数返回与所给数值参数等当的字符              返回的字符取决于数据库所依赖的字符集 



例如示例的数据库采用了 ASCLL 字符集           示例数据库的代码列的内容为数字 



输入 



SQL》SELECT  CODE   CHR  CODE    FROM   CHARACTERS 



输出 



       CODE    CH    CODE    CH 



       32            87      W 



       67      C     77      M 



       65      A     52      4 



    在数值 32 处显示为空白       因为 32 在 ASCLL 码表中是空格 



CONCAT 



    我们在第 3   天时学到过一个与这个函数所执行的功能相当的操作                     符号表示将两个 



EMAIL wyhsillypig@163。                                          81 


…………………………………………………………Page 82……………………………………………………………

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



字符串连接起来  CONCAT        也是完成这个功能的  使用方法如下 



输入 



SQL》SELECT   CONCAT    FIRSTNAME   LASTNAME    〃FIRST  AND   LAST   NAMES〃 



    FROM   CHARACTERS 



输出 



       FIRST AND LAST NAMES 



       KELLY                    PURVIS 



       CHUCK                    TAYLOR 



       LAURA                    CHRISTINE 



       FESTER                  ADAMS 



       ARMANDO                COSTALES 



       MAJOR                    KONG 



分析 



    当用多个词来做为别名时需对它们使用引号  请检查你的解释器  看看它是否支持别 



名 



    需要注意的是尽管在看起来输出似乎是两列  但实际上它仍是一列                           这是因为你所连 



接的 Firstname 字段的宽度为 15       函数取得了该列中的所有数据  包括其中用以补足宽度 



的空格 



INITCAP 



    该函数将参数的第一个字母变为大写  此外其它的字母则转换成小写 



    输入 



    SQL》SELECT   FIRSTNAME    BEFORE   INITCAP  FIRSTNAME    AFTER 



        FROM   CHARACTERS 



    输出 



           BEFORE       AFTER 



           KELLY        Kelly 



           CHUCK        Chuck 



           LAURA        Laura 



           FESTER       Fester 



           ARMANDO      Armando 



           MAJOR        Major 



EMAIL  wyhsillypig@163。                                               82 


…………………………………………………………Page 83……………………………………………………………

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



LOWER 和 UPPER 



    如你所料  LOWER 将参数转换为全部小写字母而 UPPER 则把参数全部转换成大写字 



母 



    下例是用 LOWER 函数和一个叫 UPDATE 的函数来把数据库的内容转变为小写字母 



    输入 



    SQL》UPDATE  CHARACTERS   SET  FIRSTNAME='kelly' 



         WHERE   FIRSTNAME='KELLY' 



    输出 



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