Oracle数据库的开发与应用(7)

2019-05-17 16:20

select ADD_MONTHS(to_date(‘2011-01-01’,’yyyy-mm-dd’),-3) from dual 24.

LAST_DAY(d)

返回特定日期所在月份的最后一天,参数d用于指定日期值。

SQL> select to_char(sysdate,’yyyy.mm.dd’),to_char((sysdate)+1,’yyyy.mm.dd’) from dual;

SQL> select last_day(sysdate) from dual;

SELECT LAST_DAY(to_date(‘2011-10-10’,’yyyy-mm-dd’)) FROM dual; 25.

MONTHS_BETWEEN(d1,d2)

返回日期d1和d2之间相差的月数,如果d1小于d2,则返回负数。如果日期d1和d2的天数相同或都是月底,则返回整数;否则Oracle以每月31天为准,计算结果的小数部分。

SQL> select months_between(‘19-12月-1999’,’19-3月-1999’) mon_between from dual; SQL>selectmonths_between(to_date(‘2000.05.20’,’yyyy.mm.dd’),to_date(‘2005.05.20’,’yyyy.mm.dd’)) mon_betw from dual;

select

MONTHS_BETWEEN(to_date(‘2011-01-01’,’yyyy-mm-dd’),to_date(‘2011-03-01’,’yyyy-mm-dd’)) from dual

select

MONTHS_BETWEEN(to_date(‘2011-01-01’,’yyyy-mm-dd’),to_date(‘2011-03-02’,’yyyy-mm-dd’)) from dual

26.

NEXT_DAY(date,char) (下一个周几是几号)

返回特定日期之后的第一个工作日所对应的日期。参数date用于指定日期时间值,参数char用于指定工作日。工作日必须与日期语言匹配。

SQL> select next_day(‘18-5月-2001’,’星期五’) next_day from dual; select next_day(sysdate,’星期五’) from dual; 27.

SYSDATE

用来得到当前系统日期

SQL> select to_char(sysdate,’dd-mm-yyyy day’) from dual; 28.

TO_CHAR(date[,’format’ [,’nlsparams’ ]])

将数字或日期值转变为VARCHAR2类型的数据。Date为指定日期值;format用于指定日期格式,如果省略,则使用默认日期显示格式;nlsparams’用于指定日期显示语言,指定方式

31

为’NLS_DATE_LANGUAGE=language’,如果省略,则使用会话默认的日期语言。

SELECT TO_CHAR(123456789,’L999G999G999D99’,’NLS_CURRENCY=¥’) \ D 如99D99: 返回小數点的位置,两边的9指定了最大位數。 G 如99G99: 返回千分位分隔符,G可出現多次 L 如L999: 在指定位置上返回本地货币号

select to_char(123) from dual

select to_char(sysdate,’yyyy’) from dual select to_char(sysdate,’mm’) from dual select to_char(sysdate,’dd’) from dual select to_char(sysdate,’yyyy-mm-dd’) from dual 29.

TO_DATE(string,’format’)

将字符串转化为ORACLE中的一个日期 30.

TO_MULTI_BYTE

将字符串中的单字节字符转化为多字节字符 可能是全角输入法的问题 SQL> select to_multi_byte(‘高’) from dual; select to_multi_byte(‘AA’) from dual; 31.

50.TO_NUMBER

将给出的字符转换为数字

SQL> select to_number(‘1999’),to_number(‘ 1999’) year from dual;32.

GREATEST

返回一组表达式中的最大值,即比较字符的编码大小. SQL> select greatest(‘AA’,’AB’,’AC’) from dual;

SQL> select greatest(‘啊’,’安’,’天’) from dual; 按汉字排序? select greatest(12,13,11) from dual; 33.

LEAST

返回一组表达式中的最小值

SQL> select least(‘啊’,’安’,’天’) from dual; 34.

USER

返回当前用户的名字

SQL> select user from dual;

32

35.

MAX(DISTINCT|ALL)

求最大值,ALL表示对所有的值求最大值,DISTINCT表示对不同的值求最大值,相同的只取一次 SQL> select max(distinct sal) from scott.emp; 36.

