마케터를 위한 SQL : SQL 요소

Sean Lee·2022년 8월 19일
2

마케터를 위한 SQL

목록 보기
2/7
post-thumbnail

SQL

SQL은 Structured Query Language 의 약자로 직역하면 구조화된 질의어라고 할 수 있습니다. SQL은 데이터베이스(Database)의 테이블에 저장된 데이터를 특정 조건에 맞춰 원하는 형태로 추출(Retrieve)하는데 주로 사용되는 프로그램 언어 입니다. (추출 외에도 다양한 기능을 제공합니다.)

데이터를 추출하는 것은 마케팅 캠페인을 위해 조건부 타겟을 추출하는것과 똑같은 원리입니다. SQL을 이용해서 특정 타겟에 부합하는 조건이 반영된 고객 정보를 조회할 수 있습니다. 가령, 온라인 쇼핑몰에서 첫 구매를 유도하기 위한 이메일 캠페인의 타겟 조건을 "구매 이력이 단 한번도 없는 고객" 이라고 정의할 수 있습니다.

위 처럼 아주 간단한 쿼리로 조건이 표현될 수 있습니다. 누적 구매량을 표현하는 "gross_purchase_amount" 의 값이 0 인 조건을 찾으면 됩니다. 지금 당장 SQL구문을 이해하지 못해도 괜찮습니다. 위에 서술된 조건이 손쉽게 SQL로 짜여질 수 있다는 예시로 이해를 위해 간결하게 표현해본 것입니다.


구조화된 (Structured) 질의

SQL 질의어 그 자체는 영어 문법과 비슷한 구문으로 작성되기 때문에 코드를 읽어가며 의미를 파악하는데 있어서 다른 프로그램 언어보다 상대적으로 쉽게 구조화 되어있습니다. 구조화 되어 있다는 의미는 몇가지 통일된 규칙에 따라 쿼리가 작성될 수 있다는 의미인데요, SQL언어를 구성하고 있는 요소 몇가지에 대한 개념만 잘 잡히면 쿼리문 작성이 훨씬 수월해집니다.


SQL언어의 구성 :

SQL언어는 크게 키워드, 속성, 함수 이렇게 3가지 종류로 구성되어 있습니다.


1. 키워드 (Keyword)

ANSI-SQL 표준을 공통으로 적용하기 때문에 어느 DBMS(MySQL, PostgreSQL 등)에서든 키워드를 똑같이 사용할 수 있습니다. SQL 키워드는 데이터를 입력, 조회, 수정, 삭제를 수행하는 데이터 조작 명령어부터 시작해서 데이터베이스의 생성, 변경, 삭제 등을 수행하는 데이터 정의어까지 다양한 종류의 키워드가 미리 정의되어 있습니다. SQL 구문 작성시에 상황에 맞게 최소 1개 이상의 키워드가 반드시 들어간다고 생각하면 됩니다.


보통 데이터 분석이나 마케터가 수행하는 데이터 분석은 다양한 키워드 중에서도 데이터 조회(Retrieve)를 담당하는 DML의 "SELECT" 구문을 사용합니다.

데이터베이스는 개발팀, 운영팀, 데이터분석가, 마케터 등 다양한 부서에서 서로다른 목적으로 사용되기 때문에 주로 사용하는 SQL 키워드나 쿼리의 작성 스타일이 부서마다 다를 수 있습니다.



2. 속성 (Attribute)

데이터베이스의 테이블 안에서 열(Column)이라고도 부릅니다. SQL의 명령어는 주로 어떠한 열을 대상으로 무슨 처리를 할 것인지 명령에 대한 상세가 담겨있습니다. 앞서 언급된 키워드 중에서 우리가 데이터를 조회하기 위해 "SELECT"를 사용한다고 했을때, 조회할 데이터가 무엇인지 특정하기 위해 그 대상을 열이름(Column Name)을 입력합니다.



위의 쿼리문을 보면 "SELECT"와 "FROM" 이라는 두 개의 키워드가 사용되었으며 "user_name"과 "user_email" 이라는 두 개의 속성값이 사용되었습니다. 위의 쿼리문을 서술식으로 설명하자면, "데이터베이스에 존재하는 user 라는 테이블에서 user_name과 user_email 컬럼값을 모두 반환합니다." 가 될 수 있습니다.



3. 함수 (Function)

SQL의 함수는 컬럼 혹은 컬럼간 연산 및 가공을 하기 위해 특정한 기능을 따로 분리해놓은 명령어입니다. 엑셀에서 쓰이는 함수는 아마 많은 분들이 익숙할 것 같습니다. "=SUM(인수1, 인수2...)" "IF(조건, 참일때값, 거짓일때 값)" SQL 함수도 엑셀의 함수와 비슷합니다. SQL에서 함수는 크게 내장 함수와 사용자 정의 함수로 나뉠 수 있습니다. 여기에서는 내장 함수만 다루고 사용자 정의 함수에 대해서는 간략한 설명만 하도록 하겠습니다.

  • 내장 함수 (Stored Function)
    내장 함수는 DBMS(MySQL, PostgreSQL 등)마다 약간씩 다른 함수명과 기능을 운영하고 있습니다. 그래서 사용하는 DBMS에 따라 어떤 함수가 지원되는지 문서를 통해 한번 확인해보는것도 좋습니다. 함수는 지난 게시글에서 언급했었던 데이터 타입에 따라 지원되는 함수가 다릅니다.

    내장 함수 예시 (MySQL기준)

    • 문자열 함수 : CONCAT, SUBSTRING, FORMAT 등
    • 숫자열 함수 : ABS, TRUNCATE, ROUND 등
    • 날짜 함수 : DATE_ADD, NOW, DAYOFWEEK 등
    • 집계 함수 : COUNT, MIN, MAX, AVG, SUM 등
  • 사용자 정의 함수 (Custom Function)
    SQL 에서 사용자 정의 함수는 엑셀의 VBA의 사용자 정의함수 (Custom Fuction)와 같습니다. 사실 일반적인 분석 상황에서 사용자 정의 함수를 직접 만들어서 사용하는 경우는 매우매우 드문일입니다. 나중에 쿼리에서 반복되는 구문이 많아지는 경우, 쿼리 작성의 효율성 경제성을 위해서 함수화 시켜서 사용하기도 합니다.



정리

  • SQL은 원하는 데이터를 조건에 맞춰 추출하는데 사용되는 언어입니다.
  • SQL은 구조화된 질의어로 구조적 요소를 갖습니다.
    • 키워드 (Keyword)
    • 속성 (Attribute)
    • 함수 (Function)
  • 위 3개의 요소를 조합해서 SQL 구문을 작성하게 됩니다.

다음 블로그에서는 SQL구문을 활용해서 앞으로 사용하게 될 연습용 데이터베이스를 만들어보는 시간을 갖도록 하겠습니다. 감사합니다 :)

profile
배우기만 하고 생각하지 않으면 얻는 것이 없고, 생각만 하고 배우지 않으면 위태롭다.

0개의 댓글