약 6분
읽기 설정
글자 크기
줄 간격
글꼴
2.14 Sub Query
데이터베이스에서 서브쿼리의 필요성
데이터베이스의 복잡함이 증가함에 따라 정보를 효과적으로 조회하는 것이 중요해졌습니다. 서브쿼리(Sub Query)는 다른 SQL 쿼리의 결과를 사용하여 추가적인 정보를 조회하는 방법을 제공합니다. 이를 통해 데이터베이스의 효율성을 높이고, 복잡한 조건을 간결하게 처리할 수 있습니다.
서브쿼리의 기본 개념
서브쿼리는 쿼리 내에 포함된 SELECT 문입니다. 이는 한 쿼리에서 다른 쿼리의 결과를 사용하여 좀 더 정교한 데이터를 조회할 수 있도록 해줍니다. 예를 들어, 특정 조건을 만족하는 데이터를 찾기 위해 다른 테이블의 데이터를 참고할 수 있습니다.
예제
여기서는 employees 테이블과 departments 테이블을 예로 들어 서브쿼리를 사용해보겠습니다.
테이블 구조
-
employees(사원 테이블)id(Primary Key)namedepartment_id(Foreign Key)
-
departments(부서 테이블)id(Primary Key)department_name
예를 들어, "개발부서에 속하는 모든 사원의 이름을 조회하라"는 문제를 해결한다고 가정해보겠습니다.
서브쿼리 구문
SELECT name
FROM employees
WHERE department_id = (
SELECT id
FROM departments
WHERE department_name = '개발'
);
실행 결과
위 쿼리를 실행하면 개발부서에 소속된 사원의 이름 목록이 반환됩니다. 이를 통해 우리는 서브쿼리가 어떻게 작동하는지, 그리고 이를 통해 데이터베이스에서 특정 조건을 만족하는 정보를 어떻게 조회할 수 있는지를 이해할 수 있습니다.
실습
이제 실습으로, 여러분은 자신의 데이터베이스에 이와 유사한 테이블을 만들고 서브쿼리를 작성해보세요.
실습 지침:
employees와departments테이블을 생성하세요.- 몇 개의 샘플 데이터를 삽입하세요.
- 서브쿼리를 사용하여 각 부서에 속한 사원의 목록을 조회해보세요.
SQL 쿼리를 작성한 후, 결과를 확인하고 특정 조건을 충족하는 레코드를 찾는 과정에서 서브쿼리가 유용하게 활용될 수 있음을 느껴보세요.
프로젝트: 업무 관리 시스템 만들어보기
이제 여러분의 데이터를 이용해 간단한 업무 관리 시스템을 만들어 볼 차례입니다. 각 부서에 소속된 사원 목록을 출력하는 기능을 포함해보세요.
- 테이블 설계: 부서 및 사원 정보를 적절히 설계합니다.
- 서브쿼리 활용: 특정 부서의 직원 목록을 조회하는 기능을 구현합니다.
- 기능 통합: 필요에 따라 다양한 부서의 직원 목록을 표시할 수 있도록 서브쿼리를 확장합니다.
정리
서브쿼리를 통해 보다 복잡한 데이터 조회 문제를 해결할 수 있으며, 이를 통해 데이터베이스의 강력한 잠재력을 체험할 수 있습니다. 계속해서 SQL 언어를 통해 다양한 쿼리 작성 및 데이터 관리를 연습해보세요.
CREATE TABLE departments (
id INT PRIMARY KEY AUTO_INCREMENT,
department_name VARCHAR(50) NOT NULL
);
CREATE TABLE employees (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
department_id INT,
FOREIGN KEY (department_id) REFERENCES departments(id)
);
INSERT INTO departments (department_name) VALUES
('개발'),
('운영'),
('디자인');
INSERT INTO employees (name, department_id) VALUES
('홍길동', 1),
('김철수', 1),
('이영희', 2),
('박영수', 3);
SELECT name
FROM employees
WHERE department_id = (
SELECT id
FROM departments
WHERE department_name = '개발'
);
댓글 0
아직 댓글이 없습니다. 첫 댓글을 남겨보세요.