우당탕탕 개발공부

[커널 아카데미] 데이터 분석 부트캠프 18기_ 7주차 학습일지 본문

⌛ BootCamp/[커널아카데미] 데이터분석 부트캠프

[커널 아카데미] 데이터 분석 부트캠프 18기_ 7주차 학습일지

냥냥서 2025. 4. 13. 11:36

 

0410

[ 데이터 분석가 필수 Tool SQL]

더보기

SQL은 몇 번 다뤄봤던 언어라서 ! 살짝 부담감을 덜고 수업에 임했다!

실습 위주로 진행되서 넘 좋았음

 

SQL 기본

# 연산자 : Operator # 특정 조건으로 데이터를 필터링하거나 데이터를 연산하여 출력할때 사용
# 산술 : 데이터 + 데이터 = 데이터 : +, - < *, /, %
# 비교 : 데이터 + 데이터 = 논리값(True(1), False(0) : =, !=, >, <, >=, <= : 조건 1개
# 논리 : 논리값 + 논리값 = 논리값 : NOT, AND > OR : 조건 2개 이상
# - AND : T AND T = T : 2개의 조건 모두 만족해야 데이터 출력
# - OR : F OR F = F : 2개의 조건 중에 하나만 만족해도 데이터 출력

 

# 컬럼추가 : 인구밀도(인구수/국가면적)
SELECT code, name, surfacearea, population
	   , population / surfacearea AS pps
FROM country;
# 조건 1개 : Ture(1), False(0)
# 아시아 대륙의 국가이면 1, 아니면 0 출력하는 컬럼 추가
SELECT code, name, continent, population
	   , continent = 'Asia' AS is_asia
FROM country;
# 조건 2개 이상
# AND(T AND T = T : 2개의 조건 모두 만족해야 출력)
# OR(F OR F = F : 2개의 조건중 하나만 만족해도 출력)
SELECT code, name, continent, population
	   , continent = 'Asia' AS is_asia
       , population >= 1000 * 10000 AS upper_1000
FROM country;

 

WHERE [조건]  : 데이터를 필터링하여 출력

# 문제 : 국가의 인구수가 4000만 ~ 5000만 사이의 인구를 갖는 국가코드, 국가이름, 인구수 출력
# 조건 1 : 인구수 4000만 이상 
# 조건 2 : 인구수 5000만 이하
# 조건 1 AND 조건 2
SELECT code, name, population
FROM country
WHERE (population >= 4000 * 10000) AND (population <= 5000 * 10000);
# BETWEEN AND : 범위 데이터를 출력
SELECT code, name, population
FROM country
WHERE population BETWEEN 4000 * 10000 AND 5000 * 10000;

 

IN, NOT IN : 특정 데이터가 포함된 결과를 출력할때

SELECT code, name, continent
FROM country
WHERE continent NOT IN ('Asia', 'Africa');

 

 

IS NULL, IS NOT NULL : 결측(비어있는) 데이터 처리 

# 독립년도가 있는 데이터만 필터링하여 출력
# 결측 데이터는 어떤한 연산을 해도 항상 False가 출력
SELECT code, name, indepyear
FROM country
-- WHERE indepyear != NULL;
WHERE indepyear IS NOT NULL;

 

 

LIKE : 특정 컬럼의 데이터에 특정 문자열 포함여부에 따라 데이터 출력

# 지역에서 동쪽(East)가 포함된 데이터 출력
SELECT code, name, continent, region
FROM country
WHERE region LIKE '%East%';

 


🔥 문제

: 영화설명에는 robot이 들어가고, 영화상영시간은 60분 ~ 150분인, 영화 등급이 G, PG, PG-13인 데이터 출력

SELECT title, description, length, rating
FROM film
WHERE (description LIKE '%robot%') AND (length between 60 AND 150) 
AND rating IN ('G', 'PG', 'PG-13');

 


 

ORDER BY ( ASC, DESC ) :  데이터 정렬 

# 문자열은 알파벳순으로 정렬, 숫자는 숫자의 크기순으로 정렬
USE world;
# 국가코드 알파벳순으로 정렬
SELECT name, countrycode, population
FROM city
ORDER BY countrycode ASC;
# 인구가 많은 순으로 정렬
SELECT name, countrycode, population
FROM city
ORDER BY population DESC;

 

 

LIMIT : 데이터 갯수 제한 

# 도시의 인구가 많은 8개의 도시 목록 출력
# 인구수 내림차순 정렬 > 데이터의 갯수를 8개로 제한하여 출력
SELECT name, countrycode, population
FROM city
ORDER BY population DESC;

 

 

0411

[ 데이터 분석가 필수 Tool SQL]

더보기

쿼리 작성 순서 : SELECT > FROM > WHERE > ORDER BY > LIMIT
쿼리 실행 순서 : FROM > WHERE > SELECT > ORDER BY > LIMIT

 


 

FUNCTION함수 

미리 만들어 놓은 특별한 기능을 사용하는 방법

1. 단일행함수 : 특별한 기능이 하나의 데이터에 적용되어 출력

- CEIL(), ROUND(), TUNCATE(), CONCAT(), DATE_FORMAT() 등

 

2. 다중행함수 : 특별한 기능이 여러개의 데이터에 적용되어 출력

- SUM(), AVG(), COUNT(), MIN(), MAX(), VAR(), MEDIAN() 등

 

# 생존여부, 좌석등급, 나이, 연령대, 요금 데이터 출력
# 연령대 출력할때 함수 사용
# 요금 데이터는 소수점 1번째자리까지 반올림하여 출력
# 나이가 없는 데이터는 제외하여 출력
SELECT survived, pclass, age
	   , TRUNCATE(age, -1) AS ages
	   , ROUND(fare, 1) AS fare
FROM titanic
WHERE age IS NOT NULL;