数据库Oracle笔记02.doc
上传人:sy****28 上传时间:2024-09-15 格式:DOC 页数:2 大小:38KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

数据库Oracle笔记02.doc

数据库Oracle笔记02.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

selectename,salary,salary*1.123456,round(salary*1.123456,2)new_salaryfromemp;round是四舍五入,2是保留小数点后两位不写2只取整数位也可对日期四舍五入selectename,salary,salary*1.123456,trunc(salary*1.123456,2)new_salaryfromemp;trunc是直接删掉,不四舍五入日期:selectsysdatefromdual;查询系统日期10-JAN-12DD-MON-RRdual是虚表时间:selectto_char(sysdate,’yyyy-mm-ddhh24:mi:ss’)fromdual;当前系统时间selectto_char(sysdate,’YEARMONTHMONDDDAYDYAM’)fromdual;可大写可小写MON是简写的月DAY是星期DY是简写的星期日期数据的运算:selectename,hiredate,(sysdate-hiredate)daysfromemp;计算月的差数selectename,hiredate,months_between(sysdate,hiredate)monthsfromemp;selectename,hiredate,round(months_between(sysdate,hiredate))monthsfromemp;计算三个月以后的时间点:selectadd_months(sysdate,3)fromdual;计算三天以后的时间点:selectsysdate+3fromdual;计算两个小时以后的时间点:selectsysdate+2/24fromdual;Insertintoemp(empno,ename,hiredate)values(1018,’rory’,to_date(‘2011-12-15,’yyyy-mm-dd’));字符变日期to_date(字符数据,格式)日期变字符to_char(日期数据,格式)updateempsethiredate=to_date(‘2011-12-18’,’yyyy-mm-dd’)whereempno=1018;需求:如果有奖金就发奖金,如果没有奖金发工资的一半,如果全没,发100Coalesce(1,2,3)如果满足1就是1,如果1是null就看2,如果2是null就是3返回参数列表中第一个非空值注意:0不是nullselectename,bonus.salary,coalesce(bonus,salary*0.5,100)new_bonusfromemp;需求:如果是programmer工资增加百分之20,如果是XX..就XXX第一种写法:selectename,job,casejobwhen’Programmer’thensalar*1.2whenXXthenXXelsesalaryendnew_salfromemp;第二种写法:selectename,job,decode(job,’Programmer’,salary*1.2,‘Analyst’,salary*1.1,salary)new_salfromemp;数字函数roundtrunk字符函数upperlowertrimsubstrreplacelpadrpadinstr日期函数nonths_betweenadd_monthslast_daynext_day(下一个周几)转换函数to_charto_dateto_number分组函数countselectcount(*)fromuser_tables;count(*)查找共有多少条记录count(列名)查找该列不是空的记录数最大值:selectmax(salary)fromemp;最小值:selectmin(salary)fromemp;求和哦:selectsum(salary)fromemp;平均值:selectavg(salary)fromemp;计算平均值时要注意空值avg(nvl(salary,0))selectmin(hiredate)max_hiredatefromemp;求最早入职的日期查看每个部门的平均工资:selectdeptno,avg(nvl(salary,0))avg_salfromempgroupbydeptno;查看每个职位有多少人:selectdeptno,job,count(*)numfromempwherejobisnotnullgroupbydeptno,job;所有的非主函数列都出现在groupby后