1. BOSTON에 있는 부서의 이름은 무엇인가
1. SQL |
SELECT dname FROM dept WHERE loc = 'BOSTON'; |
2. 담당 업무가 ANALYST인 사원의 이름, 입사일자를 보이시오
1. SQL |
SELECT ename, hiredate FROM emp WHERE job = 'ANALYST'; |
3. 부서번호가 10인 사원의 이름과 입사일자를 보이시오
1. SQL |
SELECT ename, hiredate FROM emp WHERE deptno = 10; |
4. 매니저인 사원의 사원번호를 중복을 제거하고 보이시오
1. SQL |
SELECT DISTINCT empno FROM emp WHERE job = 'MANAGER'; |
5. 담당업무가 ANALYST인 사원들의 모든 정보를 보이시오
1. SQL |
SELECT * FROM emp WHERE job = 'ANALYST'; |
6. 연봉이 3000에서 4000 사이인 사원의 이름, 연봉을 보이시오
1. SQL |
SELECT ename, sal FROM emp WHERE sal BETWEEN 3000 AND 4000; |
7. 입사일자가 1981년 1월 ~ 6월이 아닌 사원의 이름, 입사일자를 보이시오
1. SQL |
SELECT ename, hiredate FROM emp WHERE hiredate NOT BETWEEN '1981-01-01' AND '1981-06-30'; |
8. 소속 부서 번호가 10 또는 20인 사원의 사원번호, 이름, 부서번호를 보이시오
1. SQL |
SELECT empno, ename, deptno FROM emp WHERE deptno = 10 OR deptno = 20; |
9. 사장의 이름을 보이시오 (힌트: 사장의 담당업무는 PRESIDENT이다)
1. SQL |
SELECT ename FROM emp WHERE job = 'PRESIDENT'; |
10. 담당업무가 CLERK 가 아닌 사원들의 이름, 담당업무를 보이시오
1. SQL |
SELECT ename, job FROM emp WHERE job <> 'CLERK'; |
11. 연봉이 3000 에서 4000 사이이거나 담당업무가 CLERK인 사원의 이름, 연봉을 보이시오
1. SQL |
SELECT ename, sal FROM emp WHERE (sal BETWEEN 3000 AND 4000) OR (job = 'CLERK'); |
12. 부서번호가 20인 사원 중에서 담당업무가 CLERK 이고 매니저의 사원번호가 7902인 사원의 이름을 보이시오
1. SQL |
SELECT ename FROM emp WHERE (deptno = 20) AND (job = 'CLERK') AND (mgr = 7902); |
13. 담당 업무가 ANALYST, CLERK, MANAGER 중의 하나인 사원의 이름, 담당업무, 급여를 보이시오 (단 IN 또는 NOT IN을 사용하시오)
1. SQL |
SELECT ename, job, sal FROM emp WHERE job IN ('ANALYST', 'CLERK', 'MANAGER'); |
14. 담당 업무가 ANALYST, MANAGER, SALESMAN 중의 하나가 아닌 사원의 이름, 담당업무, 급여를 보이시오 (단 IN 또는 NOT IN을 사용하시오)
1. SQL |
SELECT ename, job, sal FROM emp WHERE job NOT IN ('ANALYST', 'MANAGER', 'SALESMAN'); |
15. 담당 업무명에 'NA'를 포함하는 사원의 이름, 담당업무를 보이시오
1. SQL |
SELECT ename, job FROM emp WHERE job LIKE '%NA%'; |
16. 담당 업무명의 두 번째 글자가 'A'인 사원의 이름, 담당업무를 보이시오
1. SQL |
SELECT ename, job FROM emp WHERE job LIKE '_A%'; |
17. 담당 업무가 MANAGER인 사원은 몇 명인지 보이시오
1. SQL |
SELECT COUNT(*) AS count_all FROM emp WHERE job = 'MANAGER'; |
18. 20번 부서에 근무하는 사원들의 평균 급여액을 보이시오
1. SQL |
SELECT AVG(sal) AS avg_sal FROM emp WHERE deptno = 20; |
19. 10번 부서에 근무하는 사원중 급여를 가장 많이 받는 사원의 급여를 보이시오
1. SQL |
SELECT MAX(sal) AS max_sal FROM emp WHERE deptno = 10; |
20. 담당업무가 MANAGER인 사원들중 급여를 가장 많이 받는 사원과 가장 적게 받는 사원의 급여액 차이를 보이시오
1. SQL |
SELECT MAX(sal) - MIN(sal) AS difference_sal FROM emp WHERE job = 'MANAGER'; |
21. 담당업무가 SALESMAN 이거나 30번 부서에 근무하는 사원의 급여액 합계를 보이시오
1. SQL |
SELECT SUM(sal) AS sum_sal FROM emp WHERE job = 'SALESMAN' OR deptno = 30; |
22. 사원들에게 지급되는 보너스(comm)의 합계를 보이시오.
1. SQL |
SELECT SUM(comm) AS sum_comm FROM emp; |
2. Result |
23. 입사일이 1981년 9월 1일 이후인 사원의 평균 연봉을 보이시오
1. SQL |
SELECT AVG(sal) AS avg_sal FROM emp WHERE hiredate > '1981-09-01'; |
24. 모든 사원들의 현재 급여액 합계와 급여를 20% 올렸을 때 급여액 합계를 보이시오.
1. SQL |
SELECT SUM(sal) AS sum_sal, SUM(sal*1.2) AS sum_sal_20_percent FROM emp; |
25. 담당 업무가 SALESMAN인 사원들의 급여를 20% 인상하기 위해서는 현재보다 얼마의 비용이 더 필요한가를 보이시오.
1. SQL |
SELECT SUM(sal*1.2) - SUM(sal) AS need_cost FROM emp WHERE job = 'SALESMAN'; |
26. 모든 담당업무명을 알파벳순으로 보이시오
1. SQL |
SELECT DISTINCT job -- 중복 허용하려면 DISTINCT 부분 제거 FROM emp ORDER BY job ASC; |
27. 모든 사원의 이름과 업무, 급여를 급여액 내림차순으로 보이시오
1. SQL |
SELECT ename, job, sal FROM emp ORDER BY sal DESC; |
28. 담당 업무가 SALESMAN인 사원의 이름과 부서번호를 입사일자순으로 보이시오
1. SQL |
SELECT ename, deptno FROM emp WHERE job = 'SALESMAN' ORDER BY hiredate; |
29. 급여가 1500 이상이고 담당업무가 MANAGER인 사원의 사원번호, 이름, 급여를 이름 알파벳순으로 보이시오
1. SQL |
SELECT empno, ename, sal FROM emp WHERE sal >= 1500 AND job = 'MANAGER' ORDER BY ename; |
30. 담당업무별 평균연봉을 보이시오
1. SQL |
SELECT job, AVG(sal) AS avg_sal FROM emp GROUP BY job; |
31. 부서별 평균 연봉을 보이되 많은 연봉 우선으로 보이시오
1. SQL |
SELECT deptno, AVG(sal) AS avg_sal FROM emp GROUP BY deptno ORDER BY AVG(sal) DESC; |
32. 각 부서별 최고 연봉을 보이시오
1. SQL |
SELECT deptno, MAX(sal) AS max_sal FROM emp GROUP BY deptno; |
33. 모든 사원의 정보를 담당업무에 대해 오름차순으로, 그리고 같은 업무내에서는 연봉 내림차순으로 정렬하여 보이시오
1. SQL |
SELECT * FROM emp ORDER BY job ASC, sal DESC; |
34. 각 매니저별 담당사원의 인원수, 평균 연봉을 보이시오. (매니저가 NULL인 경우는 제외하시오)
1. SQL |
SELECT COUNT(*) AS count_emp, AVG(sal) AS avg_sal FROM emp WHERE mgr IS NOT NULL GROUP BY mgr; |
35. 각 담당 업무별로 최고 연봉과 최저 연봉을 보이시오
1. SQL |
SELECT MAX(sal) AS max_sal, MIN(sal) AS min_sal FROM emp GROUP BY job; |
36. 담당업무별 인원수, 평균 연봉을 보이되 업무별 인원수가 3명 이상인 경우에 대해서만 보이시오
1. SQL |
SELECT COUNT(*) AS cnt, AVG(sal) AS avg_sal FROM emp GROUP BY job HAVING COUNT(*) >= 3; |
37. 각 부서별 부서번호, 사원 수, 연봉합계를 보이시오
1. SQL |
SELECT deptno, MAX(sal) AS max_sal FROM emp GROUP BY deptno; |
38. 각 부서별 부서번호, 사원 수, 연봉합계를 보이되 사원 수가 5명 이상인 부서의 정보만 보이시오.
1. SQL |
SELECT deptno, COUNT(*) AS cnt, SUM(sal) AS sum_sal FROM emp GROUP BY deptno HAVING COUNT(*) >= 5; |
39. 부서번호, 부서별 사원 수, 연봉 합계를 보이되 급여합계가 9000~10000 사이인 경우만 보이시오. 단, 입사일자가 1981-01-01 이전 사원은 제외하고, 연봉 합계가 많은 순으로 출력하시오
1. SQL |
SELECT deptno, COUNT(*) AS cnt, SUM(sal) AS sum FROM emp WHERE hiredate > '1981-01-01' GROUP BY deptno HAVING SUM(sal) BETWEEN 9000 AND 10000 ORDER BY SUM(sal) DESC; |
'Database' 카테고리의 다른 글
[DB] 도커를 이용하여 MySQL 설치하고 연결하기 (0) | 2023.11.15 |
---|---|
[DB] 데이터모델링 연습 (1) | 2023.11.14 |
[SQL] SELECT - ORDER BY 정렬(+ 인기있는 아이스크림) (2) | 2023.10.05 |
[Database] 관계대수 (0) | 2023.09.19 |
[Database] 슈퍼 키, 후보 키, 기본 키, 대체 키, 외래 키 (1) | 2023.09.15 |