`
feipigwang
  • 浏览: 741723 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

ORACLE学习笔记三

 
阅读更多
ORACLE学习笔记三

dual--虚拟表

单行函数:
单行函数一共有五类,分别是:字符函数,数字函数,日期函数,转换函数,通用函数。

SQL> select * from scott.emp;

 EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

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

 7369 SMITH CLERK 7902 17-12月-80 800 20

 7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30

 7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30

 7566 JONES MANAGER 7839 02-4月 -81 2975 20

 7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30

 7698 BLAKE MANAGER 7839 01-5月 -81 2850 30

 7782 CLARK MANAGER 7839 09-6月 -81 2450 10

 7788 SCOTT ANALYST 7566 19-4月 -87 3000 20

 7839 KING PRESIDENT 17-11月-81 5000 10

 7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30

 7876 ADAMS CLERK 7788 23-5月 -87 1100 20

 7900 JAMES CLERK 7698 03-12月-81 950 30

 7902 FORD ANALYST 7566 03-12月-81 3000 20

 7934 MILLER CLERK 7782 23-1月 -82 1300 10


1.字符函数:

UPPER():转大写
LOWER():转小写
INITCAP():首字母大写
LENGTH():求长度
REPLACE():替换
SUBSTR():截取字符串
例如:select upper(ename) from scott.emp; 
结果:
UPPER(ENAM
----------
SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
JAMES
FORD
MILLER

例如:select replace(ename,'A','我') from emp;
结果:
REPLACE(ENAME,'A','
--------------------
SMITH
我LLEN
W我RD
JONES
M我RTIN
BL我KE
CL我RK
SCOTT
KING
TURNER
我D我MS
J我MES
FORD
MILLER

例如:select ename,substr(ename,2),substr(ename,2,3),substr(ename,-2) from emp;【注意substr(ename,-2)】的用法,-2表示为截取从后面

开始的两个字符。
结果:
ENAME SUBSTR(ENAME,2) SUBSTR SUBS
---------- ------------------ ------ ----
SMITH MITH MIT TH
ALLEN LLEN LLE EN
WARD ARD ARD RD
JONES ONES ONE ES
MARTIN ARTIN ART IN
BLAKE LAKE LAK KE
CLARK LARK LAR RK
SCOTT COTT COT TT
KING ING ING NG
TURNER URNER URN ER
ADAMS DAMS DAM MS
JAMES AMES AME ES
FORD ORD ORD RD
MILLER ILLER ILL ER

2.数字函数
ROUND():四舍五入
TRUNC():不四舍五入
MOD():取模运算
例如:select round(514.7524),round(514.7524,2),round(514.7524,-2),round(514.7524,-1) from dual;
结果:注意ROUND(514.7524,-2)和ROUND(514.7524,-1)的结果。
ROUND(514.7524) ROUND(514.7524,2) ROUND(514.7524,-2) ROUND(514.7524,-1)
--------------- ----------------- ------------------ ------------------
 515 514.75 500 510
例如:select trunc(514.7524),trunc(514.7524,2),trunc(514.7524,-2),trunc(514.7524,-1) from dual;
结果:
TRUNC(514.7524) TRUNC(514.7524,2) TRUNC(514.7524,-2) TRUNC(514.7524,-1)
--------------- ----------------- ------------------ ------------------
 514 514.75 500 510
例如:
SQL> select mod(14,2) from dual;

MOD(14,2)
----------
 0
例如:
SQL> select mod(14,3) from dual;

MOD(14,3)
----------
 2

3.日期函数
a.sysdate; 当前日期的获取
例如:
SQL> select sysdate,sysdate+1,sysdate-100 from dual;

SYSDATE SYSDATE+1 SYSDATE-100
-------------- -------------- --------------
11-10月-11 12-10月-11 03-7月 -11
b.last_day(日期) 获取日期的月份最后一天
例如:
select last_day(sysdate) from dual;
结果:
LAST_DAY(SYSDA SYSDATE
-------------- --------------
31-10月-11 11-10月-11
c.next_day(日期,星期X) 获取指定日期之后的下个星期X的日期
例如:select next_day(sysdate,'星期六') from dual;
结果:
NEXT_DAY(SYSDA
--------------
15-10月-11
d.add_months(日期,数字)获取若干月之后的日期
例如:select add_months(sysdate,3) from dual;
ADD_MONTHS(SYS
--------------
11-1月 -12
e.months_between(日期1,日期2)
例如:select months_between(sysdate,hiredate) from emp;
结果:
MONTHS_BETWEEN(SYSDATE,HIREDATE)
--------------------------------
 369.817491
 367.720716
 367.6562
 366.301362
 360.462652
 365.33362
 364.075555
 293.752975
 358.817491
 361.107813
 292.623942
 358.269104
 358.269104
 356.623942
4.转换函数
a.to_char(字符串|列,'格式字符串')
例如:select to_char(sysdate,'yyyy-mm-dd'), to_char(sysdate,'fmyyyy-mm-dd'), to_char(sysdate,'yyyy-mm-dd hh:mi:ss'), to_char

(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
结果:
TO_CHAR(SY TO_CHAR(SY TO_CHAR(SYSDATE,'YY TO_CHAR(SYSDATE,'YY
---------- ---------- ------------------- -------------------
2011-05-11 2011-5-11 2011-05-11 10:19:34 2011-05-11 22:19:34
例如:select to_char(789673512312312,'999,999,999,999,999'),to_char(789673512312312,'L999,999,999,999,999') from dual;
结果:
TO_CHAR(789673512312 TO_CHAR(789673512312312,'L999,
-------------------- ------------------------------
789,673,512,312,312 ¥789,673,512,312,312
b.to_date(字符串,格式) 字符串类型转换为日期类型
例如:select to_date('19410103','yyyy-mm-dd') from dual;
结果:
TO_DATE('19410
--------------
03-1月 -41 
c.to_number(字符串) 字符串类型转换为number类型
例如:select to_number('1') + to_number('2') , '1'+'2' from dual;
结果:
TO_NUMBER('1')+TO_NUMBER('2') '1'+'2'
----------------------------- ----------
 3 3

5.通用函数
a.nvl() 处理null
例如:select sal,comm,nvl(comm,0),(sal + nvl(comm,0))*12,nvl(comm,20) from emp;
结果:
SAL COMM NVL(COMM,0) (SAL+NVL(COMM,0))*12 NVL(COMM,20)
---- ---------- ----------- -------------------- ------------
800 0 9600 20
1600 300 300 22800 300
1250 500 500 21000 500
2975 0 35700 20
1250 1400 1400 31800 1400
2850 0 34200 20
2450 0 29400 20
3000 0 36000 20
5000 0 60000 20
1500 0 0 18000 0
1100 0 13200 20
950 0 11400 20
3000 0 36000 20
1300 0 15600 20
b.decode(列,判断值1,显示值1,判断值2,显示值2,。。。) 必须把此列中的所有情况全部写在后面,若不写则替换为空
例如:select dname,decode(dname,'ACCOUNTING','财务部','RESEARCH','研发部','SALES','销售部','OPERATIONS','管理部')as 全部替

换,decode(dname,'ACCOUNTING','财务部','SALES','销售部','OPERATIONS','管理部') as 部分替换 from dept;
结果:
DNAME 全部替 部分替
-------------- ------ ------
ACCOUNTING 财务部 财务部
RESEARCH 研发部
SALES 销售部 销售部
OPERATIONS 管理部 管理部





分享到:
评论

相关推荐

    Oracle学习笔记精华版

    Oracle学习笔记精华版Oracle学习笔记精华版Oracle学习笔记精华版Oracle学习笔记精华版

    Oracle学习笔记

    Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记

    Oracle学习笔记 Oracle学习笔记

    Oracle非常有用的笔记。。。。。。。。。。。Oracle学习笔记Oracle学习笔记Oracle学习笔记Oracle学习笔记

    oracle学习笔记 oracle学习笔记

    oracle学习笔记 oracle学习笔记oracle学习笔记 oracle学习笔记

    oracle 个人学习笔记

    oracle 个人学习笔记oracle 个人学习笔记oracle 个人学习笔记oracle 个人学习笔记oracle 个人学习笔记oracle 个人学习笔记oracle 个人学习笔记oracle 个人学习笔记oracle 个人学习笔记oracle 个人学习笔记

    Oracle学习笔记 PDF

    本文档主要是网易云李兴华老师进行授课时所作笔记,从Oracle11g数据库的安装到复杂查询做了详细的文档记录。

    Oracle学习笔记.pdf

    oracle学习笔记,包含所有oracle概念,包,函数,oracle的组成,oracle的plsq,oracle的存储过程,oracle的事务等

    oracle学习笔记-入门基础

    oracle学习笔记-入门基础-01-张园

    Oracle学习笔记.doc

    Oracle学习笔记 以下是我这一周学习oracle整理的笔记,包括课堂的内容和自己看额外看的视频补充的一些内容,基本上囊括了所有oracle的基本知识。主要的形式是例子代码加代码解释加运行结果,我个人认为对于没有学习...

    韩顺平oracle学习笔记.pdf

    分享给需要的朋友们韩顺平oracle学习笔记.pdf 大家来下载吧!

    Oracle学习笔记-日常应用、深入管理、性能优化

    资源名称:Oracle学习笔记-日常应用、深入管理、性能优化内容简介:Oracle学习笔记-日常应用、深入管理、性能优化Oracle 11g是最具代表性的高端关系型数据库管理系统,它在世界各地的大型商务数据库应用系统中被广泛...

    oracle学习笔记整理

    学习oracle知识笔记整理,包括pl/sql编程,过程、函数、游标开发等。

    oracle学习笔记

    oracle学习笔记

    oracle学习笔记.txt

    超详细Oracle学习笔记,详细记录了oracle的学习过程中遇到的各种问题及基础知识,适合初中级oracle使用人员学习参考。

    Oracle学习笔记_(PDF版)

    Oracle学习笔记

    Oracle学习笔记——日常应用、深入管理、性能优化 示例代码

    Oracle 11g是最具代表性的高端关系型数据库管理系统,它在世界各地的大型商务数据库应用系统中被广泛应用。本书设计了大量的应用情景,介绍了数据库管理员和开发人员常用的管理、维护和优化Oracle 11g数据库的技术和...

    MSDN oracle学习笔记

    MSDN oracle学习笔记 很好的学习资料

Global site tag (gtag.js) - Google Analytics