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

第19部分

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

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

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






    输入/输出 



    SQL》SELECT   LAST_DAY(   1…FEB…95 ) NON_LEAP   LAST_DAY(   1…FEB…96 ) 



LEAP 



         FROM PROJECT; 



          NON_LEAP     LEAP 



          28…FEB…95    29…FEB…96 



          28…FEB…95    29…FEB…96 



          28…FEB…95    29…FEB…96 



EMAIL  wyhsillypig@163。                                             70 


…………………………………………………………Page 71……………………………………………………………

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



          28…FEB…95    29…FEB…96 



          28…FEB…95    29…FEB…96 



          28…FEB…95    29…FEB…96 



    分析 



    结果当然是正确的        可是为什么它输出了这么多行呢              这是因为你没有指定任何列或 



给出一个条件       SQL 引擎对数据库中的每一条记录都应用了这一语句  如果你想去掉这些 



重复的内容可以这样写 



    输入 



SQL》SELECT  DISTINCT  LAST_DAY('1…FEB…95') NON_LEAP  LAST_DAY('1…FEB…96') 



     LEAP  FROM   PROJECT 



    在这句话中我们使用了关键字 DISTINCT            参见第二天的  介绍查询 — — SELECT         语 



句的使用      来得到唯一的结果 



    输出 



          NON_LEAP     LEAP 



          28…FEB…95    29…FEB…96 



    虽然在我的电脑上该函数可以正确地识别出闰年来                    但是如果你要将它应用于金融领 



域  那么请在你的解释器上试一下  看一看它是否支持闰年 



MONTHS_BETWEEN 



    如 果 你 想 知 道 在 给 定 的 两 个 日 期 中 有 多 少 个 月          可 以 像 这 样 来 使 用 



MONTHS_BETWEEN 



    输入 



    SQL》select task startdate enddate months  between(Startdate;enddate)  duration from project 



    输出 



     TASK                STARTDATE    ENDDATE     DURATION 



     KICKOFF    MTG      01…APR…95    01…APR…95   0 



     TECH    SURVEY      02…APR…95    01…MAY…95   …。9677419 



     USER    MTGS        15…MAY…95    30…MAY…95   …。483871 



     DESIGN    WIDGET    01…JUN…95    30…JUN…95   …。9354839 



     CODE    WIDGET      01…JUL…95    02…SEP…95   …2。032258 



     TESTING             03…SEP…95    17…JAN…96   …4。451613 



EMAIL  wyhsillypig@163。                                           71 


…………………………………………………………Page 72……………………………………………………………

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



   请等一下     结果看起来不太对劲  再试一下 



    输入/输出 



    SQL》 SELECT TASK  STARTDATE   ENDDATE 



       MONTHS_BETWEEN      ENDDATE;STARTDATE       DURATION     FROM 



   PROJECT 



     TASK               STARTDATE   ENDDATE     DURATION 



     KICKOFF  MTG       01…APR…95   01…APR…95   0 



     TECH   SURVEY      02…APR…95   01…MAY…95   。96774194 



     USER  MTGS         15…MAY…95   30…MAY…95   。48387097 



     DESIGN  WIDGET     01…JUN…95   30…JUN…95   。93548387 



     CODE   WIDGET      01…JUL…95   02…SEP…95   2。0322581 



     TESTING            03…SEP…95    17…JAN…96  4。4516129 



分析 



    如你所见    MONTHS_BETWEEN    对于你所给出的月份的次序是敏感的  月份值为负 



数可能并不是一件坏事         例如    你可以利用负值来判断某一日期是否在另一个日期之前 



下例将会显示所有在 1995 年 5 月 19 日以前开始的比赛 



    输入 



    SQL》SELECT  * FROM   PROJECT 



       WHERE MONTHS_BETWEEN      19 MAY 95  STARTDATE) 



    输出 



           TASK            STARTDATE   ENDDATE 



           KICKOFF MTG    01…APR…95    01…APR…95 



           TECH SURVEY    02…APR…95    01…MAY…95 



           USER MTGS       15…MAY…95   30…MAY…95 



NEW_TIME 



    如果你想把时间调整到你所在的时区  你可以使用 NEW_TIME                 下边给出了所有的时 



区 



         简写            时区            简写              时区 



      AST or ADT  大西洋标准时间         HST or HDT  阿拉斯加_夏威夷时间 



      BST or BDT    英国夏令时         MST or MDT     美国山区时间 



EMAIL wyhsillypig@163。                                          72 


…………………………………………………………Page 73……………………………………………………………

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



      CST or CDT    美国中央时区             NST         新大陆标准时间 



      EST or EDT    美国东部时区           PST or PDT    太平洋标准时间 



         GMT       格伦威治标准时间         YST or YDT     Yukon 标准时间 



你可以这样来调节时间 



输入 



SQL》SELECT   ENDDATE    EDT   NEW_TIME   ENDDATE     EDT     PDT    FROM 



