관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

서브쿼리 심화 2 - 반환되는 데이터 형식에 따른 서브커리 분류 2 : 단일 행 서브쿼리 본문

알고리즘 및 자료 관리/SQL

서브쿼리 심화 2 - 반환되는 데이터 형식에 따른 서브커리 분류 2 : 단일 행 서브쿼리

huenuri 2024. 10. 23. 18:07

힘들지만 이어서 공부를 진행해보려고 한다. 오후에는 공부가 잘 되지 않아 얼마 하지 못했으니 최소 7시까지는 하려고 한다. 남은 1시간 반 동안 최선을 다해서 집중해 보자.

뭐든 힘들다고 생각하면 더 힘든 법이다. 재미있다고 생각하고 즐겁게 공부에 임할 때 몸도 마음도 가벼워진다.


 

 

 

 

이론 2 - 반환되는 데이터 형식에 따른 서브커리 분류 2 : 단일 행 서브쿼리

 

 

반환되는 기준에 따라 단일 행, 다중 행, 다중 컬럼 서브쿼리로 나눈다. 연관과 비연관과는 관련이 없다.

 

 

 

 

 

 

하나의 값과 비교할 수 있어야 하기 때문에 단일 행 서브쿼리인 것이다.

 

 

 

 

NAME이 ELICE인 DEPARTMENT_ID는 1 하나이기 때문에 1 하나만 반환된다.


 

 

 

 

 

실습 3 - 반환되는 데이터 형식에 따른 서브커리 분류 : 단일 행 서브쿼리

 

 

 


 

 

 

1. 두 개의 테이블 모든 정보 조회하기

 

 

요청 상태가 실패인 요청의 상세 정보를 파악하는 것이 문제이다. REQUEST 테이블에서 요청상태 값이 FAILED인 요청 ID가 1개이기 때문에 단일 행 서브쿼리 개념을 이용하면 될 것 같다.


 

 

 

2. 요청상태가 FAILED인 요청 데이터 조회하기

 


 

 

 

3. 위의 쿼리를 서브쿼리로 이용하여 REQUEST_DTL 테이블에서 요청 상세정보 조회하기

 

 

분명 맞게 작성한 것 같은데 계속해서 오류가 뜨고 있다. 코드를 다시 한번 수정하기로 하자.


 

 

 

4. 코드 다시 수정하기

 

 

 

LIMIT로 제한을 해주었더니 이제 잘 출력이 된다. 원래 강의 영상에는 이 코드는 없었지만 이렇게 한번 추가하니 잘 되었다. 아무튼 정말 어렵게 풀었다.


 

 

 

 

퀴즈 2 - 반환되는 데이터 형섹에 따른 서브커리 분류 : 단일 행 서브쿼리

 

 

DEPARTMENT_ID가 1인 NAME이 모두 출력되므로 ELICE, LINDA, ROBERT가 출력된다. 하지만 STEVE는 DEPARTMENT_ID가 3이므로 출력되지 않는다.

 

 

 

문제를 잘 풀었다.


 

 

 

 

학습을 마치고

원래 모든 영상을 1.5나 1.7배속으로 듣는데 너무 빨리 듣다 보니 놓치는 것들이 많은 것 같아서 1.2배속으로 줄였다. 훨씬 이해도 잘 되고 머릿속에 잘 기억되는 것 같았다.

공부를 빨리 마치고 싶어서 그동안 이런 식으로 빠르게 들었다. 하지만 이렇게 했을 때 오히려 이해가 잘 안 되어 앞부분을 다시 들어야 하니 시간 대비 효율이 적었다. 앞으로는 지금 눈앞의 이익보다는 멀리 보면서 천천히 공부하는 방법을 선택하기로 했다.