본문 바로가기

Data Literacy/SQL

Chapter 1. 데이터 조회, 필터링(1) - SELECT

postgreSQL logo image

 

 

○ SELECT 사용하기

 

SELECT는 기본적으로 테이블에 저장된 데이터를 불러오는 데 사용합니다. SELECT 다음에 조회하고자 하는 테이블의 [칼럼 단위]를 입력해 출력합니다. 해당 테이블 전체(칼럼) 조회가 필요하다면 ' * '를 사용하게 됩니다. 

 

SELECT를 사용해 컬럼을 조회한다면, 해당 칼럼들을 포함하는 테이블도 정의해야 합니다. 칼럼을 SELECT로 지정하고, FROM을 이용해 컬럼을 조회할 테이블을 선언하게 됩니다. 정리하면 아래와 같습니다. 

 

SELECT COLUMN1,
       COLUMN2,
       중략
FROM TABLE_NAME;

 

dvdrental DB를 이용해서 실습해 보겠습니다. 

 

 


 

 

우선 dvdrental DB의 테이블 중 [CUSTOMER] 테이블을 기준으로 살펴보겠습니다. 해당 테이블의 "다이어그램 보기"(테이블 우클릭) 기능으로 조회하면 CUSTOMER 테이블의 관계와 칼럼 구조를 확인할 수 있습니다. 

 

 

 

select
	*
from 
	customer;

 

위의 쿼리를 실행하면, 아래와 같이 CUSTOMER 테이블의 모든 데이터를 조회할 수 있게 됩니다. 

 

 

참고로 위의 쿼리 실행블록을 드래그하고 [ctrl + shift + E]를 눌러주면 실행 플랜을 확인할 수 있습니다. 

 

 


 

 

CUSTOMER에서 전체 컬럼 선택이 아닌 FIRST_NAME / LAST_NAME / EMAIL 칼럼만을 조회한다고 가정해 보겠습니다. 이때 데이터가 처리되는 순서도 같이 살펴보겠습니다. 

 

select          // 3
	first_name  // 4
	, last_name 
	, email     
from            // 1
	customer;   // 2

 

 


 

 

○ ALIAS(앨리어스) 사용하기

 

앨리어스(alias)를 사용하게되면, 테이블에 대한 코드 가독성을 높일 수 있습니다. 간혹 'from customer'를 작성하면 자동으로 'customer c'로 작성되는 케이스를 보셨을 것입니다. 이 테이블 명을 구분하는 축약어를 앨리어스로 칭합니다. 위의 쿼리를 예로 들어보겠습니다. 

 

select
	c.first_name  
	, c.last_name
	, c.email 
from 
	customer c;

 

위와 같이 테이블 명을 기반으로 변수와 같은 역할을 하는 c를 사용할 수 있게 됩니다. 예를 들어 SELECT 라인에서 c를 입력만 해도 해당 테이블의 칼럼 내용이 자동으로 드롭다운 되기도 하고, 여러 개의 테이블이 쿼리에 존재할 때 쉽게 구분이 되기도 합니다. 

 

더불어 앨리어스는 SQL의 성능과도 연계됩니다. 일단 간단히 설명하면, 이 앨리어스를 사용하는 경우가 SQL 옵티마이저 동작과 최적화에 더 도움이 된다는 사실을 기억하시면 됩니다.