PROJECT 



    输出 



              EDT           NEW_TIME(ENDDATE      EDT    PDT 



      01…APR…95   1200AM       31…MAR…95            0900PM 



      01…MAY…95   1200AM        30…APR…95           0900PM 



      30…MAY…95   1200AM       29…MAY…95            0900PM 



      30…JUN…95   1200AM        29…JUN…95           0900PM 



      02…SEP…95   1200AM        01…SEP…95           0900PM 



       17…JAN…96  1200AM        16…JAN…96           0900PM 



    就像变魔术一样  所有的时间和日期都变成以新的时区标准了 



NEXT_DAY 



    NEXT_DAY  将返回与指定日期在同一个星期或之后一个星期内的                     你所要求的星期天 



数的确切日期       如果你想知道你所指定的日期的星期五是几号  可以这样做 



    输入 



    SQL》SELECT   STARTDATE    NEXT_DAY    STARTDATE    FRIDAY       FROM 



PROJECT 



    返回结果如下 



    输出 



            STARTDATE      NEXT_DAY(STARTDATE;  'FRIDAY') 



            01…APR…95               07…APR…95 



            02…APR…95               07…APR…95 



            15…MAY…95               19…MAY…95 



            01…JUN…95               02…JUN…95 



             01…JUL…95              07…JUL…95 



             03…SEP…95              08…SEP…95 



EMAIL  wyhsillypig@163。                                             73 


…………………………………………………………Page 74……………………………………………………………

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



   分析 



       输出的结果告诉了你距你所指定的日期最近的星期五的日期 



SYSDATE 



   SYSDATE 将返回系统的日期和时间 



   输入 



   SQL》 SELECT  DISTINCT SYSDATE  FROM   PROJECT 



   输出 



   SYSDATE 



    18…JUN…95 1020PM 



   如果你想知道在今天你都已经启动了哪些项目的话  你可以输入 



   输入/输出 



   SQL》 SELECT  * FROM   PROJECT  WHERE  STARTDATE  SYSDATE 



        TASK            STARTDATE     ENDDATE 



        CODE    WIDGET  01…JUL…95      02…SEP…95 



        TESTING         03…SEP…95      17…JAN…96 



   现在  你已经看到了项目在今天所启动的部分 



数学函数 



   大多数情况下你所检索到的数据在使用时需要用到数学函数                    大多数 SQL  的解释器都 



提供了与这里相类似的一些数学函数             这里的例子使用的表名字叫 NUMBERS          内容如下 



   输入 



   SQL》SELECT  *  FROM  NUMBERS 



   输出 



           A         B     A        B 



           3。1415    4     …57。667  42 



           …45       。707  15       55 



           5         9     …7。2     5。3 



EMAIL wyhsillypig@163。                                        74 


…………………………………………………………Page 75……………………………………………………………

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



ABS 



    ABS  函数返回给定数字的绝对值  例如 



    输入 



    SQL》SELECT   ABS  A    ABSOLUTE_VALUE     FROM   NUMBERS 



    输出 



          ABSOLUTE_VALUE       ABSOLUTE_VALUE 



                        3。1415               57。667 



                           45                   15 



                            5                  7。2 



CEIL 和 FLOOR 



    CEIL  返回与给定参数相等或比给定参数在的最小整数  FLOOR  则正好相反  它返回 



与给定参数相等或比给定参数小的最大整数  例如 



    输入 



    SQL》SELECT   B  CEIL  B    CEILING  FROM   NUMBERS 



    输出 



         B      CEILING   B     CEILING 



         4      4         42    42 



         。707   1          55   55 



         9      9          5。3  6 



    输入/输出 



    SQL》SELECT   A  FLOOR   A    FLOOR   FROM   NUMBERS 



      A       FLOOR     A        FLOOR 



      3。1415  3         …57。667  …58 



      …45     …45       15       15 



      5       5         …7。2     …8 



COS     COSH       SIN     SINH     TAN      TANH 



    COS  SIN  TAN  函数可以返回给定参数的三角函数值               默认的参数认定为弧度制 



如果你没有认识到这一点那你会觉得下例所返回的值是错误 



EMAIL  wyhsillypig@163。                                             75 


…………………………………………………………Page 76……………………………………………………………

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



    输入 



    SQL》SELECT     A  COS   A  FROM    NUMBERS 



    输出 



          A        COS(A)       A         COS(A) 



          3。1415   …1           …57。667   。437183 



          …45      。52532199    15        …。7596879 



          5        。28366219    …7。2      。60835131 



分析 



    你可能认为 COS        45  的返回值应该为 0。707 左右  而不应该是 0。525               如果你想让它 



按照弧度制来计算  那么你需要将弧度制转换成角度制                          由于 360 角度为 2 个弧度         所以 



我们可以写成 



输入/输出 



SQL》SELECT     A  COS   A*0。01745329251994    FROM    NUMBERS 



      A          COS(A*0。01745329251994) 



      3。1415    。99849724 



      …45       。70710678 



      5          。9961947 



      …57。667    。5348391 



      15        。96592583 



      …7。2       。9921147 



分析 



这里的将角度转换成弧度后的数值  三角函数也可以像下面所写的那样工作 



输入/输出 



SQL》SELECT     A  COS   A*0。017453   COSH    A*0。017453    FROM    NUMBERS 



      A          COS(A*0。017453)    COSH(A*0。017453) 



      3。1415    。99849729           1。0015035 



      …45       。70711609

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

你可能喜欢的