서브쿼리(subquery) vs 조인(join) (feat. 이기는 사람 내편) [1탄. 서브쿼리 편]

0

풀스택 개발일지

목록 보기
6/6
post-thumbnail

서브쿼리(subquery)는 뭡.니.까!

네. 서브쿼리는 "하나의 SQL문안에 포함되어 있는 또 다른 SQL문"을 말합니다. AI 답변 출처

SQL문안에 또 다른 SQL문?

" 다른 쿼리 내부에 포함되어 있는 SELETE 문 "

  • 나를 감싸고 있는 쿼리(메인쿼리=외부쿼리=부모쿼리), 안에 들어가 있는 쿼리(서브쿼리=내부쿼리=자식쿼리)

쿼리 구조로 확인해보자 !

employee 테이블을 생성, 데이터를 넣어봄!

🖥 서브쿼리를 이용한 예제

📌 서브쿼리 특 : ()로 감싸져 있다.

Q. 서브쿼리를 이용해서 정대리보다 급여가 높은 사람을 찾아보자 !

  • 파란박스 : 메인쿼리
  • 빨간박스 : 서브쿼리
  • 실행순서 : 서브쿼리 먼저 -> 그 다음 메인쿼리
  • 코드를 해석해보자면, 서브쿼리(employee 테이블에서 name이 '정대리'인 사람의 salary를 구해라) 그리고 메인쿼리(employee 테이블에서 '서브쿼리' 보다 큰 사람을 전체 구해라)

🔆 서브쿼리가 뭐가 좋은거야?(장점)

  1. 서브쿼리는 쿼리를 구조화시키므로, 쿼리의 각 부분을 명확히 구분할 수 있게 해줌
  2. 서브쿼리는 복잡한 JOIN이나 UNION과 같은 동작을 수행할 수 있는 또 다른 방법을 제공
  3. 서브쿼리는 복잡한 JOIN이나 UNION 보다 좀 더 읽기 편함(가독성)

🔆 서브쿼리 실행 조건(생각보다 까다로운 편🙄)

☑ 서브쿼리는 SELECT문 쿼리밖에 사용 할 수 없음
☑ 반드시 괄호()안에 존재해야 함
☑ 괄호가 끝나고 끝에 ;(세미콜론)을 쓰지 않음
☑ ORDER BY를 사용 할 수 없음
☑ 외부쿼리가 SELECT, INSERT, UPDATE, DELETE, SET, DO 문에서만 서브쿼리를 쓸 수 있음
☑ 서브쿼리도 별칭(alias) 사용이 가능

결과(요약)

  1. 다른 쿼리의 결과를 기반으로 데이터를 검색하는 데 사용
  2. 내부 쿼리가 먼저 실행되며, 그 결과는 외부 쿼리에서 추가적인 필터링이나 비교를 위해 사용
  3. 서브쿼리는 일반적으로 복잡한 조건에 사용되거나 특정 기준에 따라 데이터의 하위 집합을 검색하는 데 사용

사실, 서브쿼리가 좋은지 나쁜지 아직 모르겠음. 조인(join)얘기도 좀 들어볼 필요가 있어.(난, 편견 없는 사람이니깐..)

투비컨티뉴...

profile
`나는 ${job} 개발자`

0개의 댓글