언어/MYSQL

서브 쿼리

JM Lee 2023. 12. 8. 01:11
728x90

SELECT 안에는 또 다른 SELECT가 들어갈 수 있다. 이것을 서브 쿼리 또는 하위 쿼리라고 부른다.

 

SQL문 2개를 작성해보고, 이 두 개의 코드를 하나로 합쳐보는 작업을 통해 연습해보았다.

 

# 에이핑크의 평균 키
SELECT height From membeer where men_name = '에이핑크';

 

에이핑크의 평균 키를 조회했더니, height = 164가 나왔다.

#164보다 평균 키가 큰 그룹 조회
SELECT mem_name, height FROM member WHERE height >164;

 

그 다음에는 에이핑크의 평균 키(164)보다 큰 그룹을 조회하는 코드를 썼다.

 

이것을 통해 결과문을 얻는데, 두 SQL문을 하나로 합치고 싶을 때 활용하는 것이 서브 쿼리이다.

 

SELECT mem_name, height FROM member
	WHERE height > (SELECT height FROM member WHERE mem_name = '에이핑크');

 

세미콜론(;)이 하나이므로, 이 SQL 문은 하나의 문장이다.

괄호 안의 SELECT 결과가 164이므로 2번째 줄은 WHERE height > 164;와 같다.

 


서브 쿼리의 장점

 


1. 가독성과 유지보수성 향상

서브쿼리를 사용하면 복잡한 쿼리를 더 작은 부분으로 나눌 수 있다. 이는 쿼리의 가독성을 향상시키고 유지보수를 쉽게 만들 수 있다.

2. 재사용성

동일한 서브쿼리를 여러 쿼리에서 재사용할 수 있다. 이는 코드의 중복을 줄이고 일관성을 유지하는 데 도움이 된다.

3. 중첩된 질의 가능

서브쿼리를 사용하면 중첩된 질의를 수행할 수 있다. 이는 복잡한 데이터 추출 또는 여러 수준의 데이터 필터링에 유용하다.

 

서브 쿼리의 단점


1. 성능 문제

일부 경우에는 서브쿼리가 성능에 영향을 미칠 수 있다. 서브쿼리는 외부 쿼리와 비교되어 여러 번 실행될 수 있으며, 이로 인해 성능 저하가 발생할 수 있다. 최적화 기법을 사용하여 성능을 최적화하는 것이 중요하다.

2. 복잡성 증가

서브쿼리를 과도하게 사용하면 쿼리의 복잡성이 증가할 수 있다. 이는 유지보수를 어렵게 만들고 쿼리 실행 계획을 이해하기 어렵게 할 수 있다.

3. 결과 집합 크기

서브쿼리 결과 집합이 크면 성능에 부정적인 영향을 미칠 수 있다. 서브쿼리가 많은 행을 반환하는 경우에는 주의가 필요하다.

'언어 > MYSQL' 카테고리의 다른 글

Join  (1) 2023.12.08
변수 사용, 데이터 형식 변환  (1) 2023.12.08
Select ~ from ~ where 기본 조건식  (1) 2023.12.08