본문 바로가기
개발/기타

SQL 쿼리문 예제모음 30개 및 쿼리도구 추천

by 아크투어 2023. 3. 26.
반응형

1. 개요

  • 실전에서 자주 사용되는 유용한 SQL 예제 30개를 선별해 보았다.
  • 오라클 기준이며, 대부분 내장함수를 제외하고는 기본문맥 및 개념은 동일하다.

 

2. dbeaver 

  • DB-TOOL 에서 한가지를 추천한다.
  • 특정한 데이터베이스만 지원하는 것이 아니라 여러가지를 지원한다.
  • 설치는 그냥 다음 > 다음 진행하면 된다.
  •  https://dbeaver.io/
 

DBeaver Community | Free Universal Database Tool

DBeaver Universal Database Tool Free multi-platform database tool for developers, database administrators, analysts and all people who need to work with databases. Supports all popular databases: MySQL, PostgreSQL, SQLite, Oracle, DB2, SQL Server, Sybase,

dbeaver.io

 

dbeaver 다운로드

 

3. 쿼리문 예제 30선

  • 아래 SQL을 참고하자.
1. 문제) 부서번호가 10번인 부서의 사람 중 사원번호, 이름, 월급을 출력하라
SELECT EMPNO , ENAME , SAL FROM EMP WHERE DEPTNO = 10;


2. 문제) 사원번호가 7369인 사람 중 이름, 입사일, 부서번호를 출력하라.
SELECT ENAME , HIREDATE , EMPNO FROM EMP WHERE MGR = 7369;
 

3. 문제) 이름이 ALLEN인 사람의 모든 정보를 출력하라.
SELECT * FROM EMP WHERE ENAME = 'ALLEN';


4. 문제) 입사일이 83/01/12인 사원의 이름, 부서번호, 월급을 출력하라.
SELECT ENAME , DEPTNO , SAL FROM EMP WHERE HIREDATE = '83/01/12';
 

5. 문제) 직업이 MANAGER가 아닌 사람의 모든 정보를 출력하라.
SELECT * FROM EMP WHERE NOT JOB = 'MANAGER';
 

6. 문제) 입사일이 81/04/02 이후에 입사한 사원의 정보를 출력하라.
SELECT * FROM EMP WHERE HIREDATE > '81/04/02';
 

7. 문제) 급여가 $800 이상인 사람의 이름, 급여, 부서번호를 출력하라.
SELECT ENAME , SAL , DEPTNO FROM EMP WHERE SAL >= 800;
 

8. 문제) 부서번호가 20번 이상인 사원의 모든 정보를 출력하라.
SELECT * FROM EMP WHERE DEPTNO >= 20;
 

9. 문제) 이름이 K로 시작하는 사람보다 높은 이름을 가진 사람의 모든 정보를 출력하라.
SELECT * FROM EMP WHERE ENAME <'K';


10. 문제) 입사일이 81/12/09 보다 먼저 입사한 사람들의 모든 정보를 출력하라.
SELECT * FROM EMP WHERE HIREDATE < '81/12/09';


11. 문제) 입사번호가 7698보다 작거나 같은 사람들의 입사번호와 이름을 출력하라.
SELECT MGR , ENAME FROM EMP WHERE MGR <= 7698;
 

12. 문제) 입사일이 81/04/02 보다 늦고 82/12/09 보다 빠른 사원의 이름, 월급, 부서번호를 출력하라.
SELECT ENAME , SAL , DEPTNO FROM EMP WHERE HIREDATE > '81/04/02' AND HIREDATE < '82/12/09';


13. 문제) 급여가 $1,600보다 크고 $3,000보다 작은 사람의 이름, 직업, 급여를 출력하라.
SELECT ENAME , JOB , SAL FROM EMP WHERE SAL > 1600 AND SAL <3000;
 

14. 문제) 사원번호가 7654와 7782 사이 이외의 사원의 모든 정보를 출력하라.
SELECT * FROM EMP WHERE NOT EMPNO >= 7654 AND EMPNO <= 7782;
 

15. 문제) 이름이 B와 J 사이의 모든 사원의 정보를 출력하라.
SELECT * FROM EMP WHERE ENAME >= 'B' AND ENAME <='J';


16. 문제) 입사일이 81년 이외에 입사한 사람의 모든 정보를 출력하라.
SELECT * FROM EMP WHERE NOT HIREDATE LIKE '81%';
 

17. 문제) 직업이 MANAGER와 SALESMAN인 사람의 모든 정보를 출력하라.
SELECT * FROM EMP WHERE JOB = 'MANAGER' OR JOB = 'SALESMAN';


18. 문제) 부서번호와 20, 30번을 제외한 모든 사람의 이름, 사원번호, 부서번호를 출력하라.
SELECT ENAME , EMPNO , DEPTNO FROM EMP WHERE NOT DEPTNO = 20 AND NOT DEPTNO = 30;
 

19. 문제) 이름이 S로 시작하는 사원의 사원번호, 이름, 입사일, 부서번호를 출력하라.
SELECT EMPNO , ENAME , HIREDATE , DEPTNO FROM EMP WHERE ENAME LIKE 'S%';


20. 문제) 입사일이 81년도인 사람의 모든 정보를 출력하라
SELECT * FROM EMP WHERE HIREDATE LIKE '81%';
 

21. 문제) 이름 중 S자가 들어가 있는 사람만 모든 정보를 출력하라.
SELECT * FROM EMP WHERE ENAME LIKE '%S%';
 

22. 문제) 이름이 S로 시작하고 마지막 글자가 T인 사람의 모든 정보를 출력하라(단, 이름은 전체 5자리이다)
SELECT * FROM EMP WHERE ENAME LIKE 'S%' AND ENAME LIKE '____T';


23. 문제) 첫 번째 문자는 관계없고, 두 번째 문자가 A인 사람의 정보를 출력하라.
SELECT * FROM EMP WHERE ENAME LIKE '_A%';
 

24. 문제) 커미션이 NULL인 사람의 정보를 출력하라.  
SELECT * FROM EMP WHERE COMM IS NULL;
 

25. 문제) 커미션이 NULL이 아닌 사람의 모든 정보를 출력하라.
SELECT * FROM EMP WHERE COMM IS NOT NULL;
 

26. 문제) 부서가 30번 부서이고 급여가 $1,500 이상인 사람의 이름, 부서 ,월급을 출력하라.
SELECT ENAME , DEPTNO , SAL FROM EMP WHERE DEPTNO = 30 AND SAL >= 1500;
 

27. 문제) 이름의 첫 글자가 K로 시작하거나 부서번호가 30인 사람의 사원번호, 이름, 부서번호를 출력하라.
SELECT EMPNO , ENAME , DEPTNO FROM EMP WHERE ENAME LIKE 'K%' OR DEPTNO = 30;
 

28. 문제) 급여가 $1,500 이상이고 부서번호가 30번인 사원 중 직업이MANAGER인 사람의 정보를 출력하라
SELECT * FROM EMP WHERE SAL >= 1500 AND DEPTNO = 30 AND JOB = 'MANAGER';
 

29. 문제) 부서번호가 30인 사람 중 사원번호 SORT하라.
오름차순 : SELECT * FROM EMP WHERE DEPTNO = 30 ORDER BY EMPNO ASC;
내림차순 : SELECT * FROM EMP WHERE DEPTNO = 30 ORDER BY EMPNO DESC;
 

30. 문제) 급여가 많은 순으로 SORT하라.
SELECT * FROM EMP ORDER BY SAL DESC;

 

반응형