SQL 문법 공부 전에 우리가 눈으로 보는 데이터는 어떻게 생겼을지 이해를 해야한다. SQL은 RDB에서 주로 사용을 한다. 그러면 RDB가 무엇인지, RDB에 데이터는 어떤 구조로 보여지는 지 알면 좋다.

 

   >> RDB (Relation Database) : 관계형 데이터베이스, 관계형 모델에 기초하는 데이터베이스

        ※ 관계형 모델 : 데이터를 컬럼(column), 로우(row)를 이루는 하나 이상의 테이블(또는 관계)로 정리

                                  고유 키(Primary key)가 각 로우를 식별(주민번호 같은 유일한 값)

 

  앞에서 RDB에 대한 정의를 위와 같이 설명하였다. 핵심 키워드는 테이블, 컬럼(열), 행, PK(고유키) 이다. 테이블이라는 곳에 행, 열 형태로 데이터가 저장된다고 생각하면 된다. 간단한 설명이지만 대부분 감이 안 오는 경우가 많다. 이럴 때에는 업무 시 자주 사용하는 "엑셀" 과 비교하여 생각하면 좋다. 

※ 엑셀 객체와 DB 객체 비교

  엑셀 화면 기준으로 시트 = 테이블, 열(A~Z, 그 이상) = 컬럼, 행 = 데이터 라고 생각하면 된다. 이 간단한 구조만 이해하면 SQL문법의 종류가 한방에 이해가 될 것이다.

  위는 SQL문법의 종류이다. 생각보다 많아서 흠칫! 놀랐을 수도 있다. 하지만 데이터를 추출하는 분석가는 SELECT 구문만 사용할 것이다. 엑셀로 관리하는 경우에는 직접 데이터를 추가하거나 수정, 삭제를 할 수 있지만 일반적으로 DB에 데이터를 관리하는 경우에는 업무처리시스템에서 내용을 입력, 수정, 삭제하고 버튼을 클릭하여 처리를 한다. (즉, 데이터를 입력, 수정, 삭제를 하지만 SQL을 통해 하지 않고, 버튼 조작을 통해 정해진 명령어가 수행된다)

 

  결국은 SELECT 구문에 대한 공부만 하면 된다는 이야기다. 필자도 데이터 분석 시스템을 구축하지만 SELECT구문을 99% 사용하고 있다. (다른 구문들은 기능만 알면 검색을 통해 따라할 정도로 간단하다. 외울 필요 조차 없다)

 

  사실 SQL문법은 굉장히 쉽다. 그 구조를 만들거나, 추출기준을 정하고, 어떤 테이블에서 추출해야하는지 익숙치 않아서 어려울 뿐이다. 우리가 데이터분석을 위한 SQL문을 작성할 때에는 엑셀 내 데이터가 있다고 생각을 하고 순서대로 SQL을 작성하면 접근이 조금 쉬울 것 같다.

 

  예를 들어 마케팅 고객을 엑셀의 "고객" 시트의 관리를 하고, "고객" 시트에는 고객명, 전화번호, 마케팅수신동의여부, 최근마케팅일자 정보가 있다고 하자. 오늘 마케팅 대상 고객을 뽑으려면 그 기준이 있을 것이다. 1. 마케팅수신동의한 고객, 2. 최근마케팅일자가 3개월 지나간 고객 목록을 뽑으려면 필터를 사용해서 마케팅수신동의고객 and 최근마케팅일자 3개월 지나간 고객을 필터로 하여 추출할 것이다.

  동일선상에서 sql을 작성한다고 생각하면 된다.

  1. 목록을 조회한다 : SELECT

  2. 고객 시트에서 조회한다 : FROM 고객

  3. 추출기준은 마케팅수신동의고객이고 최근마케팅일자가 3개월 지난 고객

     : WHERE 마케팅수신동의여부 = 'Y' AND 최근마케팅경과개월수 >= 3

  합치면 아래와 같다.

 

  SELECT 고객명, 전화번호, 마케팅수신동의여부, 최근마케팅일자, 최근마케팅경과개월수

  FROM 고객

  WHERE 마케팅수신동의여부 = 'Y' AND 최근마케팅경과개월수 >= 3

 

  쉽쥬? 물론 점점 어려워지겠지만 눈으로 보면서 학습하면 금방 전문가가 될 거에요.

 

  물론 JOIN, 함수, 데이터타입, 집계함수, 윈도우함수 등 꼭 알아야 할 것들도 있지만, 몰라도 되는 것들도 많이 있다. 어떤 기능들이 있는지만 알고 필요할 때에 검색을 통해 활용하면 된다.

  필자가 일을 하면서 자주쓰는 기능, 작성요령법 등을 추가하여 엑셀에서 데이터 추출하는 방법과 많이 비교하여 작성을 할 것이고, 추후에는 테이블, 컬럼, 테이블간의 관계만을 보고 데이터를 어떻게 추출할지에 대한 내용도 추가할 예정이다. 데이터를 조회 할 환경, 실습 데이터도 만들고 있다. 빠른시일 내에 제공을...!!!

 

  내가 원하는 데이터를 추출할 그날까지 화이팅!!!

 

 

  이 글을 보고 있는 방문자 님들은 SQL을 어떻게 공부해야 할 지 고민중이거나, 이미 다른 SQL강의를 봤는데 데이터를 어떻게 추출할지 모르는 분들이 많을 것 같다.

 

  SQL문법을 공부하기 위해서는 DDL, DML, DCL 등의 분류가 있고, DDL을 통해 테이블을 생성/수정/삭제 하고, DML을 통해 데이터를 생성/수정/삭제/조회를 하고, DCL을 통해 트랜잭션을 관리하는 등의 강의를 보았을 것이다. 또, 실습하기 위해서는 Oracle, My-sql 등의 DBMS를 설치하고, 설치가 안되면 삭제하고 재설치하고, 관리자 계정이며 SQL Tool을 설치하고 접속하고 했을 것이다. 과연 이 모든 것들이 "데이터 분석을 하기 위해 필요한 SQL문법인가?" 라고 묻는다면 "절대 아니다!" 라고 대답할 것이다.

 

  필자는 2011년 즈음 늦은 나이에(28? 29?) JAVA 교육 학원에서 4개월 간 교육을 받았다(궁금하지 않다면 해당 문단을 패스해도 된다). 물론 DB의 SQL은 곁다리로 배운 셈이다. 자그마한 중소기업에 취직을 했다. 개발자들의 90%이상이 하는 SI 프로젝트를 위해 파견되었다. SI는 간단히 특정 기업, 기관의 정보 시스템을 구축해 주는 업무이다.

 

  그중 DW시스템을 구축하게 되었고, 정형 통계 보고서를 개발하는 업무를 맡았다.

  주 업무는 통계 제공을 위한 SQL을 만들고 Report Designer라는 솔루션에 UI에 맞춰 개발하는 업무였다. 검색조건을 위해 루틴 있는 Javascript를 조금 사용했다. SQL의 SELECT, FROM 도 겨우 쓸 정도의 수준이었다. 업무를 하면서 테이블을 생성하는 SQL, 데이터를 생성/수정/삭제하는 SQL 모두 사용하지 않았다. 처음 SQL을 접하면서 어떻게 공부할지 상당히 많은 고민을 했는데, 결론은 직접 부딪혀 보는 것이었다. 느낀 점은 딱 하나, SQL의 SELECT 구문(조회, 추출)만 잘하면 되겠구나,,,였다. 약 10개월 동안 죽어라 SELECT 구문의 SQL만 작성했다.

 

  [분석가용] SQL 초급 편에서 공부해야 할 것은 아래와 같다.

   1. SQL SELECT 구문 작성하기

      - DB = Excel

      - SELECT 구문의 루틴 익히기

      - 데이터 타입에 대한 이해

      - 자주 사용하는 함수(명령어는 아니고, 기능 위주)

      - 집계 함수

      - JOIN (진짜 제일 중요, SQL은 이것만 잘하면 됨)

    위의 SQL 문법을 배운다고 데이터 분석을 할 수 있을까? 절대 아니다. 따라 하면서 문법은 어느 정도 익혔겠지만

    내가 필요한 데이터를 어디서 어떻게 추출할지 막막할 것이다. SQL을 만들려고 하는데 막상 하려면 막막할 것이다.

    그래서 필요한 것은 아래와 같다.

   2. 데이터 이해

      - 테이블은 뭐고? pk는 뭐고?

      - 뿅가는 SQL 작성 꿀 팁!ㅎ

      - OLTP Vs OLAP, 계정(기간) 계, 정보(분석) 계, DW

      - E - R다이어그램

      - 업종별 참조모델을 통한 데이터 추출 실습

 

위의 공부를 하기 위한 데이터는 별도 url을 제공할 예정이며, 테스트 데이터를 제공할 것이다

공부가 끝나면 나도 모르게 내 손이 SQL을 작성하고 있을 것이다.

SQL로 원하는 데이터를 뽑았을 때의 그 기쁨이란....

 

짜릿해!!

'데이터베이스(DB) > [분석가용] SQL 초급' 카테고리의 다른 글

SQL SELECT 기본 구문  (0) 2023.06.14
DB=엑셀 (DB=EXCEL)  (0) 2023.06.14

+ Recent posts