brunch

You can make anything
by writing

C.S.Lewis

by 박형준 Jun 30. 2021

SQL 실습해 보기

[코드스테이츠 PMB 7기]


* 이번 글에서는 SQL의 개념이나 개별 명령어에 대해서는 자세히 다루지 않고 있으니 참고 부탁드립니다.




1. 들어가며


6 초부터 [칼퇴족 김대리는 알고 나는 모르는 SQL](이하 김대리 SQL)이라는 책을 읽고 있습니다. 제가 만들 IT제품의 데이터를 직접 분석해서 인사이트를 찾고 싶은 마음도 있고, 최근 현업에서 SQL 사용해 간단한 데이터를 추출하는 작업은 Product Manager 직접 하기를 원하는 경우도 많기 때문입니다.


이런 이유로 코드스테이츠 PMB 과정에서도 SQL관련 도서와 아티클을 필수 서적으로 지정하여, 수강생이 스스로 공부할  있도록 장려하고 있습니다.


출처 : 교보문고


SQL 공부를 시작하시는 분들을 위해, 잠깐 이 책에 대한 이야기를 하고 본론으로 넘어가고자 합니다.


[김대리 SQL]은 "실무에 있을 법 한 상황"을 가정하고, 데이터를 뽑아낼 수 있는 SQL 명령문을 직접 입력해 보는 실습 위주의 책이지만, 실습 전에 필요한 설명이 거의 없습니다.(어떤 프로그램을 어떻게 설치해야 하는지, 데이터는 어떻게 입력해야 하는지 등) 따라서 SQL을 1도 모르는 분이 처음 보기에는 조금의 장벽이 있다고 생각합니다.



이런 분들께는 [이것이 MySQL이다] 라는 책의 챕터 1~2 먼저 읽어 볼 것을 추천드립니다. MySQL 설치부터 데이터베이스와 테이블을 만드는 방법까지 자세히 나와있기 때문입니다. (추천  주신 SQL 스터디 팀원 분께 감사드립니다!)


또한 생활코딩(https://opentutorials.org/course/195)에서도 무료로 데이터베이스, MySQL 활용법 강의를 제공하고 있어서 참고하면 좋습니다.



이렇게 책으로 열심히 공부한 SQL이론을 실습해   있는 좋은 사이트가 하나 있습니다. 바로 W3 School입니다. 영어로 되어있긴 하지만, 대부분의 SQL 명령어를 실습을 통해 공부할  어서 매우 좋습니다!


https://www.w3schools.com/sql/



오늘은 W3 School에서 구비하고 있는 예제 Database를 기준으로, Database 관계도를 그려보고, 원하는 데이터를 뽑아보는 연습을 해 보고자 합니다.





2. 실습 1 : ERD 만들어 보기


ERD는 Entity Relationship Diagram의 약자로, 존재하는 것들의 관계를 그린 도표로 직역할 수 있습니다. 데이터베이스에서는 각 데이터 테이블 간의 관계를 드린 모식도 정도로 이해하면 됩니다.


ERD 특히 관계형 데이터베이스 다룰 때 매우 중요합니다. 관계형 데이터베이스를 예시를 통해 간략설명하자면, 쇼핑몰에서 고객정보 / 주문내역 / 상품정보 같은 정보를 하나의 (테이블) 아니라, 각각의 표에 기록하고,  사이의 관계를 정의해 두어 필요할 때만 종합하는 형태라고 이해하면 됩니. 따라서 ERD 사용하면 내가 원하는 정보를 어떤 테이블에서 추출해야 하는지 쉽게 알아볼  있습니다.



말로는 이해가  되지 않을  있으니 바로 습으로 넘어가 보겠습니다. 아래 링크에 접속하면  8개의 테이블이 있는 데이터베이스를 확인할  있습니다.


https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all


 자료를 기반으로 사진과 같이 ERD   그려보았습니다.


예제 데이터베이스의 ERD / 자체 제작


 선이 의미하는 바는 아래 블로그에 매우 친절히 설명되어 으니 참고 해 주세요!


https://mjn5027.tistory.com/43






3. 실습 2 : 원하는 데이터 추출해 보기


예제 링크와 ERD를 통해서, 해당 데이터베이스는 "쇼핑몰의 데이터베이스"라는 것을 유추할 수 있었습니다.


따라서 내가 해당 쇼핑몰의 PM 혹은 사장이라고 가정했을 때, 무엇이 궁금할지 생각해 보고, 이를 추출할 수 있는 쿼리를 작성해 보았습니다.



각 예시 상황에 따른 쿼리 작성 실습을 끝으로 이번 글을 마무리 하도록 하겠습니다.

감사합니다.



1. 구매 고객의 고객별 총 구매 수량, 총 구매금액 현황

가장 기본이 되는 자료이다.  명의 고객이 각자 얼마만큼씩 구매했는지 알아보기 위함



2. 전체 고객별 총 구매 수량, 총 구매 금액 확인

가입 고객  미주문 고객이 있는지 파악하고, 구매유도를 위한 기초 자료로 활용하기 위함



3. 직원들의 월별 주문 처리량

열심히 하는 직원에게 포상을 주고, 만약 특정인에게 업무가 편중되어 있다면 이를 조정하기 위함



4. 카테고리별 판매량, 판매금액

어떤 카테고리에서 많은 판매가 이뤄지는지 파악하고, 향후 어떤 카테고리에 집중할지 판단하기 위함



5. 지역별 판매량, 판매금액

지역별 판매량/금액을 통해, 지역별 판매 전략을 수립하기 위한 기초자료로 활용








<참고자료>

- AeCo님의 블로그(ERD의 개념) : https://mjn5027.tistory.com/43

- 확장형 뇌 저장소님의 블로그(Group By 활용법) : https://extbrain.tistory.com/56

- JaEngineer님의 블로그(JOIN의 개념) : https://jaenjoy.tistory.com/7

- GilLog님의 블로그 : https://velog.io/@gillog/DB-MySQL-NULL-%EC%B2%98%EB%A6%ACIFNULL-CASE-COALESCE

- 생활코딩 MySQL : https://opentutorials.org/course/195

- W3school : https://www.w3schools.com/sql/

매거진의 이전글 내가 스타벅스 앱 PM이라면
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari