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

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;
'⌛ BootCamp > [커널아카데미] 데이터분석 부트캠프' 카테고리의 다른 글
| [커널 아카데미] 데이터 분석 부트캠프 18기_ 4주차 학습일지 (0) | 2025.03.21 |
|---|---|
| [커널 아카데미] 데이터 분석 부트캠프 18기_ 3주차 학습일지 (0) | 2025.03.15 |
| [커널 아카데미] 데이터 분석 부트캠프 18기_ Python 제어문 (for문) (0) | 2025.03.12 |
| [커널 아카데미] 데이터 분석 부트캠프 18기_ Python 제어문 (if문) (0) | 2025.03.12 |
| [커널 아카데미] 데이터 분석 부트캠프 18기_ Python 기초(1) (0) | 2025.03.10 |