SQL 문법 공부 전에 우리가 눈으로 보는 데이터는 어떻게 생겼을지 이해를 해야한다. SQL은 RDB에서 주로 사용을 한다. 그러면 RDB가 무엇인지, RDB에 데이터는 어떤 구조로 보여지는 지 알면 좋다.
>> RDB (Relation Database) : 관계형 데이터베이스, 관계형 모델에 기초하는 데이터베이스
※ 관계형 모델 : 데이터를 컬럼(column), 로우(row)를 이루는 하나 이상의 테이블(또는 관계)로 정리
고유 키(Primary key)가 각 로우를 식별(주민번호 같은 유일한 값)
앞에서 RDB에 대한 정의를 위와 같이 설명하였다. 핵심 키워드는 테이블, 컬럼(열), 행, PK(고유키) 이다. 테이블이라는 곳에 행, 열 형태로 데이터가 저장된다고 생각하면 된다. 간단한 설명이지만 대부분 감이 안 오는 경우가 많다. 이럴 때에는 업무 시 자주 사용하는 "엑셀" 과 비교하여 생각하면 좋다.
엑셀 화면 기준으로 시트 = 테이블, 열(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, 함수, 데이터타입, 집계함수, 윈도우함수 등 꼭 알아야 할 것들도 있지만, 몰라도 되는 것들도 많이 있다. 어떤 기능들이 있는지만 알고 필요할 때에 검색을 통해 활용하면 된다.
필자가 일을 하면서 자주쓰는 기능, 작성요령법 등을 추가하여 엑셀에서 데이터 추출하는 방법과 많이 비교하여 작성을 할 것이고, 추후에는 테이블, 컬럼, 테이블간의 관계만을 보고 데이터를 어떻게 추출할지에 대한 내용도 추가할 예정이다. 데이터를 조회 할 환경, 실습 데이터도 만들고 있다. 빠른시일 내에 제공을...!!!
내가 원하는 데이터를 추출할 그날까지 화이팅!!!
'데이터베이스(DB) > [분석가용] SQL 초급' 카테고리의 다른 글
SQL SELECT 기본 구문 (0) | 2023.06.14 |
---|---|
데이터 분석을 위해 알아야 할 SQL (0) | 2023.06.12 |