2025/4/14~2025/4/18
8주차 기록
벌써 두달이 되었다
SQL은 아직 친해지지 못한 것 같은 느낌..
조금 더 복습해야할 것 같음.
[수강한 강의 내용]
- 데이터 분석가 필수 Tool SQL
- 데이터 분석가가 되기 위한 준비 SQL 코딩테스트
1️⃣ 함수 (FUNCTION)
미리 만들어진 계산 도구라고 생각하면 됨!
🔹 단일행 함수 (한 줄씩 계산)
- 하나의 데이터에 기능 적용
- 예:
CEIL() – 올림
ROUND() – 반올림
TRUNCATE() – 버림
CONCAT() – 문자열 합치기
DATE_FORMAT() – 날짜 형식 바꾸기
🔹 다중행 함수 (여러 줄 요약)
- 데이터를 모아서 통계처럼 계산
- 예:
SUM() – 합계
AVG() – 평균
COUNT() – 개수
MIN() / MAX() – 최소/최대
MEDIAN(), VAR() 등도 있음
2️⃣ 조건문 (CONDITION)
🔸 조건이 하나일 때: IF()
IF(condition, 값1, 값2)
예: 나이가 20 이상이면 ‘성인’, 아니면 ‘청소년’
🔸 조건이 여러 개일 때: CASE WHEN
CASE WHEN 조건1 THEN 결과1 WHEN 조건2 THEN 결과2 ELSE 기본값 END
🔸 결측값 처리: IFNULL()
IFNULL(column, 대체값)
값이 비어 있으면 대체값으로 채워줌
3️⃣ GROUP BY / HAVING
🔹 GROUP BY
- 같은 값을 가진 데이터끼리 묶기
- 묶인 그룹의 평균, 합계 등을 계산할 수 있음
🔹 HAVING
- 그룹으로 묶은 이후에 조건 걸기
SELECT continent, SUM(population) AS population
FROM country
GROUP BY continent
HAVING population >= 500000000;
FROM country
GROUP BY continent
HAVING population >= 500000000;
🔸 WHERE는 GROUP BY 전에, HAVING은 GROUP BY 후에 사용함
4️⃣ JOIN – 테이블 합치기
종류설명
INNER JOIN | 양쪽 테이블에 모두 있는 것만 |
LEFT JOIN | 왼쪽 테이블 기준 다 보여줌 |
RIGHT JOIN | 오른쪽 테이블 기준 다 보여줌 |
OUTER JOIN | 양쪽 다 합쳐서 보여줌 (UNION으로 구성됨) |
CROSS / SELF | 특수한 경우, 모든 조합 or 자기 자신과 연결 |
👉 공통된 컬럼(보통 외래키)을 기준으로 테이블 연결함
5️⃣ SUB QUERY – 서브쿼리
- 쿼리 안에 또 다른 쿼리를 쓰는 방법
- SELECT, FROM, WHERE 안에서 쓸 수 있음
SELECT name
FROM country
WHERE population > (
SELECT population FROM country WHERE code = 'KOR'
);
FROM country
WHERE population > (
SELECT population FROM country WHERE code = 'KOR'
);
유지보수에 유리하고, 복잡한 조건을 더 깔끔하게 쓸 수 있음!
💎 SQL 핵심 정리 (추가편)
🧮 기본 데이터 타입
데이터 타입설명
INT | 숫자 (정수) |
VARCHAR(n) | 글자 (최대 n자까지) |
DATE | 날짜 (YYYY-MM-DD 형식) |
🏗️ 데이터베이스 다루기
📌 데이터베이스 만들기
CREATE DATABASE dbname;
📌 목록 보기
SHOW DATABASES;
📌 사용하기
USE dbname;
📌 삭제하기
DROP DATABASE dbname; DROP DATABASE IF EXISTS dbname;
📋 테이블 다루기
📌 테이블 만들기
CREATE TABLE tablename ( column1 datatype, column2 datatype );
📌 테이블 이름 바꾸기
ALTER TABLE old_name RENAME new_name;
📌 테이블 삭제하기
DROP TABLE tablename; DROP TABLE IF EXISTS tablename;
📌 테이블 값만 지우기 (형식 유지)
TRUNCATE TABLE tablename;
🧱 컬럼 조작하기
작업SQL 문법
컬럼 추가 | ALTER TABLE 테이블명 ADD COLUMN 컬럼명 데이터타입; |
컬럼 타입 변경 | ALTER TABLE 테이블명 MODIFY COLUMN 컬럼명 새타입; |
컬럼 이름+타입 변경 | ALTER TABLE 테이블명 CHANGE COLUMN 기존컬럼 새이름 새타입; |
컬럼 삭제 | ALTER TABLE 테이블명 DROP COLUMN 컬럼명; |
✍️ 데이터 삽입, 수정, 삭제
📌 데이터 삽입
INSERT INTO 테이블명 (컬럼1, 컬럼2) VALUES ('값1', '값2');
📌 여러 개 한 번에 삽입
INSERT INTO 테이블명 (컬럼1, 컬럼2) VALUES ('값1', '값2'), ('값3', '값4');
📌 데이터 수정
UPDATE 테이블명 SET 컬럼명 = 새값 WHERE 조건;
📌 데이터 삭제
DELETE FROM 테이블명 WHERE 조건;
🧮 그룹화 함수 요약
함수설명
COUNT() | 개수 세기 |
SUM() | 합계 |
AVG() | 평균 |
MIN() / MAX() | 최소 / 최대 |
🔄 쿼리 실행 순서
키워드작성 순서실행 순서
SELECT | 1 | 5 |
FROM | 2 | 1 |
WHERE | 3 | 2 |
GROUP BY | 4 | 3 |
HAVING | 5 | 4 |
ORDER BY | 6 | 6 |