관리 메뉴

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

SQL문 속 또 다른 SQL문, 서브쿼리 2 - 여러 절에 사용하는 서브쿼리 본문

알고리즘 및 자료 관리/데이터베이스

SQL문 속 또 다른 SQL문, 서브쿼리 2 - 여러 절에 사용하는 서브쿼리

huenuri 2024. 8. 21. 17:32

서브쿼리 지금껏 용어는 많이 들어보았는데 오늘 학습을 하며 이것이 무엇인지 어느 정도 알게 되었다. 이제 밤 10시 반이 넘었지만 서브쿼리 연습문제까지 1시간 안에 모두 학습하고 나머지 시간에는 정처기 공부를 해볼 생각이다.

별로 어렵지 않은 개념이니 빠르게 학습할 수 있을 것 같다.

 

학습 내용

  1. 비교할 열이 여러 개인 다중열 서브쿼리
  2. FROM절에 사용하는 서브쿼리와 WITH
  3. SELECT절에 사용하는 서브쿼리

학습 시간

밤 10시 반 ~ 11시 10분 <40분 소요>


 

 

 

1. 비교할 열이 여러 개인 다중열 서브쿼리

SELECT절에 비교할 데이터를 여러 개 지정하는 방식이다. 메인 쿼리에 비교할 열을 괄호로 묶어 명시하고 서브쿼리에는 괄호로 묶은 데이터와 같은 자료형 데이터를 SELECT절에 명시하여 사용할 수 있다.

 


 

 

 

 

2. FROM절에 사용하는 서브쿼리와 WITH절

FROM절에 사용하는 서브쿼리는 인라인 뷰라고도 부른다. 인라인 뷰는 특정 테이블 전체 데이터가 아닌 SELECT문을 통해 일부 데이터를 먼저 추출해 온 후 별칭을 주어 사용할 수 있다.

 

인라인 뷰 사용하기

이 방식은 직접 테이블을 명시하여 사용하기에는 데이터 규모가 너무 크거나 불필요한 작업이 많아 일부 행과 열만 사용할 때 유용하다. 하지만 FROM 절에 너무 많은 서브쿼리를 지정하면 가독성이나 성능이 떨어질 수 있기 때문에 경우에 따라 WITH절을 사용하기도 한다.

 

 

 

 

WITH절 사용하기

출력 결과는 앞선 예제와 같다.


 

 

 

 

3. SELECT절에 사용하는 서브쿼리

흔히 스칼라 서브쿼리라고도 부르는 이 서브쿼리는 SELECT절 하나에 열 영역으로서 결과를 출력할 수 있다.

 

SELECT절에 명시하는 서브쿼리는 반드시 하나의 결과만 반환하도록 작성해야 한다는 것을 잊지 말자!


 

 

 

학습을 마치고

연습문제까지 풀려고 했는데 이 문제는 내일 새벽에 맑은 정신으로 하는 것이 더 좋을 것 같다. 밤에 하는 공부는 아무래도 집중력이 새벽보다는 떨어지곤 한다. 그래도 언제 어디서든 공부할 수 있는 습관과 환경을 만드는 것이 중요한 것 같다.

이제 남은 시간은 정처기 공부를 해보려고 한다. 요즘 새로운 진도는 나가지 않고 복습을 하며 암기를 하는 중인데, 이 학습은 따로 학습일지를 쓰지 않고 그냥 읽고 이해하고 넘어가려고 한다.
여기에 너무 많은 시간을 투자할 수 없고 팀 프로젝트도 할 게 정말 많고 내가 세운 계획에 따라 매주 공부하려면 정말 바쁜 시간들이다. 그리고 이제 SQL 학습을 하고 싶어졌다. 데이터베이스를 하나도 모를 때는 막막한 마음이 들었는데 지금은 궁금해진다~