brunch

You can make anything
by writing

C.S.Lewis

by 비즈스프링 Mar 10. 2020

마케터를 위한 SQL : SELECT와 WHERE

구글 빅쿼리에서 데이터를 뽑아내는 명령어 SQL에 대해 알아보겠습니다.

아래 콘텐츠들로부터 이어지는 내용입니다.
BigQuery, SQL이 낯선 분들은 아래 시리즈를 참고해주세요 :)

구글 빅쿼리(Google BigQuery) 시작하기
구글 빅쿼리(Google BigQuery) 화면 구성


이전시간에는 ‘구글 빅쿼리 화면 구성‘에 대하여 알아보았습니다.

구글 빅쿼리라는 사이트의 구성요소를 봄으로써 어떻게 다뤄야 하는지 확인하였는데요.


오늘은 이 구글 빅쿼리에서 데이터를 뽑아내는 명령어 SQL에 대해 알아보겠습니다. 구글 빅쿼리가 어떤 개념인지 쉽게 정의하기 어려우시다면, ‘데이터가 담겨있는 상자의 집합!‘을 기억해주세요. 



구글 빅쿼리 안에는 많은 상자가 있을 수 있습니다. 우리는 이 중 하나의 상자에서 원하는 정보를 뽑아내는데요. 이 상자는 ‘말귀를 알아듣는’ 항아리 입니다. 만일 제가 ‘A 상자에 있는 것 중에서 과일인 애들을 보여줘!’ 라고 하면 상자는 분류가 과일인 친구들을 주섬주섬 꺼내어 보여줍니다.


다만, 명령어들이 명확하지 않다면 상자는 에러를 내놓습니다. ‘나는 너의 명확하지 않는 말은 추측조차 하지 않겠어!(단호)’라고 말하는 것 처럼요. 우리가 원하는 데이터를 뽑아내기 위해서는 구글 빅쿼리가 알아들을 수 있는 언어를 알아야 하는데요. 이 때 필요한 것이 SQL 입니다. 




SQL 이란

‘데이터를 관리하기 위해 설계된’ ‘프로그래밍 언어’구나~ 정도로 이해하면 됩니다.
위키백과에 따르면 “SQL 은 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다. 관계형 데이터베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정 관리를 위해 고안되었다. 많은 수의 데이터베이스 관련 프로그램들이 SQL을 표준으로 채택"하고 있습니다.


사실 구글 빅쿼리는 알아들을 수 있는 SQL 종류가 2가지(Legacy, Standard) 이지만, 구글 빅쿼리 말고도 다른 데이터 상자(DBMS) 에서도 사용 가능한 표준 SQL을 알아보겠습니다.

**SQL 구문은 대/소문자 모두 사용할 수 있습니다. 




1. 기본 중에 기본! SELECT * FROM box


SELECT 는 ‘꺼내줘!’ 의미를 가지고 있어요.
문구 그대로 해석해볼게요. ‘꺼내줘! *(모든 데이터)을 box에서’
이해 되셨나요? ‘box라는 테이블에서 모든 데이터를 보겠다.’ 입니다.


쉽죠?


여기에서 * 은 테이블에 있는 컬럼명으로 지정할 수도 있습니다..
만일 box가 | 이름 | 휴대전화 | 이메일 | ID | 사용자번호 | 와 같이 구성되어 있고, box에서 ‘이메일’만 확인하고 싶다면 SELECT 이메일 FROM box 와 같이 작성하면 됩니다. ‘이메일’하고 ‘사용자번호’ 도 알고싶다면? SELECT 이메일, 사용자번호 FROM box 와 같이 ,(콤마)로 구분해주면 됩니다. 





2. 이제 조건을 추가해봅니다. SELECT 이메일 FROM box WHERE 이름=’홍길동’


우선 1번에서 본 구문과 무엇이 다르냐면 SELECT, FROM 에.. WHERE! 이 새로 생겼네요. WHERE은 조건에 해당됩니다. 문구 그대로 해석한다면 ‘꺼내줘 이메일을 box에서, 이름이 홍길동인 데이터에서’ 이고, ‘box라는 테이블에서 이름이 홍길동인 친구의 이메일을 보겠다.’ 입니다. 





3. WHERE을 어떻게 더 활용할 수 있을까?


조건 구문(WHERE)에서는 = 뿐만 아니라 크고, 작은 값을 조건으로 만들 수 있어요.

이번에는 shoes 테이블로 볼게요. shoes 는 | 신발이름 | 신발코드번호 | 신발사이즈 | 브랜드 | 출시일 | 로 구성되어 있어요.shoes 에서 어떤 정보를 확인하고 싶으세요? 


저는 신발사이즈가 240 이니까.. 240인 신발 정보를 확인해 보겠습니다.

SELECT * FROM shoes WHERE 신발사이즈=240


240보다 큰 신발을 보고싶다면 어떻게하면 될까요?

SELECT * FROM shoes WHERE 신발사이즈>240


240보다 작은 신발은

SELECT * FROM shoes WHERE 신발사이즈<240


240보다 크거나 같은 신발은

SELECT * FROM shoes WHERE 신발사이즈>=240


240보다 작거나 같은 신발은

SELECT * FROM shoes WHERE 신발사이즈<=240


240사이즈가 아닌 신발은

SELECT * FROM shoes WHERE 신발사이즈!=240 



테이블 안에 있는 모든 데이터가 아닌 특정 조건에 해당하는 데이터를 보기 위해서 WHERE 안에서 조건을 주면 됩니다. AND와 OR을 사용하여 여러 조건을 작성할 수도 있습니다. 


신발사이즈가 240 이고 270인 신발 정보

SELECT * FROM shoes WHERE 신발사이즈=240 AND 신발사이즈=270


신발사이즈가 240 이거나 270인 신발 정보

SELECT * FROM shoes WHERE 신발사이즈=240 OR 신발사이즈=270 




여기서 QUIZ!


Users 테이블이 있고 | 사용자번호 | ID | 이름 | 주소 | 가입일 | 뉴스레터구독여부 | 로 구성되어 있습니다. 이 Users 테이블에서 뉴스레터를 구독하는 사용자번호, 가입일을 알고싶다면 SQL문은 어떻게 작성되어야 할까요?

*정답은 다음 콘텐츠에서.. (to be continued)  





이번 시간에는 간단한 ‘조건’을 줘서 데이터를 확인할 수 있는 구문에 대해 알아보았습니다. 말은 간단하다고 했지만 실제 업무에서 활용하게 되면 WHERE 조건이 수십개 연결될 수도 있고, 정신 못차릴만큼의 테이블이 합쳐질 수도 있습니다. 이런 상황이 올 때 우리는 Back to the basics! 기본으로 돌아가서 차근차근 본다면 멋진 데이터를 볼 수 있으니 기본을 잊지 말아주세


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari