网络收集:PLSQL常用方法汇总

文章作者 100test 发表时间 2007:08:06 13:21:19
来源 100Test.Com百考试题网


在SQLPLUS下,实现中-英字符集转换
alter session set nls_language=AMERICAN.
alter session set nls_language=SIMPLIFIED CHINESE.
主要知识点:
一、有关表的操作
1)建表
create table test as 0select * from dept. --从已知表复制数据和结构
create table test as 0select * from dept where 1=2. --从已知表复制结构但不包括数据
2)插入数据:
insert into test 0select * from dept.
二、运算符
算术运算符: - * / 可以在0select 语句中使用
连接运算符:|| 0select deptno|| dname from dept.
比较运算符:> >= = != < <= like between is null in
逻辑运算符:not and or
集合运算符: intersect ,union, union all, minus
要求:对应集合的列数和数据类型相同
查询中不能包含long 列
列的标签是第一个集合的标签
使用order by时,必须使用位置序号,不能使用列名
例:集合运算符的使用:
intersect ,union, union all, minus
0select * from emp intersect 0select * from emp where deptno=10 .
0select * from emp minus 0select * from emp where deptno=10.
0select * from emp where deptno=10 union 0select * from emp where deptno in (10,20). --不包括重复行
0select * from emp where deptno=10 union all 0select * from emp where deptno in (10,20). --包括重复行

三,常用 ORACLE 函数
sysdate为系统日期 dual为虚表
一)日期函数[重点掌握前四个日期函数]
1,add_months[返回日期加(减)指定月份后(前)的日期]
0select sysdate S1,add_months(sysdate,10) S2,
add_months(sysdate,5) S3 from dual.
2,last_day [返回该月最后一天的日期]
0select last_day(sysdate) from dual.
3,months_between[返回日期之间的月份数]
0select sysdate S1, months_between(1-4月-04,sysdate) S2,
months_between(1-4月-04,1-2月-04) S3 from dual
4,next_day(d,day): 返回下个星期的日期,day为1-7或星期日-星期六,1表示星期日
0select sysdate S1,next_day(sysdate,1) S2,
next_day(sysdate,星期日) S3 FROM DUAL
5,round[舍入到最接近的日期](day:舍入到最接近的星期日)
0select sysdate S1,
round(sysdate) S2 ,
round(sysdate,year) YEAR,
round(sysdate,month) MONTH ,
round(sysdate,day) DAY from dual
6,trunc[截断到最接近的日期]
0select sysdate S1,
trunc(sysdate) S2,
trunc(sysdate,year) YEAR,
trunc(sysdate,month) MONTH ,
trunc(sysdate,day) DAY from dual
7,返回日期列表中最晚日期
0select greatest(01-1月-04,04-1月-04,10-2月-04) from dual

二)字符函数(可用于字面字符或数据库列)
1,字符串截取
0select substr(abcdef,1,3) from dual
2,查找子串位置
0select instr(abcfdgfdhd,fd) from dual
3,字符串连接
0select HELLO||hello world from dual.
4, 1)去掉字符串中的空格
0select ltrim( abc) s1,
rtrim(zhang ) s2,
trim( zhang ) s3 from dual
2)去掉前导和后缀
0select trim(leading 9 from 9998767999) s1,
trim(trailing 9 from 9998767999) s2,
trim(9 from 9998767999) s3 from dual.
5,返回字符串首字母的Ascii值
0select ascii(a) from dual
6,返回ascii值对应的字母
0select chr(97) from dual
7,计算字符串长度
0select length(abcdef) from dual
8,initcap(首字母变大写) ,lower(变小写),upper(变大写)
0select lower(ABC) s1,
upper(def) s2,
initcap(efg) s3 from dual.
9,Replace
0select replace(abc,b,xy) from dual.
10,translate
0select translate(abc,b,xx) from dual. -- x是1位
11,lpad [左添充] rpad [右填充](用于控制输出格式)
0select lpad(func,15,=) s1, rpad(func,15,-) s2 from dual.
0select lpad(dname,14,=) from dept.
12, decode[实现if ..then 逻辑]
0select deptno,decode(deptno,10,1,20,2,30,3,其他) from dept.
三)数字函数
1,取整函数(ceil 向上取整,floor 向下取整)
0select ceil(66.6) N1,floor(66.6) N2 from dual.
2, 取幂(power) 和 求平方根(sqrt)
0select power(3,2) N1,sqrt(9) N2 from dual.
3,求余
0select mod(9,5) from dual.
4,返回固定小数位数 (round:四舍五入,trunc:直接截断)
0select round(66.667,2) N1,trunc(66.667,2) N2 from dual.
5,返回值的符号(正数返回为1,负数为-1)
0select sign(-32),sign(293) from dual.
src="/oracle/js/wxgg_oracle.js">


相关文章


数据库触发器和作业结合讲解
简单讲述oracle数据库查询原理
网络收集:PLSQL常用方法汇总
Bharosa保证Oracle事务处理安全性
Oracle数据完整性嵌套事务调用分析研究
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