상세 컨텐츠

    본문 제목

    CRM, 퍼포먼스 마케터를 위한 SQL 기초

    일상

    by 성꾸 2021. 10. 16. 19:33

    본문

    728x90


    퍼포먼스 마케터
    - 온라인, 디지털 광고를 집행하여 만들어진 데이터를
    분석해 성공적인 마케팅 결과를 도출해내는 것이 목적

    퍼포먼스 마케터에게 데이터란
    - 데이터를 다루는 것은 퍼포먼스 마케터의 역할

    특정 광고매체를 통해 얼마나 유입되는지, 구입하는지 등
    데이터를 분석해 광고가 잘 운영되고 있는지,
    개선점, 구매 포인트를 파악
    광고성과를 개선시켜야하는것이 퍼포먼스 마케터의 일

     

    SQL의 기초개념


    DBMS (Database Management System)
    많은 데이터에 효율적으로 접근할 수 있도록
    가공하고 저장된 Database를 관리하는 시스템

    RDBMS는 Relational Database를
    관리하는 시스템으로 하나의 DB에 서로 관계가 있는 여러 데이터 테이블이 존재함.
    퍼포먼스 마케팅을 통해 수집되는 데이터는
    관계형 데이터 베이스로 관리(ex.매체&트레커데이터)


    SQL이란?

     

    사전적의미
    - 구조적 정의어 (Structured Query Language)라고 하며 관계형 데이터 베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어

    퍼포먼스 마케터에게 SQL이란?
    - 광고 집행 후 RDBMS에서 관리되는 각 매체, 트래커, CRM 등 수많은 데이터들이 RDBMS에서 관리되고 있고,  데이터를 분석하거나 조회하기위해 불러올 수 있는 언어







    [ SQL의 언어 ]


    1. 데이터 정의 언어 (DDL : Data Definition Language)
    create, drop, alter 등 DB의 테이블을 만들고 없애고 바꾸는 등의 역할을 함
    일반적으로 데이터 조직에서 관리하기 때문에 퍼포먼스 마케터가 사용할 일은 많이 없음

    2. 데이터 조작 언어 (DML : Data Manipulation Language)
    insert, update, delete, select 등 데이터베이스에 있는
    테이블 내 데이터를 바꾸고 선택하는 등의 기능
    퍼포먼스 마테터가 가장 많이 사용하게 됨

    3. 데이터 제어 언어 (DCL : Data Control Language)
    데이터의 액세스를 제어하기 위한 역할
    이것또한 데이터 조직에서 관리하게 되기 때문에 퍼포먼스 마케터가 사용할 일은 많이 없음

     


     

     

    [ SQL 기초 문법 ]

     

     

    ** SELECT : 가장 기초가 되는 데이터 선택 문법


    SELECT * FROM 테이블 이름;
    => 해당 테이블 전체를 가져옴
    * 은 전체를 의미

    SELECT * FROM 테이블 이름 limit 5;
    => 해당 테이블 5행까지 가져옴 10행 하고싶으면 limit 10;
    테이블이 어떻게 구성되었는지 확인하고 싶을때 유용

    SELECT 열이름, 열이름 FROM 테이블 이름;
    => 해당 테이블의 해당 열만 가져옴, 열 수는 1개부터 여러개 모두 가능


     


    ** DISTINCT : 중복 제거된 값을 선택함

     

    SELECT 뒤에 DISTINCT 를 넣음
    SELECT DISTINCT 열 이름, 열 이름, FROM 테이블 이름;



     

    ** ODER BY : 뽑은 데이터를 정렬을 해주고 싶을 때 사용

     

    SELECT * FROM 테이블 이름 ORDER BY 열이름;

    해당 테이블 열이름으로 정렬하여 가져오기
    ASC(기본값)는 오름차순, DESC는 내림차순
    ASC는 기본값으로 정해져서 오름차순으로 보여지기 때문에 보통은 DESC를 쓰게 됨
    SELECT * FROM 테이블 이름 ORDER BY 열이름(ASC, DESC);

    ** 2개 이상 열로 정렬하고 싶을 경우
    ORDER BY 열이름, 열이름 으로 사용하면 첫 번째 열로 정렬 후 정렬된 것 내에서 두 번째 열로 정렬
    ORDER BY 열이름, 열이름 DESC와 같이 사용 가능함

    EX. SELECT * FROM 테이블이름 ORDER BY 열이름 DESC, 열이름 ASC;



     

    ** WHERE : 엑셀에서 필터 걸듯이 필터를 걸 수 있는 역할

     

    해당 테이블에서 해당 열에 비교값에 해당하는 행만 가져옴

    SELECT * FROM 테이블 이름 WHERE 열이름 = 원하는 값;

     


    SELECT * FROM 테이블 이름 WHERE 열이름 = 비교값 AND 열이름 > 비교값
    >> AND, OR 등 논리 조건 삽입 가능

    EX. SELECT * FROM orders WHERE EmployeeID = 5 OR ShipperID = 3;
    =>orders에서 employeeID가 5 이면서 shipperID가 3인 데이터 불러오기

    SELECT * FROM orders WHERE EmployeeID <> 5;
    => orders에서 employeeID가 5가 아닌 데이터 불러오기



     

    ** JOIN

     

    두개의 테이블을 열을 기준으로 합치는 명령어

    SLECT 테이블 이름.열이름, 테이블 이름.열이름 FROM 기준 테이블 이름 INNER JOIN 조인할 테이블 이름 ON 기준 테이블 이름.key열이름 = 조인 테이블이름.key열이름

    SELECT * FROM OrderDetails INNER JOIN Products ON OrderDetails.ProductID = Products.ProductID;

    ON 어디위에 합치고 싶다는 명령어

    . 은 테이블 안에 속한 데이터 중 가지고 오고싶은 것에 대한 명령어
    EX. OrderDetails.ProductID = Products.ProducstID
    orderdetails 테이블 안에 있는 productID의 데이터를 가지고 오고,
    = 그것이 products 테이블 안에 있는 productID와 같다

    JOIN은 INNER JOIN 부터 LEFT, FULL OUTER 까지 사용 범위가 다양함




    ** GROUP BY 과 HAVING


    GROUP BY 는 엑셀의 피벗테이블과 유사한 역할
    HAVING 은 엑셀의 피벗테이블의 필터와 같은 역할
    집계함수는 SUM, AVG, MIN, MAX, COUNT 등이 있음
    AS는 Alias의 약자로 별칭을 뜻하며 이름을 재지정할 때 사용

    SELECT 집계함수(열이름), 열이름 FROM 기준 테이블 이름
    WHERE 열이름+조건
    GROUP BY 열이름
    HAVING 그룹조건

    쿼리가 너무 길 경우 명령어를 기준으로 엔터를 쳐서 나눠 확인해도 상관 없음
    아래 예시

    SELECT COUNT(OrderID), EmployeeID FROM Orders
    WHERE ShipperID = 3 쉬퍼아이디가 3이면서
    GROUP BY EmployeeID 임플로이아이디 기준으로 카운트하기로 하고
    HAVING COUNT (OrderID) > 10 10건을 추가한 아이디, 오더가 11건부터 확인

    바로 위 이미지에서 COUNT(OrderID) 와 EmployeeID 의 열 순서를 바꿔주고,
    COUNT(OrderID)의 이름을 AS OrderCount 로 바꿔준 예시

    SELECT COUNT(OrderID), EmployeeID FROM Orders
    => SELECT EmployeeID, COUNT(OrderID) AS OrderCount FROM Oders



     

    [각 SQL 명령어의 정의 및 코딩 순서]


    SELECT : 원하는 열 선택
    DISTINCT : 중복 제거 여부 선택
    FROM : 원하는 테이블 선택
    WHERE : 필터링 조건
    GROUP BY : 그룹 조건
    HAVING : 그룹 조건 필터링
    ORDER BY : 정렬

    위 순서대로 코딩이 되어야 문제가 생기지 않음

    * 다른 테이블과 테이블을 합칠 때 사용하는 명령어
    JOIN : 키 값을 기준으로 다른 테이블끼리 병합 FROM 뒤에 사용


    728x90

    관련글 더보기

    댓글 영역