转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> ORACLE >> 正文
PL/Sql循序渐进全面学习教程--Oracle         ★★★★

PL/Sql循序渐进全面学习教程--Oracle

作者:闵涛 文章来源:闵涛的学习笔记 点击数:4221 更新时间:2009/4/22 22:04:46
          TRUNC(45.923,-1)= 40

       3、MOD  余除

          MOD(1600,300)

 

       实例:

       SQL> SELECT ROUND(45.923,2), ROUND(45.923,0),

           2 ROUND(45.923,-1)

           3 FROM SYS.DUAL;

    四、ORACLE 日期格式和日期型函数:

 

       1、默认格式为DD-MON-YY.

       2、SYSDATE是一个求系统时间的函数

       3、DUAL[''''dju:el] 是一个伪表,有人称之为空表,但不确切。

       SQL> SELECT SYSDATE

          2 FROM SYS.DUAL;

       4、日期中应用的算术运算符

       例:SQL> SELECT last_name, (SYSDATE-start_date)/7 WEEKS

             2 FROM s_emp

              3 WHERE dept_id = 43;

       DATE+ NUMBER = DATE

       DATE-DATE= NUMBER OF DAYS

       DATE + (NUMBER/24) = 加1小时

 

       5、函数:

        MONTHS_BETWEEN(date1, date2) 月份间隔,可正,可负,也可是小数

        ADD_MONTHS(date,n)  加上N个月,这是一个整数,但可以为负

        NEXT_DAY(date,‘char’) 如:NEXT_DAY (restock_date,’FRIDAY’),从此日起下个周五。

        ROUND(date[,‘fmt’])

        TRUNC(date[,‘fmt’])

        解释下面的例子:

        SQL> SELECT id, start_date,

          2 MONTHS_BETWEEN (SYSDATE,start_date) TENURE,

          3 ADD_MONTHS(start_date,6) REVIEW

           4 FROM s_emp

            5 WHERE MONTHS_BETWEEN (SYSDATE,start_date)<48;

        我们看到:  MONTHS_BETWEEN (SYSDATE,start_date)<48,说明至今工作未满一年的员工。

       LAST_DAY (restock_date) 返回本月的最后一天

      SQL> select round(sysdate,''''MONTH'''') from dual

 

       ROUND(SYSD

         ----------

          01-11月-01

      round(sysdate,''''YEAR'''') = 01-1月 -02   

      ROUND 之后的值比基值大的最小符合值,大家可以用更改系统时间的方法测试,以15天为分界线,也是非常形象的四舍五入,而TRUNC恰好相反,是对现有的日期的截取。

    五、转换函数:

      1、TO_CHAR

           使一个数字或日期转换为CHAR

 

 

      2、TO_NUMBER

           把字符转换为NUMBER

 

      3、TO_DATE

         字符转换为日期

       这几个函数较为简单,但要多多实践,多看复杂的实例。

      SQL> SELECT ID,TO_CHAR(date_ordered,’MM/YY’) ORDERED

         2 FROM s_ord

         3 WHERE sales_rep_id = 11;

      转换时,要注意正确的缺省格式:

      SELECT TO_DATE(''''03-MAR-92'''') CORRECT FROM DUAL;//正确

       SELECT TO_DATE(''''031092'''') CORRECT FROM DUAL;//不正确

      SELECT TO_DATE(''''031095'''',''''MMDDYY'''') ERRORR FROM DUAL

            输出 3月10日

      SELECT TO_DATE(''''031095'''',''''DDMMYY'''') ERRORR FROM DUAL

               输出 10月3日

      4、实例:

        select to_char(sysdate,''''fmDDSPTH "of" MONTH YYYY AM'''') TODAYS FROM DUAL;

       TODAYS

        --------------------------------

       SIXTEENTH of 11月 2001 下午

       大小写没有什么影响,引号中间的是不参与运算。

      实例 :

       SELECT ROUND(SALARY*1.25) FROM ONE_TABLE;

      意义:涨25%工资后,去除小数位。在现实操作中,很有意义。

      5、混合实例:

SQL> SELECT last_name, TO_CHAR(start_date,

2 ’fmDD ”of” Month YYYY’) HIREDATE

3 FROM s_emp

4 WHERE start_date LIKE ’%91’;

LAST_NAME HIREDATE

------------ --------------------

Nagayama 17 of June 1991

Urguhart 18 of January 1991

Havel 27 of February 1991

     这里要注意:fmDD 和 fmDDSPTH之间的区别。

     SQL> SELECT id, total, date_ordered

         2 FROM s_ord

         3 WHERE date_ordered =

         4 TO_DATE(’September 7, 1992’,’Month dd, YYYY’);

   

    六、独立的函数嵌套

        SQL> SELECT CONCAT(UPPER(last_name),

             2 SUBSTR(title,3)) ”Vice Presidents”

             3 FROM s_emp

             4 WHERE title LIKE ’VP%’;

        * 嵌套可以进行到任意深度,从内向外计算。

      例:

       SQL> SELECT TO_CHAR(NEXT_DAY(ADD_MONTHS

         2 (date_ordered,6),’FRIDAY’),

         3 ’fmDay, Month ddth, YYYY’)

         4 ”New 6 Month Review”

         5 FROM s_ord

         6 ORDER BY date_ordered;

        

       SQL> SELECT last_name,

         2 NVL(TO_CHAR(manager_id),’No Manager’)

         3 FROM s_emp

         4 WHERE manager_id IS NULL;

       对于例子,大家重要的理解,并多做测试,并注意英文版和中文版在日期上的区别。

       有些教材上的例子,不要盲目的相信其结果,实践后才有发言权,希望大家能够在学习的过程中不要忽略了用,

多想一想为什么实例要如此设计,在何种情况下应用此实例来解决问题。这样,我们才真正掌握了知识。

      

          课程 三 从多个表中提取数据
                                                                     

本课重点:
1、SELECT FROM 多个表,使用等连接或非等连接
2、使用外连接OUTER JOIN
3、使用自连接
注意:以下实例中标点均为英文半角
一、连接的概念:

上一页  [1] [2] [3] [4] [5] [6] [7] [8]  下一页


[学习帮助]为什么学习那么的令人害怕呢.?  [精彩网文]直面高三
[精彩网文]学习成功=100%的学习意愿+100%的切实行动  [办公软件]学习PowerPoint心得体会
[网络安全]菜鸟学习—认识无线网络安全技术规范  [Web开发]如何学习Asp.net九步曲—菜鸟导读
[Web开发]最简单的AJAX 无刷新学习例子(示例,包含代码和完…  [Web开发]推荐学习的与NET相关的⑩项技术
[平面设计]Flash动画学习心得体会  [平面设计]学习Flash动画制作技巧、帧的理论知识尤为重要
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台