안녕하세요.
빅데이터, AI 강의 플랫폼 메타코드M에서 제공하는
< 데이터분석가 입문 필수 SQL 부트캠프> 를 수강하였습니다.
SQL은 파이썬, R과 더불어 데이터 분석에서 가장 많이 사용하는 언어로,
데이터 분석가로서 데이터를 능숙하게 추출하고 가공할 수 있으려면,
SQL 역량은 선택이 아닌 필수 입니다.
이 강의는 데이터분석가 입문을 위한 SQL 입문 강의로,
기초 SQL 구문부터 심화 구문까지 쉽게 이해할 수 있도록
이론 설명과 예제 풀이를 반복 설명하여
데이터 분석가의 기초를 다질 수 있는 강의입니다.
또한 강의 자료는 일 단위로 나뉘어 있어 강의를 잘 따라간다면,
단 5일 만(!)에 SQL에 대한 전반적 내용을 다양한 실습 예제와 함께 학습 가능합니다.
물론, 저도 5일 만에 수강을 완료하였습니다.
(SQL 코테를 앞두고 있기 때문이죠 ㅎㅎ)
이 포스트는 강의의 1 ~ 3과목의 주요 내용 정리로, 3일치의 학습 양입니다.
강의에서 사용되는 데이터셋의 출처는 MySQL Sample Database 에서 확인 가능합니다.
학습한 자세한 강의 목차는 다음과 같으며,
주요 내용은 Database, GROUP BY, JOIN 입니다.
1. DataBase (DB)
- DataBase(DB) : 컴퓨터에 저장되는 데이터들의 집합, 데이터를 저장하는 저장소
- 여러 DB(DataBase)를 만드는 이유 : 접근 권한을 쉽게 나누기 위함
- DBMS(DataBase Management System) : DB를 관리하는 시스템
- DBMS의 예) oracle, mysql, mariadb, ms server
- RDB(Relation DataBase) : 관계형 데이터 베이스
- RBMS(Relational database management system)
- Primary Key : Table에서 row의 식별자, unique 하며 not null, not duplicate.
- Foreign Key : 다른 Table과 연결시켜주는 column. 다른 Table의 primary key를 참조. null, duplicate 가능
2. GROUP BY
- GROUP BY : 한 개 이상의 컬럼을 기준으로 결과를 그룹화
- 주로 SUM(), AVG(), COUNT(), MAX(), MIN() 등의 집계 함수와 결합되어 사용
- 활용 예시 ) Products 테이블에서 productLine 별 최고 msrp(권장 판매 가격) 구하기
SELECT productline, max(msrp)
FROM products
GROUP BY productline;
- 같이 쓰이는 문법으로는 HAVING 이 있음 (HAVING 절 : 그룹화된 결과의 집계 값에 대한 조건을 적용)
- 활용 예시 ) orderlinenumber 가 1인 제품들 중에서 productcode가 S10으로 시작하는 주문 수량의 합
SELECT productcode, SUM(quantityOrdered) AS sum_ordered
FROM orderdetails
WHERE orderlinenumber = 1
GROUP BY productcode
HAVING productcode LIKE 'S10%' ;
3. JOIN
- JOIN 연산자 : 두 테이블 간의 관계를 나타내기 위해 사용
INNER JOIN (기본 JOIN)
LEFT JOIN
1. ex3의 모든 데이터 출력
SELECT *
FROM ex3
LEFT JOIN ex4 ON ex3.id = ex4.id ;
2. 교집합을 제외한 ex3 출력(ex4.id NULL인 것만)
SELECT *
FROM ex3
LEFT JOIN ex4 ON ex3.id = ex4.id
WHERE ex4.id IS NULL ;
RIGHT JOIN
1. ex4의 모든 데이터 출력
SELECT *
FROM ex3
RIGHT JOIN ex4 ON ex3.id = ex4.id ;
2. 교집합을 제외한 ex4 출력(ex3.id NULL인 것만)
SELECT *
FROM ex3
RIGHT JOIN ex4 ON ex3.id = ex4.id
WHERE ex3.id IS NULL;
FULL OUTER JOIN (합집합)
- Left join 후 Right join과 합치고 교집합을 한 번 빼주기
SELECT ex3.id, ex3.name, ex3.age, ex4.id, ex4.region
FROM ex3
LEFT JOIN ex4 ON ex3.id = ex4.id
UNION
SELECT ex3.id, ex3.name, ex3.age, ex4.id, ex4.region
FROM ex3
RIGHT JOIN ex4 ON ex3.id = ex4.id
WHERE ex3.id IS NULL ;
본 포스트는 메타코드M 서포터즈 활동으로,
메타코드M에서 지원하는 강의를 수강 후 작성되었습니다.
'메타코드M 서포터즈 4기 > 데이터분석가 입문 필수 SQL 부트캠프' 카테고리의 다른 글
[SQL] 메타코드 강의 후기_SQL - SELECT 관련 함수 / 서브쿼리 / CTE / 강의 후기 (0) | 2024.04.14 |
---|