안녕하세요. 회사에서 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, 분석, 인당생산성, 상품별 매출, 할인률 등은 실무를 하면서 지속적으로 디벨롭해서 균형이 맞는 성장을 할 수 있도록 해야겠다.
'직무강화 > SQL' 카테고리의 다른 글
SQL 학습 6일차, 183. Customers Who Never Order (NULL, LEFT JOIN) (0) | 2024.08.22 |
---|---|
SQL 학습일지 5일차, 리트코드 182. Duplicate Emails 중복값 찾기 (0) | 2024.08.21 |
SQL 공부 4일차 LEETCODE, 181. Employees Earning More Than Their Managers (0) | 2024.08.20 |
SQL 3일차_LEETCODE. 175. Combine Two Tables (0) | 2024.08.20 |
SQL 공부 2일차_HackerRank(!=, CASE, JOIN, GROUP BY) (0) | 2024.08.18 |