三:oracle练习

https://www.cnblogs.com/wishyouhappy/p/3700683.html
1:基本用法
创建表,插入数据,更新数据,删除数据,删除表,修改表名,表数据复制,复制表结构,
复制表结构和数据,复制指定字段,条件查询
//条件查询 case函数
  select SID,sname, (case ssex when '男' then 0 when '女' then 1 end) from student;
2:数学函数
  abs(),取整函数(大):ceil(),取整函数(小):floor(),
取整函数(截取):
trunc(),
四舍五入:round(),
取平方:Power(m,n)
取平方根:SQRT(),
取随机数:dbms_random(minvalue,maxvalue)    select dbms_random.value from SC;
取符号:Sign()
取集合的最大值:greatest(value)
取集合的最小值:least(value)
处理Null值:nvl(空值,代替值) 处理Null值:nvl(空值,代替值)

3:rownum相关
(1)--rownum小于某个数时可以直接作为查询条件(注意oracle不支持select top)
select * from student where rownum <3;
(2)查询rownum大于某个数值,需要使用子查询,并且rownum需要有别名
select * from(select rownum rn ,id,name from student) where rn>2;
(3)区间查询
select * from (select rownum rn, student.* from student) where rn >3 and rn<6;
(5)	排序+前n条
 select * from (select rownum num,t.* from 
(
   select * from SC order by score 
  ) t
 ) p where p.num >3 and p.num<6;
select * from (select rownum rn, t.* from ( select d.* from DJDRIVER d order by DJDRIVER_DRIVERTIMES)t )p where p.rn<9 and p.rn>6;

4:分页查询
(1)select p.* from 
  (select rownum num,d.* from   (select * from student order by student.SID) d) p
 where p.num > 10 and p.num < 20

5:时间处理
(1)select to_char(sage,'yyyy-mm-dd hh24:mi:ss') birthday,to_char(sage,'yyyy') year from student
select to_date('2009-07-04 05:02:01','yyyy-mm-dd hh24:mi:ss')currenttime,
to_date 字符显示为日期的格式,date类型

(2)months_between  
 Select months_between(to_date('03-31-2014','MM-DD-YYYY'),to_date('12-31-2013','MM-DD-YYYY')) "MONTHS"
 FROM DUAL;   
6:next_day
select sysdate today, next_day(sysdate,6) nextweek from dual;

7: 时间区间
//已经格式化过的时间不能再次格式化
select sid, sage from student where sage  between 
to_date('1990-02-01 00:00:00','yyyy-mm-dd hh24:mi:ss')  and 
to_date('2012-05-01 00:00:00','yyyy-mm-dd hh24:mi:ss');

8:interval 间隔
to_char(sysdate - interval '7' year,'yyyy-mm-dd hh24:mi:ss') intervalyear,   
当前时间的年份减去7天

9:add_months
10:extract

6:字符函数
--字符串截取 :substr('abcdefg',1,5)
--查找子串 : instr('abcdefg','bc') instr
----连接   'Hello'||'World' concat
--去前后空格 trim('  wish  ') trim,  
 trim(leading 'w' from 'wish') deleteprefix,    --去前缀
 trim(trailing 'h' from 'wish') deletetrailing,    --去后缀
--ascii(转换为对应的十进制数)  ascii('a') A2,    
--chr(十进制转对应字符)      chr(65) C1,  chr(97) C2,
--length         length('abcdefg') len,
--大小写变换     initcap('wish')initcap,  
--替换   replace('wish1','1','youhappy') replace,
--转换  对应一位(前面的位数大于等于后面的位数 translate('wish1','1','y')translate,
 --连接  concat('11','22') concat  

7:to_number
--to_number(expr)
--to_number(expr,format)
--to_number(expr,format,'nls-param')

8:聚合函数
   //上一章节

  

猜你喜欢

转载自www.cnblogs.com/love-life-insist/p/10543044.html