數據庫基本練習

一、查詢部門30中的全部員工的所有信息。 html

select * from emp where deptno=30;htm

二、查詢全部辦事員(CLERK)的姓名,編號和部門編號。 blog

select ename,empno,deptno from emp where job='CLERK';排序

三、查詢補助高於薪金的員工的所有信息。 get

select * from emp where nvl(comm,0) > sal;博客

四、查詢補助高於薪金的60%的員工的所有信息。 it

select * from emp where nvl(comm,0) > (sal*0.6);io

五、查詢部門10中全部經理(MANAGER)和部門20中全部辦事員(CLERK)的詳細資料。 ast

select * from emp where (deptno=10 and job='MANAGER') or (deptno=20 And job='CLERK');class


 

六、查詢部門10中全部經理(MANAGER),部門20中全部辦事員(CLERK),既不是經理又不是辦事員但其薪金大於或等於2000的全部員工的詳細資料。 

理解1:查詢部門10中全部經理(MANAGER),部門20中全部辦事員(CLERK),以及公司內哪些既不是經理又不是辦事員但其薪金大於或等於2000的全部員工的詳細資料。

Select * From emp Where (deptno=10 And job='MANAGER') Or (deptno=20 And job='CLERK') Or (job Not In ('MANAGER','CLERK') And sal>=2000);


 

理解2:查詢部門10中全部經理(MANAGER),部門20中全部辦事員(CLERK),以及十、20號部門內 既不是經理又不是辦事員但其薪金大於或等於2000的全部員工的詳細資料。

Select * From emp Where (deptno=10 And job='MANAGER') Or (deptno=20 And job='CLERK') Or (job Not In ('MANAGER','CLERK') And sal>=2000 And deptno In (10,20));


 

七、查詢收取補助的員工的不一樣工做。 

select ename,job,comm from emp where nvl(comm,0) > 0;


 

八、查詢不收取佣金或收取的補助小於100的員工。 

select * from emp where nvl(comm,0) <100;


 

九、查詢各月倒數第3天受僱的全部員工。 

Select * From emp Where (last_day(hiredate) - hiredate) = 2;


 

十、查詢早於12年前受僱的員工。 

Select * From emp Where to_char(Sysdate,'yyyy') - to_char(hiredate,'yyyy') >= 12;


 

十一、查詢首字母大寫的方式顯示全部員工的姓名。 

Select ename,Initcap(ename) From emp;


 

十二、查詢正好爲5個字符的員工的姓名。 

Select ename From emp Where Length(ename)=5;


 

1三、查詢不帶有「R」的員工的姓名。 

作法1:Select ename From emp Where ename Not Like '%R%';

作法2:Select ename From emp Where Instr(ename,'R')=0; 


 

1四、查詢全部員工姓名的前三個字符。

Select ename, Substr(ename,1,3) From emp; 


 

1五、查詢全部員工的姓名,用「a」替換全部「A」 

Select ename,Replace(ename,'A','a') From emp;


 

1六、查詢滿10年服務年限的員工的姓名和受僱日期。 

方法1:若是不考慮到閏年平年的話,10*365能夠表明10年。

Select ename, hiredate From emp Where (Sysdate-hiredate)>=10*365;

方法2:若是考慮到閏年平年,10*365是不知足10年的要求。

若是服務年限滿10年,那排除月日,sysdate和hiredate在年份上確定也是>=10

Select ename, hiredate From emp Where (to_char(Sysdate,'yyyy') - to_char(hiredate,'yyyy')) >= 10;


 

1七、查詢員工的詳細資料,按姓名排序。 

Select * From emp Order By ename;


 

1八、查詢員工的姓名和受僱日期,根據其服務年限,將最老的員工排在最前面。

Select ename, hiredate From emp Order By hiredate Desc; 


 

1九、查詢全部員工的姓名、工做和薪金,按工做的降序排序,若工做相同則按薪金排序。 

Select ename,job,sal From emp Order By job Desc,sal Desc; 


 

20、查詢全部員工的姓名,加入公司的年份和月份,按受僱日期所在月份排序,若月份相同則將最先年份的員工排在最前面。 

Select ename,to_char(hiredate,'yyyy'),to_char(hiredate,'mm') From emp Order By to_char(hiredate,'mm'),to_char(hiredate,'yyyy');


 

2一、查詢在一個月尾30天的狀況全部員工的日薪金,忽略餘數。 

Select ename,Trunc(sal/30) From emp;


 

2二、查詢在(任何年份的)2月受聘的全部員工。 

Select * From emp Where to_char(hiredate,'mm')=2;


 

2三、查詢每一個員工加入公司的天數。 

Select ename,(Sysdate-hiredate) From emp;


 

2四、查詢姓名字段的任何位置包含「A」的全部員工的姓名。 

Select ename From emp Where ename Like '%A%';


 

2五、查詢以年月日的方式顯示全部員工的服務年限。(大概)

Select ename,sysdate,hiredate,Round(sysdate-hiredate) 天數,

Nvl(Trunc((sysdate-hiredate)/365),0)||'年'||

Nvl(Trunc((Mod((sysdate-hiredate),365))/30),0)||'月'||

Nvl(Round(Mod((Mod((sysdate-hiredate),365)),30)),0)||'日' 年月日 From emp;


 

做者:kerwin-chyl

文章連接:https:////www.cnblogs.com/kerwin-chyl

本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,不然保留追究法律責任的權利。

相關文章
相關標籤/搜索