SQL 서브쿼리와 EXISTS 연습문제
SQL 서브쿼리는 다른 SQL 쿼리 내에 포함된 쿼리로, 주 쿼리의 결과에 영향을 줄 수 있습니다. EXISTS는 서브쿼리 결과가 비어 있지 않은지 확인하는 데 사용되는 연산자입니다. 이번 연습문제에서는 SQL 서브쿼리와 EXISTS 연산자를 사용하여 다양한 문제를 해결해보겠습니다.
문제 1
다음은 employees 테이블과 departments 테이블의 구조입니다.
employees
- id (INT)
- name (VARCHAR)
- department_id (INT)
departments
- id (INT)
- name (VARCHAR)
departments 테이블에서 “Sales” 부서의 id를 찾는 서브쿼리를 작성하세요.
SELECT id
FROM departments
WHERE name = 'Sales';
문제 2
employees 테이블에서 “Sales” 부서에 속한 직원 이름과 부서 이름을 조회하는 SQL 문을 작성하세요.
SELECT e.name, d.name
FROM employees e
JOIN departments d ON e.department_id = d.id
WHERE d.name = 'Sales';
문제 3
employees 테이블에서 “Sales” 부서에 속한 직원 중에서 급여가 5000 이상인 직원의 이름과 급여를 조회하는 SQL 문을 작성하세요.
SELECT e.name, e.salary
FROM employees e
JOIN departments d ON e.department_id = d.id
WHERE d.name = 'Sales' AND e.salary >= 5000;
위의 예제 코드를 실제 데이터베이스에서 실행하면 결과를 얻을 수 있습니다. 이런 방식으로 SQL 서브쿼리와 EXISTS 연산자를 사용하여 복잡한 질의를 작성하고 실행할 수 있습니다. 이를 통해 데이터베이스에서 원하는 정보를 효율적으로 추출할 수 있습니다.
이 글은 데이터베이스 학습을 위해 작성된 예시입니다.
참고 자료
- Oracle Documentation - Subqueries
- MySQL Tutorial - Subqueries in MySQL
- W3Schools - SQL EXISTS Operator
- PostgreSQL Documentation - EXISTS Subquery