单行函数:对每一个函数应用在表的记录中,只能输入一行结果,返回一个结果
字符函数:对字符串操作
数字函数:对数字操作,返回一个数字
转换函数:可以将一种数据转换另外一种数据类型
日期函数:对日期进行操作
/**
字符串常用的方法
*/
--将首字母转换为大写
select initcap('hibaby') from dual;
--将字符转换为小写
select lower('HIBABY') from dual;
--将字符转换为大写写
select upper('hibaby') from dual;
--剪辑...开头的
select ltrim ('xyzadams', 'xyz') from dual;
--剪辑...结尾的
select rtrim ('xyzadams', 'ms') from dual;
--替换字符1(1对1)
select translate ('jkabcd', 'abcd', '1234') from dual;
--替换字符2
select replace ('jack and jue', 'j', 'b23456') from dual;
--查找字符第一次出现的位置(不是下标)
select instr ('worldwide', 'd') from dual;
--从第3个开始截取,截取2个,包头包尾
select substr ('abcdefg',3,2) from dual;
--连接字符串
select concat ('Hello', 'world') from dual;
/**
数学相关常用的方法
*/
--取绝对值
select abs(-128) from dual;
--向上取整
select ceil(3.01) from dual;
--向下取整
select floor(3.99) from dual;
--四舍五入取整
select round(3.49) from dual;
select round(3.51) from dual;
--保留几位小数
select trunc(88.6812,1) from dual;
--正弦
select sin(1.23) from dual;
--取符号(-1代表负数 1代表正数)
select sign(111) from dual;
--4的平方
select power(4,2) from dual;
--平方根
select sqrt(2) from dual;
/**
日期相关的函数
*/
--返回俩个日期相差的月份
select months_between ('11-11月-2001','11-1月-1988') from dual;
--返回把月份加到日期上得到一个新的日期
select add_months('11-1月-2001',10) from dual;
--返回下一个星期对应的新日期
select next_day('14-8月-2018','星期一') from dual;
--返回当前日期最大天数
select last_day('14-2月-2016') from dual;
--四舍五入年(按月份相当于是六舍七入)
select round(to_date('20-7月-2018'),'YEAR') from dual;
--四舍五入月(按天相当于是15舍16入)
select round(to_date('16-3月-2018'),'MONTH') from dual;
--四舍五入天(按星期三舍四入)
select round(to_date('16-8月-2018'),'DAY') from dual;
--按年截断,只保留年
select trunc(to_date('06-2月-2018'),'YEAR') from dual;
--按月截断,只保留年月
select trunc(to_date('26-8月-2018'),'MONTH') from dual;
--按星期截断,只保留星期天年月
select trunc(to_date('18-8月-2018'),'DAY') from dual;
/**
转换
*/
--将数字转换为字符串(固定格式,必须是$999n.99n)
select to_char(123.5,'$999.9') from dual;
--转换为指定的日期类型
select to_date('2018-08-14','yyyy-mm-dd') from dual;
--将字符串转换为数字类型
select to_number('1234.5') from dual;
--nvl(a,b)如果a的值为null,则返回b,不为null返回自己本身
select nvl(null,'hi') from dual;
select nvl('baby','hi') from dual;
--nvl2(a,b,c)
select nvl2('oo','hi','baby') from dual;
select nvl2(null,'hi','baby') from dual;
--decode(如果value的值为if1,则返回then1的值,
--如果value的值为if2,则返回then2的值,……,
--否则返回else值)
select decode(12,12,120) from dual;
select decode(12,11,110,13,130,12,120) from dual;
聚合函数:聚合函数同时对多行数据进行操作,并返回一个结果
事务
作为单个逻辑单元执行一系列操作,即把若干条语句放在同一单元模块中,形成一个不可分割的工作单元.如果事务提交成功,则该事务所有更改均会提交;如果事务遇到异常取消或者回滚,则所有操作均失败.
事务是一种操作数据的机制,是数据处理的最小工作单位
事务操作
--事务操作
insert into students values(1 ,'Li' ,23,'12-11月-1993','newyork',2);
--设置保存标记点
savepoint t1;
insert into students values(2, 'Song' ,21 ,default,'Dali',3);
--设置保存标记点
savepoint t2;
update students set bir=to_date('29-6-1976','dd-mm-yyyy') where id=2;
--回滚事务到标记点
rollback to savepoint t2;
rollback to savepoint t1;
--回滚所有事务
rollback;
--提交事务,新事物启动;回滚命令失效
commit;
select * from students;