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:聚合函数
//上一章节