inset into emp2 (Myid,myname,mydept) select empno,ename,deptno from emp where deptno=10;//批量插入数据update emp set (job,sal,comm)=(select job,sal,comm from emp where ename='SMITH') where ename='SCOTT';
事物用于保证数据的一致性,有一组相关的dml语句组成,该dml语句要么全成功,要么全失败。
saveppint a;
rollback to a; rollback;
set transaction read only;//只允许select不能dml 设置在这时刻之后的修改不会影响到该事务
函数:
字符函数:lower(char),upper(char),length(char),substr(char),replace(char,search_string,replace_string)
update emp set ename=lower(ename);
select * from emp where length(ename)=5;
select upper(substr(ename,0,1))||lower(substr(ename,2,length(ename)-1)) from emp;
数学函数:cos,sin,cosh,sinh,exp,ln,log,sqrt,tan,tanh,acos,asin,atan,round
常用:
round(n,[m])//四舍五入到小数点后m位
trunc(n,[m])//直接截取到小数点后m位
mod(m,n)//m%n
floor(n),向下取整小于n,ceil(n),向上取整大于n
abs(n)
exp(n)//e的n次幂
log(m,n)//返回对数
power(m,n)//m的n次幂
日期函数:
select sysdate from dual;
select * from emp where sysdate>add_months(hiredate,8);//hiredate+8月
last_day(m)//m月最后一天
select sysdate-hiredate,ename from emp;//入职多少天
转换函数:
to_char()
select ename,to_char(hiredate,'yyyy-mm-dd hh24:mi:ss) from emp;//24小时格式 年月日 时分秒
select ename,to_char(sal,'L9,999.99') from emp;//L标示本地格式/$(美元)/C(国际) 9999.99与你的sal格式对应 每三位加一个逗号
select * from emp where to_char(hiredate,'yyyy')='1980';
select * from emp where to_char(hiredate,'mm')='12';
系统函数:
sys_context
select sys_context('userenv','db_name') from dual;
//session_user current_schema language