상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - MySQL에서 서브쿼리(Subquery)란 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
서브쿼리(Subquery)란 SQL 쿼리 내에서 다른 쿼리를 포함하는 구조를 의미합니다. 서브쿼리는 주 쿼리의 일부로서, 주 쿼리의 조건을 결정하거나 데이터를 필터링하는 데 사용됩니다. 서브쿼리는 일반적으로 <a href='https://sangseek.com/sangseeks/SELECT/ko'>SELECT</a>, INSERT, UPDATE, DELETE 문에서 사용될 수 있으며, 주 쿼리와 함께 실행되어 결과를 반환합니다. 서브쿼리는 주 쿼리와 독립적으로 실행될 수 있으며, 그 결과는 주 쿼리의 조건으로 사용될 수 있습니다. 서브쿼리의 종류서브쿼리는 크게 두 가지로 나눌 수 있습니다:1. 단일 행 서브쿼리 (Single-row Subquery) : - 이 서브쿼리는 <a href='https://sangseek.com/sangseeks/하나의 행/ko'>하나의 행</a>과 하나의 열을 반환합니다. 주 쿼리에서 비교 연산자(=, <, > 등)와 함께 사용됩니다. - 예를 들어, 특정 직원의 급여가 회사의 평균 급여보다 높은지를 확인할 때 사용할 수 있습니다. ```sql SELECT employee_<a href='https://sangseek.com/sangseeks/name/ko'>name</a> FROM employees WHERE salary > (SELECT AVG(salary) FROM employees); ```2. 다중 행 서브쿼리 (Multiple-row Subquery) : - 이 서브쿼리는 여러 행을 반환하며, IN, ANY, ALL 등의 연산자와 함께 사용됩니다. - 예를 들어, 특정 부서에 속한 모든 직원의 이름을 찾을 때 사용할 수 있습니다. ```sql SELECT employee_name FROM employees WHERE department_id IN (SELECT department_id FROM <a href='https://sangseek.com/sangseeks/departments/ko'>departments</a> WHERE location_id = 1000); ``` 서브쿼리의 위치서브쿼리는 주 쿼리의 여러 위치에 삽입될 수 있습니다:- FROM 절 : 서브쿼리를 테이블처럼 사용하여 데이터를 가져올 수 있습니다. ```sql SELECT department_id, AVG(salary) FROM (SELECT department_id, salary FROM employees) AS dept_salaries GROUP BY department_id; ```- WHERE 절 : 조건을 추가하여 필터링할 때 사용됩니다. ```sql SELECT employee_name FROM employees WHERE department_id = (SELECT department_id FROM departments WHERE <a href='https://sangseek.com/sangseeks/department_name/ko'>department_name</a> = 'Sales'); ```- SELECT 절 : 특정 계산이나 값을 반환할 때 사용됩니다. ```sql SELECT employee_name, (SELECT AVG(salary) FROM employees) AS avg_salary FROM employees; ``` 서브쿼리의 장점과 단점 장점:- 코드의 가독성 : 복잡한 쿼리를 더 쉽게 이해할 수 있도록 구조화할 수 있습니다.- 재사용성 : 서브쿼리를 사용하여 동일한 쿼리를 여러 번 작성할 필요 없이 재사용할 수 있습니다.- 유연성 : 다양한 조건을 설정하여 데이터를 필터링하는 데 유용합니다. 단점:- 성능 문제 : 서브쿼리는 주 쿼리와 함께 실행되므로, 데이터 양이 많을 경우 성능 저하를 초래할 수 있습니다. 특히, 서브쿼리가 반복적으로 실행되는 경우 성능에 부정적인 영향을 미칠 수 있습니다.- 복잡성 : 너무 많은 서브쿼리를 사용하면 쿼리가 복잡해져서 유지보수가 어려워질 수 있습니다. 결론서브쿼리는 MySQL에서 데이터를 효율적으로 조회하고 조작하는 데 매우 유용한 도구입니다. 적절하게 사용하면 쿼리의 가독성과 재사용성을 높일 수 있지만, 성능과 복잡성을 고려하여 신중하게 설계해야 합니다. 서브쿼리를 사용하는 방법을 잘 이해하고 활용하면, 데이터베이스 작업을 보다 효과적으로 수행할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기