MIN(DISTINCT|ALL)

求最小值,ALL表示对所有的值求最小值,DISTINCT表示对不同的值求最小值,相同的只取一次 SQL> select min(all sal) from gao.table3; 37.

GROUP BY

主要用来对一组数进行统计

SQL> select deptno,count(*),sum(sal) from scott.emp group by deptno; 38.

HAVING

对分组统计再加限制条件

SQL> select deptno,count(*),sum(sal) from scott.emp group by deptno having count(*)>=5; SQL> select deptno,count(*),sum(sal) from scott.emp having count(*)>=5 group by deptno ; 39.

ORDER BY

用于对查询到的结果进行排序输出

SQL> select deptno,ename,sal from scott.emp order by deptno,sal desc; select write_sect_no,count(1) from cim_customer group by write_sect_no having count(1)<10 order by write_sect_no 40.

DECODE

条件判断赋值,很有用处,相当于IF判断。可以简化查询、数据转换、提高性能等功效 DECODE(expr,adjust1,value1,??,default value)

SELECT deptno,ename,sal,decode(deptno,10,sal*1.2,20,sal*1.1,sal) “New Salary” FROM emp ORDER BY deptno;

41.

NVL(expr1,expr2)

该函数用于将NULL转变为实际值。如果expr1是NULL,则返回expr2;如果expr1不是NULL,则返回expr1。参数expr1和expr2可以是任何类型,但二者数据类型必须要匹配。 Select Nvl(write_sect_no,’无抄表区段’) from user_files

33

42. SUM(exprseeion_to_be_added_together)

将传递给它作为参数的表达式中的所有值累加在一起,表达式既可以是列的名字,也可以是一个计算的结果。它仅统计实际的值,NULL值将被忽略。

Select Sum(Total_power) from df_money_files where total_money >0 43.

to_char(n[,fmt]) 数字转换成字符

其实:to_number,to_char,to_date等转换函数都可以在很多数据类型之间进行转换,to_lob一般只能将long、long raw转换为clob、blob、nclob类型

数字格式:

34

44. round/trunc(d [,fmt])

Round(d[,fmt]):返回日期时间的四舍五入结果。参数d用于指定日期时间值,参数fmt用于指定四舍五入的方式。如果设置fmt为YEAR,则7月1日为分界线;如果设置fmt为MONTH,则16日为分界线;如果设置fmt为DAY,则中午12:00时为分界线。

Trunc(d[,fmt]):用于截断日期时间数据。Fmt用于指定截断日期时间数据的方法。如果设置fmt为YEAR,则结果为本年度的1月1日;如果设置fmt为MONTH,则结果为本月1日。

SQL> select round(sysdate,’YEAR’) from dual; ROUND和TRUNC:按照指定的精度进行舍入 select

round(55.5),round(55.5,2),round(55.543,2),round(-55.4),trunc(55.5),trunc(55.5,1),trunc(-55.5) from dual;

8 操纵数据

使用DML语句(INSERT,UPDATE,DELETE)可以操纵表和视图的数据。

8.1 插入数据

当给表增加数据时,可以使用INSERT语句。使用INSERT语句既可以为表插入单行数据,也可以通过子查询将一张表的多行数据插入到另一张表。从Oracle Database 9i开始,Oracle还提供了多表插入功能,即使用一条INSERT语句同时为多张表插入数据。但使用INSERT语句有以下一些注意事项: ? 如果为数字列插入数据,则可以直接提供数字值;如果为字符列或日期列插入数据,则必须用单引

号引住

? 当插入数据时,数据必须要满足约束规则,并且必须为主键列和NOT NULL列提供数据 ? 当插入数据时,数据必须要与列的个数和顺序保持一致

1. 使用VALUES子句插入数据

INSERT INTO [(column[,column,?])] VALUES(value[,value,?]) ? 不使用表列插入数据

INSERT INTO dept VALUES(50,’TRAIN’,’BOSTON’)

? 使用表列插入单行数据

35


Oracle数据库的开发与应用(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:工艺生产实习报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: