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

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

 

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

 

 

1. SQL 이란

    SQL : Structured Query Language (구조화된 질의어)

    관계형 데이터베이스의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어

    

    직관적으로 와닿지 않을 수 있다.

    간단하게 DB 를 관리 및 이용하기 위한 언어이다.

 

2. 관계형(R) 데이터베이스(DB) 란? 그리고 연관 단어들...

    흔히 SQL을 사용해야 할 환경일 때에는 DB, DBMS, 오라클, MY-SQL, MS-SQL, 각종 DB Tool (토드, 오렌지 등) 의 이름을 들을 것이다

    SQL만 공부좀 하려는데, 알아야 할 것은 왜이렇게 많은지... 뭐가 뭔지 이해가 안될 것이다.

    아래에 필요한 간단한 용어들을 정리해 보았다.

 

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

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

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

            생소하지만 간단하다. 엑셀과 같이 행, 열 형태로 데이터를 관리하는 모델이다.

 

   >> DB (Database) : 데이터의 집합

        ※ 과거에는 파일형태의 DB가 있었으나, 동시에 수정이 어렵고, 개별 관리가 되는 등의 단점으로 인해 현재 우리가 흔히

            접하는 DBMS 에서 관리되는 DB를 의미한다

 

   >> DBMS (Database Management System) : DB를 관리하는 시스템

        다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합

        아래의 Oracle, MY-SQL과 같은 솔루션을 DBMS라 한다.

 

   >> Oracle DBMS: 오라클社 에서 만든 제품이다. RDBMS 이며 가격이 비싸고 기업에서 가장 많이 쓰인다.

 

   >> MY-SQL DBMS : 세계에서 가장 많이 쓰이는 오픈소스 RDBMS.

                         (MY-SQL은 선 마이크로시스템즈에 인수, 선 마이크로시스템즈는 오라클에 인수, 주인은? 오라클)

 

   >> ANSI SQL : SQL은 위의 DBMS 제품마다 다르다. 그래서 ANSI(American National Standards Institute, 미국국립표준협회) 에서는

                            DBMS 제품마다 SQL표준을 정의하여 그 가이드에 따르도록 규정하고 있다.

                           (Ex. 실제로 DBMS 별로 사용하는 함수가 다르며, 일부 문법도 다르다. 사용해 보지 않은 DBMS의 함수는 구글링을 통해

                                   업무에 활용한다)

 

   >> DB Tool : 까만색의 커맨드 화면이 아닌 윈도우와 같은 OS내에서 SQL을 수행하고, DBMS를 관리하기 위한 기본적인 도구

        Toad for Orange, Orange for Sybase, D-Beaver 등 회사 내의 데이터에 대한 접근관리 목적의 여러가지 DB Tool 이 있으며

        직접 SQL을 입력하는 Tool이라고 생각하면 된다 (크롬이나 엣지로 접근하는 경우는 제외, 하지만 절대적인 건 아님)

 

 

 

3. 원하는 수준에 맞게 SQL 을 공부해 보자 !!

 

   >> [언어] SQL : SQL을 이해하는 데 필요한 정보

        SQL에 대한 전반적인 정보를 공유. DBMS별 문법(주로 함수)의 차이가 일부 존재

        (ANSI표준을 따르되 그 외는 솔루션마다 차이가 있음)

        SQL의 문법 자체는 상당히 심플하다. DB의 테이블의 데이터를 잘 이해하고 데이터정합성(옳다, 그르다)에 맞도록 

        작성하는 것이 핵심!!

   >> [분석가용] SQL 초급 : 데이터분석가(현업)를 위해 주로 사용하는 SQL에 대한 내용

        데이터 분석을 위한 SQL은 DML 중 SELECT 만 잘 활용하면 된다,

        기본적으로 알아야 할 JOIN, 데이터 타입, 자주 사용하는 함수, 데이터를 이해하는 방법에 대한 정보를 공유

   >> [분석가용] SQL 고급 : 데이터분석가(현업)를 위해 주로 사용하는 SQL에 대한 작성 법 Tip!!

        데이터 추출을 하는데 필요한 다양한 방법들, 꿀Tip에 대한 정보를 공유

 

자, 그럼 즐겁게 SQL을 공부해 봅시다!!

 

 

+ Recent posts