内容发布更新时间 : 2024/11/20 21:24:59星期一 下面是文章的全部内容请认真阅读。
oracle练习题
查询练习一
--查询姓名首字母为“A”或第二个字符为“A”的所有员工信息 SELECT* FROMemp
WHEREenameLIKE'A%' ORenameLIKE'_A%';
--查询部门20和30中的、岗位不是“CLERK”或“SALESMAN”的所有员工信息 SELECT* FROMemp
WHEREjob !='CLERK' ANDjob !='SALESMAN' ANDdeptnoIN(20,30);
--查询出工资在2500-3500之间,1981年入职的,没有奖金的所有员工信息 SELECT* FROMemp
WHEREEXTRACT(YEARFROMhiredate) =1981 ANDsalBETWEEN2500AND3000 ANDcommISNULL; --查询比平均员工工资高的员工信息 SELECTdeptno, dname, loc FROMdept WHEREdeptnoIN( SELECTdeptno FROMemp GROUPBYdeptno HAVINGAVG(sal) >2000 );
--查询平均工资高于2000的部门信息 selectdeptno ,dname,loc fromdept
wheredeptnoin(selectdeptno fromemp groupbydeptno havingavg(sal)>2000); --查询出ward的工作所在地 SELECTloc FROMdept WHEREdeptnoIN( SELECTdeptno
FROMemp
WHEREename ='WARD' );
--查询出工资比ADAMS高的所有人姓名、部门、所在地 SELECTa.ename, b.dname, a.sal FROMemp a, dept b WHEREa.deptno = b.deptno ANDa.sal> ( SELECTsal FROMemp
WHEREename ='ADAMS' );
--查询出工资排名第7的员工信息 SELECT* FROM(
SELECTrank() OVER (ORDERBYsalDESC)ASrk, emp.* FROMemp )
WHERErk =7;
/*minue:两个结果值相减, uniou:两个结果集拼到一起 (1~7)-(1~6)=排名第7 */
--查询与部门20岗位不同的员工工资 SELECTsal, job,deptno FROMemp WHEREjobNOTIN( SELECTjob FROMemp
WHEREdeptno =20 );
--验证 --20部门的岗位 /*select job from emp
where deptno=20;*/
--查询与smith部门岗位完全相同的员工姓名、工作、工资 SELECT* FROMemp WHEREdeptnoIN(
SELECTdeptno FROMemp
WHEREename ='SMITH' ) ANDjobIN(
SELECTjob FROMemp
WHEREename ='SMITH' );
--查询emp表中的所有信息 select* fromemp;
--查询emp表中的员工姓名和工资 selectename,sal fromemp;
--查询emp表中部门编号为20的并且sal大于3000的所有员工信息 select* fromemp
wheredeptno=20andsal>3000;
--查询emp表中部门编号为20的或者sal大于3000的所有员工信息 select* fromemp
wheredeptno=20orsal>3000;
--使用between and查询工资在2000到4000之间的员工 select* fromemp
wheresalbetween2000and4000; --使用in查询部门编号10,20的所有员工 select* fromemp
wheredeptnoin(10,20);
--使用like查询所有名字中包括W的员工信息 select* fromemp
whereenamelike'%W%';
--使用like查询所有员工名字中的第二子字母为W的员工信息 select* fromemp
whereenamelike'_W%';
--查询所有员工信息并按照部门编号和工资进行排序 select* fromemp
orderbydeptno,sal ; --显示员工共工资上浮20%的结果 selectsal+sal*0.2 fromemp;