?
is null; //是null is not null; //不是null savepoint aa; //设置保存回归点 rollback to aa; //rollback回归点set timing on //打开执行操作的时间insert into user(id,username,password) selet * from user //超级复制,自己往自己插入数据nvl(comm,0) //如果comm=null,就有0表示,如果不是null,就用他原来的值select sal*13 as "工资" from emp; //查询是每个sal乘以13,并且别名两边是双引号data //默认的格式是 d-m月-y,比如02-08月-2010like '__0%'; //表示前面两个字符随意,第三个字符是0后面随便是什么字符order by departNo,sal desc;//一个升序,一个降序,按departNo asc,sal是descselect sal+comm as "年工资" from user order by "年工资" //别名排序//表示按 deptno和job分组,并计算 min(sal),avg(sal),max(sal)和显示deptno,job这些信息select min(sal),avg(sal),max(sal),deptno,job from emp group by deptno,job//表示先按 deptno 分组,并计算avg(sal),max(sal),在过滤( having) avg(sal)>2000select avg(sal),max(sal),deptno from emp group by deptno having avg(sal)>2000//表示查询 sal大于 select sal from emp where depton=30这里面的(depton=30)的salselect sal from emp where sal > all(select sal from emp where depton=30);select sal from emp where sal >(select max(sal) from emp where depton=30));all 所有any 任何一个//多列查询 顺序不能弄倒 (id,user)=(select id,user)select * from user where (id,user)=(select id,user from user where id=2));//oracle分页 ,表示order by name,然后 6到10条数据;//所有的改动,只需要改动(select name from emp order by name)这一部分select * from (select t1.*,rownum rn from (select name from emp order by name) t1 where rownum<=10) where rn>=6 //用查询结果创建新表,并把数据也导过来了啊 create table mytable(id,name) as select id,name from user //合并查询 union //去掉重复的数据,并集 union all //不去掉重复的数据,拼张数据,全部的 intersect // 相交(交集),共同有的数据 minus // 差集//希望SOOTT的工作,工资,补助和 SMITH一样,使用子查询更新数据update emp set(job,sal,comm)=(select job,sal,comm from emp where ename='SMITH') where ename='SOOTT';//只读事务,表示不能查到在此之后的数据set transaction read only;to_date('20101010','yyyy-mm-dd');lower('A')=aupper('a')=Alength('length')=6substr('abcdefg',2,3)= bcd; //oracle的substr函数的下标是1开始//首字母小写,其它的字符大写select lower(substr(APPNTNO,1,1)) ||substr(APPNTNO,2,length(APPNTNO)) from lcpol;raplace('abcdefgffaggff','f',0)=abcde0g00agg00round(n,[m]) round(10.236523,3)=10.237 //四舍五入trunc(n,[m]) trunc(10.236523,3)=10.236//截取数字mod(m,n) mod(7,5)=2 //求余数floor(m) floor(10.59)=10//返回小于或等于的最大整数ceil(m) ceil(10.59)=11//返回大于或等于的最大整数abs(n) //绝对值acos(n) //返回数字的反余旋值atan(n) //返回数字的反正旋值log(m,n) //返回对数值power(m,n) //返回m的n次幂sysdate; //返回系统时间add_months(m,n) ;//在指定的月数加多少月//查询入职多少天 ,hiredate表示入职的年份select trunc(sysdate-hiredate) as "入职天数" from emp;last_day(d) //一个月的最后一天select hiredate,last_day(hiredate) as "月天数" from emp'to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') //比如等于2012-05-31 21:39:03to_char(sysdate,'yyyy-mm-dd hh:mi:ss') //比如等于2012-05-31 09:39:03//显示本国货币,中国就是RMB ,99999.99表示最长5位整数,2位小数to_char(money,'L99999.99');//显示本国货币,中国就是RMB ,99999.99表示最长5位整数,2位小数,并且每三位以,分隔to_char(money,'L999,99.99'); to_char(date,'yyyy')=2012;//表示要得到的年份要等于2012to_char(date,'mm')=09;//表示要得到的月份要等于09?
?
?
?