當前位置:首頁 » 數據倉庫 » 資料庫查詢雇員表案例
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫查詢雇員表案例

發布時間: 2023-06-03 23:05:56

sql的練習,求答案!!!

有一些類似的題看看吧 一定有幫助
實驗一
練習1、請查詢表DEPT中所有部門的情況。
select * from dept;

練習2、查詢表DEPT中的部門號、部門名稱兩個欄位的所有信息。
select deptno,dname from dept;

練習3、請從表EMP中查詢10號部門工作的雇員姓名和工資。
select ename,sal from emp where deptno=10;

練習4、請從表EMP中查找工種是職員CLERK或經理MANAGER的雇員姓名、工資。
select ename,sal from emp where job='CLERK' or job='MANAGER';

練習5、請在EMP表中查找部門號在10-30之間的雇員的姓名、部門號、工資、工作。
select ename,deptno,sal,job from emp where deptno between 10 and 30;

練習6、請從表EMP中查找姓名以J開頭所有雇員的姓名、工資、職位。
select ename,sal,job from emp where ename like 'J%';

練習7、請從表EMP中查找工資低於2000的雇員的姓名、工作、工資,並按工資降序排列。
select ename,job,sal from emp where sal<=2000 order by sal desc;

練習8、請從表中查詢工作是CLERK的所有人的姓名、工資、部門號、部門名稱以及部門地址的信息。
select ename,sal,emp.deptno,dname,loc from emp,dept where emp.deptno=dept.deptno and job=』CLERK』;

練習9、查詢表EMP中所有的工資大於等於2000的雇員姓名和他坦鄭芹的經理的名字。
select a.ename,b.ename from emp a,emp b where a.mgr=b.empno(+) and a.sal>=2000;

練習10、在表EMP中查詢所有工資高於JONES的所有雇員姓名、工作和工資。
select ename,job,sal from emp where sal>(select sal from emp where ename=』JONES』);

練習11、列出沒有對應部門表信息的所有雇員的姓名、工作以及部門號。
select ename,job,deptno from emp where deptno not in (select deptno from dept);

練習讓畢12、查找工資在1000~3000之間的雇員所在部門的所有人叢悶員信息
select * from emp where deptno in (select distinct deptno from emp where sal between 1000 and 3000);

練習13、雇員中誰的工資最高。
select ename from emp where sal=(select max(sal) from emp);
select ename from (select * from emp order by sal desc) where rownum<=1;

*練習14、雇員中誰的工資第二高(考慮並列第一的情況,如何處理)。
select ename,sal from (select ename ,sal from emp where sal<(select max(sal) from emp) order by sal desc) where rownum<=1;
實驗二
1. 查詢所有雇員的姓名、SAL與COMM之和。
select ename,sal+nvl(comm,0) 「sal-and-comm」 from emp;

2. 查詢所有81年7月1日以前來的員工姓名、工資、所屬部門的名字
select ename,sal,dname from emp,dept where emp.deptno=dept.deptno and hiredate<=to_date(『1981-07-01』,』yyyy-mm-dd』);

3. 查詢各部門中81年1月1日以後來的員工數
select deptno,count(*) from emp where hiredate>=to_date(『1981-01-01』,』yyyy-mm-dd』) group by deptno;

4. 查詢所有在CHICAGO工作的經理MANAGER和銷售員SALESMAN的姓名、工資
select ename,sal from emp where (job=』MANAGER』 or job=』SALES』) and deptno in (select deptno from dept where loc=』CHICAGO』);

5. 查詢列出來公司就職時間超過24年的員工名單
select ename from emp where hiredate<=add_months(sysdate,-288);

6. 查詢於81年來公司所有員工的總收入(SAL和COMM)
select sum(sal+nvl(comm,0)) from emp where to_char(hiredate,』yyyy』)=』1981』;

7. 查詢顯示每個雇員加入公司的准確時間,按××××年××月××日 時分秒顯示。
select ename,to_char(hiredate,'yyyy-mm-dd hh24:mi:ss') from emp;

8. 查詢公司中按年份月份統計各地的錄用職工數量
select to_char(hiredate,'yyyy-mm'),loc,count(*) from emp,dept
where emp.deptno=dept.deptno group by to_char(hiredate,'yyyy-mm'),loc;

9. 查詢列出各部門的部門名和部門經理名字
select dname,ename from emp,dept where emp.deptno=dept.deptno and job=』MANAGER』;

10. 查詢部門平均工資最高的部門名稱和最低的部門名稱
select dname from dept where deptno=(select deptno from (select deptno from emp group by deptno order by avg(sal) ) where rownum<=1)
union all select dname from dept where deptno=(select deptno from (select deptno from emp group by deptno order by avg(sal) desc ) where rownum<=1);

11. *查詢與雇員號為7521員工的最接近的在其後進入公司的員工姓名
select ename from (select ename from
(select ename from emp where hiredate>(select hiredate from emp where empno=7521) order by hiredate ) where rownum<=1)

❷ 用SQL表達「查詢出2008年1到3月份訂單總金額大於200000的雇員」表:orders,order_details,employees

給的三個表中應該有相應的欄位。

select 員工編號,.員工姓名,sum(b.訂單金額) from employees where 員工編號 in(select distinct 員工編號 from order_details)group by
a.員工編號,a.員工姓名 having sum(b.訂單金額)>200000

❸ SQL語言完成以下操作:

  1. select sum(工資),sum(雇員的傭金百分比) from雇員表

  2. select雇員姓名,雇員經理的編號 from雇員表 --------你根本沒有提供雇員經理名字好吧?

  3. select a.* from訂單表 a,雇員表 bwhere a.負責該訂單的銷售代表編號 = b.雇員編號 and b.雇員姓名 like 『李__』

  4. select 客戶名 from 客戶表 where 客戶地址 in (select 客戶地址 from 客戶表 where 客戶名 = 『客戶A百貨公司』)

  5. select * from訂單表 a,客戶表 b where a.客戶編號=b.客戶標號

  6. select 雇員所在部門編號,avg(工資) from 雇員表 group by 雇員所在部門編號 ----這個你也沒給出部門名稱這個列啊,只有用部門編號代替。

❹ sql查詢語句 給出4張表,找出雇員最多的公司

mysql
select company_name, count(employee_name) employee_count
from works
group by company_name
order by count(employee_name) desc limit 1,1

sql server
select top 1 company_name, count(employee_name) employee_count
from works
group by company_name
order by count(employee_name) desc