brunch

이제는 마케터 필수템, SQL

feat. SELECT, WHERE 구문

by 브래드

안녕하세요, 브래드입니다.


오늘은 SQL 입문 첫 시간으로 SELECTWHERE 구문 및 기초적인 사항들에 관해 함께 공부해볼게요.

활용해볼 데이터는 가상의 인터넷 쇼핑몰 데이터이며, DBeaver를 통해 활용해볼 예정입니다.




SELECT 구문으로 데이터 탐색하기

222.JPG 모든 칼럼 추출하기

위의 예시는 모든 칼럼을 추출한 모습입니다.

먼저 FROM 절에서 가져올 테이블을 입력해주고, 이후 SELECT 절에서 해당 테이블에서 가져올 칼럼을 입력해줍니다.


윗 예시에서는 gmv_trend 테이블로부터 모든 칼럼을 가져온 사례입니다. *는 모든 칼럼을 의미합니다.




333.JPG 카테고리 칼럼 불러오기

SELECT 절에 *를 입력하여 전체 칼럼을 불러오는 것이 아닌, 특정한 칼럼을 불러오기 위해선 SELECT 다음에 해당 칼럼을 입력해주면 됩니다.


gmv_trend에서 category 칼럼만을 불러오고 싶다면 다음과 같이 입력하여 카테고리 칼럼만을 불러올 수 있습니다.




4444.JPG
5555.JPG
DISTINCT 사용

이전 예시에서 SELECT 구문에 CATEGORY를 입력하여 카테고리 칼럼을 불러오는 작업을 진행했습니다. 그런데, 카테고리에서 중복되는 값이 많아서 어떠한 카테고리가 있는지 정확하 파악하기 어려웠습니다.


이러한 경우에 우리는 DISTINCT를 사용할 수 있습니다. 불러올 칼럼 앞에 DISTINCT를 입력하여 실행해주면 카테고리 값이 중복 없이 나오는 걸 확인할 수 있습니다.


또한, 연도(yyyy)와 월(mm)의 값도 중복 없이 확인하기 원한다면 해당 칼럼 및 DISTINCT를 입력한 후 실행해주면 됩니다.




WHERE 구문으로 특정 데이터 탐색하기

666.JPG WHERE 구문으로 특정한 연도 값만 보기

SELECT 구문에 이어 WHERE 구문에 대해서도 알아보겠습니다.


WHERE 구문은 조건을 걸어, 우리가 확인하고자 하는 특정 데이터를 탐색할 때 활용할 수 있습니다.


만약, gmv_trend 테이블에서 모든 값을 선택한 후 2020년의 데이터만 보고 싶다고 가정하면 WHERE 구문과 YYYY = 2020을 입력하여 원하는 값을 추출할 수 있습니다.




777.JPG WHERE, BETEEN AND 사용

이번엔 2020년도와 같은 특정한 년도 값이 아닌, 2018 - 2021년 사이 값들을 보고 싶다고 가정해봅시다.


이러한 경우에는 WHERE 구문에서 BEWEEN AND 구문을 사용하여 해당 구간의 값을 확인할 수 있습니다.


추가로, 2019년부터의 값들이 궁금하여 확인하고 싶다면 WHERE YYYY >= 2019를 입력하여 원하는 값을 추출할 수 있습니다.




888.JPG WHERE 구문을 사용하여 특정한 칼럼만 불러오기

여러 항목 중 특정 항목만 보고 싶다면 앞선 사례와 같이 WHERE 절을 활용해줄 수 있습니다.


이번엔 예시로, CATEGOTY 항목에서 가구 칼럼만을 불러오고 싶다고 가정해볼게요. 이러한 경우에는 WHERE 구문을 위 이미지 같이 작성해줍니다.


어기서 주의해야 할 점은, 아까 숫자를 입력했을 때와는 다르게 문자를 입력할 때는 작은따옴표로 묶어서 작성하고 실행해주어야 합니다.




가구가구.JPG 가구 카테고리를 제외하고 불러오는 경우( =! 사용)

가구 카테고리를 제외하고 나머지 카테고리들을 불러오고 싶다면 != 기호를 사용해줍니다.


!= 는 NOT이라는 의미로 사용되므로 특정한 값을 제외하고 불러올 때 활용해줄 수 있습니다.




LIEK.JPG LIKE 연산자

LIKE 연산자는 정확한 값을 알지못할 때, 해당 칼럼에 특정한 단어가 들어간다는 것을 입력하여 값을 추출할 수 있도록 만들어줍니다.


% 기호'어떠한 문자가 와도 상관없다'는 의미로 해석할 수 있습니다. 따라서 % 활용은 다음과 같이 기억하면 좋습니다.


1) '%단어' - 단어라는 글자 앞에 어떠한 문자가 와도 상관없고 단어로 끝나야 해

2) '단어' - 단어라는 글자를 찾아줘

3) '단어%' - 단어로 시작하고 뒤에는 어떠한 문자가 와도 상관없어

4) '%단어%' - 단어라는 글자가 있어야 하되, 앞뒤로는 어떠한 글자가 와도 상관없어




66666.JPG IN 사용

다음으로 WHERE 구문을 통해 특정한 카테고리를 하나가 아닌 두 개 이상으로 보고 싶다고 가정해봅시다.


이러한 경우에는 WHERE CATEGORY = '가구', 'e쿠폰서비스'로 입력하는 것으로 생각할 수 있지만 콤마로 이어주는 것은 계산 수행을 불가능하게 만들어줍니다.


따라서 이러한 경우에는 IN괄호를 사용하여 구문을 작성해줍니다. 만약, 부정을 하고 싶다면 NOT IN을 사용해줍니다.




WHERE 추가 조건.JPG WHERE 구문에 추가 조건

만약 카테고리 중 가구를 추출하고 싶은데, 그중에서도 2020년 데이터만 추출하고 싶다면 WHERE과 함께 AND를 사용해줍니다. 또한, AND가 아닌 OR을 사용하여 실행할 수도 있습니다.


WHERE은 두 번 사용할 수 없으니 해당 부분을 유의해야 합니다.


AND와 OR 사용은 괄호를 어떻게 사용하느냐에 따라 결괏값이 달라질 수 있습니다.

예시로, 매출액이 100만 원 이상이거나 판매수량이 50개 이상이면서, 식음료 카테고리여야 한다는 조건이 있다고 가정해봅시다.


이러한 경우에는 (매출액>=100 OR 판매수량>=50) AND 카테고리 = '식음료'라고 입력하여야 합니다.


즉, WHERE 절에 AND와 OR을 함께 사용할 때는 반드시 ()로 의미 단위끼리 묶어야 합니다.




지금까지 SQL 학습 첫 시간으로 가장 기본적인 SELECT 구문과 WHERE 구문을 함께 공부해보았습니다.


다음 시간에는 GROUP BY 등을 사용하여 좀 더 심화적인 SQL 활용을 함께 알아보아요.


브래드였습니다. 감사합니다.

keyword