SQL 어떻게 공부해야 할까? Khan Academy로 복기!
다양성과 방향성

여행으로 재미있게 살고 엑셀로 성장하는 삶

직무강화/SQL

SQL 어떻게 공부해야 할까? Khan Academy로 복기!

LATI 라티 2024. 8. 17. 18:30
반응형

안녕하세요. 회사에서 EXCEL과 POWER BI로 

DASH BOARD를 만들고 실적을 보고하고 있는 LATI 입니다.

 

일을 하던 도중 좀 더 많은양의 데이터를 분석하고 싶어서 SQL을 배우기 시작했어요.

BA, DA, 전략기획, 사업기획 직무로서 성장하기 위해서는 DB에서 SQL로 데이터를 뽑고 가공할 줄 알아야 하더라고요.

 

SQL을 접해본 적도 없고 배워본 적도 없지만, 기본을 쌓아야 분석과 인사이트를 얻을 수 있는 단계로 넘어갈수 있기에 차근차근 준비하고 있어요. 

SQL HISTORY
1. 내일배움카드_24.02.01_[패스트캠퍼스] SQL로 시작하는 데이터분석 첫걸음
2. 책 독학_24.05.01_SQLD 합격
3. 실무 독학_24.08.17_Khan Academy
4. 부트캠프_24.09~24.10_데이터리안 부트캠프

 

 

사실 모든 것의 기초는 학습 > 연습 > 성장이라고 생각하는데 SQL은 어떻게 해야 할지 모르겠더라고요.

24년 2월에 들었던 내용들을 되살려서 해보려고 하니 많이 까먹기도 했구요...

그래서 SQL을 연습할 수 있는 8개 사이트를 정복 하기로 했습니다.

 

일단, 매일 1문제씩이라도 풀어서 SQL 작성하는 걸 체화하고 점점 고도화 해야겠더라고요.

24.08.17(토) 오늘은 Khan Academy에서 배웠던 내용들을 복기하고자 합니다.

Khan Academy

 

 

동영상 강의로 SQL을 학습하고 문제를 풀어볼 수 있는 사이트에요.

(동영상은 영어로 나옵니다..! 해석하기 어렵다면 유튜브 버전으로 켜고 자막을 켜서 사용해주세요.)

 

오늘 학습한 단원

 

단원 1: SQL이란?

 1.1. SQL : Structured Query Language (관계형 언어)

 1.2. 테이블 생성 : Create Table LATI name TEXT, quantity INTEGER

 1.3. 데이터 입력 : Insert into LATI  VALUES (LATI, 3)

 1.4. 그룹핑 : GROUP BY  name

 1.5. 순서 : ORDER BY quantity

 

단원 2: 심화 :SQL 쿼리

 2.1. 조건(그룹) : HAVING quantity > 3

 2.2. 조건(행) : WHERE quantity >3

 2.3. 중복조건 : WHERE quantity >3 AND name = "LATI"

 2.4. 조건문 : CASE WHEN THEN ELSE END

 * SELECT 절 내에서 한개의 grade라는 변수로서 활용.

   CASE
      WHEN quantity >= 9 THEN "A"

      WHEN quantity >= 6 THEN "B"

      ELSE "F" as grade

   END 

 

단원 3: SQL의 관계형 쿼리

 

SQL은 관계형 쿼리로 여러개의 테이블들의 PK FK를 통해 원하는 데이터를 얻는 것.

데이터 정규화가 낮을수록 여러 데이터가 이어져 있으나 수만개의 행을 불러올 때 느려질 수 있음

속도 및 중복작업을 하지 않기 위해서는 데이터 정규화가 2차 3차 까지 되어야 하며, 내용을 업데이트 할 때에도

특정 테이블만 업데이트 해주면 되기 때문에 더 편리하게 데이터를 관리할 수 있다.

 

EX) 5개의 테이블에 이메일이 있다 VS 1개의 테이블에 이메일이 있고 FK가 있어 PK로 다른 테이블과 연결할 수 있다.

 

 3.1. 관계형 테이블 결합하기 : LEFT OUTER JOIN  customers ON products

 * 으악... 왜그런지 몰라도 패스가 안된다. Chat GPT가 정답이라고 알려주는 것도 정답이 아니라는 너..... ㅠ

   어디에 정답이라도 알려줘야지... ㅠㅠ 뭔가 Khan Academy는 친절한 듯 하면서 불편하다..

 

 3.2. SELF JOIN

 옛날에 배웠던 걸 문제를 풀며 상기시키려니 참 어렵다.

 그리고 확실히 CHAT GPT가 어떻게 해야 더 깔끔하고 쉽게 풀 수 있는지 알려줘서 좋다. 구조화가 된달까..?

 

movies8 행

id  (PK)INTEGER
title TEXT
released INTEGER
sequel_id INTEGER

 

movies라는 테이블을 m1 , m2라고 칭하여 2개의 테이블로 분리

m1에 있는 FK와 m2의 PK를 이어서 하나의 테이블로 나올 수 있게 한다.

 

SELECT m1.title, m2,title

FROM movies m1

JOIN movies m2

ON m1.sequel_id = m2.title

 

 

 

후후... 사실 이게 그렇게 어려운게 아닌데...... 하루빨리 많은 문제 풀어보고 실무에 적용할 수 있도록 해야겠다.

SQL 강의 들으면서 할 땐 그래도 좀 더 쉽게 이해가 됐는데 확실히... 배우고 안쓰면 까먹는다.

 

POWER BI도 SQL도 시간 내서 계속 사용하자. EXCLE, 분석, 인당생산성, 상품별 매출, 할인률 등은 실무를 하면서 지속적으로 디벨롭해서 균형이 맞는 성장을 할 수 있도록 해야겠다.

반응형