thumbnail

멋쟁이사자처럼 데이터 분석 부트캠프 수강 후기

멋쟁이사자처럼 데이터 분석 부트캠프 4기 수강후기

멋쟁이사자처럼 오늘 공부 후기 챌린지 - 데이터 분석 편

이런 고민을 하고 있다면, 지금 이 순간에도 멋쟁이사자처럼에서 데이터 분석 부트캠프를 수강하며 자신만의 속도로 성장 중인 수강생들을 주목해보세요.


배우고 잊어버리는 건 누구나 겪는 일이에요. 하지만 멋쟁이사자처럼 부트캠프는 단순히 배우는 것에 그치지 않고, 배운 내용을 내 것으로 만드는 방법까지 고민하고 있어요. 그렇다면, 배운 것을 가장 효과적으로 습득하는 방법은 무엇일까요? 바로 기록하고 정리하는 것이죠. 배운 내용을 정리하고 기록하면, 기억은 오래 남고 실전에서도 활용할 수 있으니까요!

멋쟁이사자처럼 부트캠프는 수강생들이 배운 내용을 정리하고 공유할 수 있도록 TIL (Today I Learned) 블로그 챌린지를 진행하고 있어요. 그래서 오늘, 강사님과 멘토님에게 배운 내용을 체계적으로 기록하며 성장하고 있는 수강생의 이야기를 가져왔어요. 작고 사소해 보일지라도 배운 내용을 정리하고, 기록하면서 성장한 이들의 소중한 경험을 지금 확인해 보세요.


MYSQL 내장함수

  • 문자형

    • CONCAT, TRIM, REPLACE

    • LOCATE

  • 숫자형

    • ABS, MOD, POW

    • CEIL, FLOOR,ROUND

  • 날짜형

    • CURDATE,CURTIME,NOW

    • DATE_FORMAT

  • NULL활용 함수

    • IFNULL, COALESCE, NULLIF

문자형 함수 - CONCAT, TRIM, REPLACE

1. 문자열을 하나로 연결해주는 함수

:   SELECT CONCAT ('str1','str2')

Plaintext
SELECT CONCAT('Hello', '! ', 'World');   # Hello! World

2. 특정문자 / 공백을 삭제하는 함수

:   SELECT TRIM(LEADING/TRAILING/BOTH '삭제할 문자' FROM '원래 텍스트')

  • LEADING: 앞부분을 자름

  • TRAILING: 뒷부분을 자름

  • BOTH: 앞 뒤 다 자름

Plaintext
SELECT TRIM('-' FROM '---title---');# title
SELECT TRIM(LEADING '-' FROM '---title---');# title---
SELECT TRIM(TRAILING '-' FROM '---title---');# ---title

3.  문자열을 수정/대체하기 위해 사용하는 함수

SELECT REPLACE('문자열 원문', '바꾸고 싶은 문자', '바꿀 문자')

Plaintext
# 변경
SELECT REPLACE ('SUNHEE?', '?', '!')# SUNHEE!# 삭제
SELECT REPLACE ('SUNHEE!', '!', '')# SUNHEE

4. 문자 위치 찾는 함수

:  SELECT LOCATE ('찾으려는 문자', '컬럼명(원문)',[pos])

  • 찾으려는 문자가 있다면, 그 문자의 첫 번째 위치를 반환

  • 찾으려는 문자가 없다면, 0을 반환

  • pos자리에 숫자를 작성하면 해당 위치부터 탐색

  • 띄어쓰기도 포함한 값을 출력한다.

Plaintext
SELECT LOCATE ('타파', '가나다라마바사아자차카타파하');#12
SELECT LOCATE ('타파', '가나다 라마바 사아자 차카 타파하');#16 띄어쓰기 포함

숫자형 함수 - ABS,MOD,POW,CEIL,FLOOR,ROUND

SELECT +

  • ABS(x): x의 절대값 반환

  • MOD(n,m): n을 m으로 나누었을때의 나머지 반환 (n%m과 동일)

  • POW(n,m): n의 m승의 결과를 반환

  • CEIL(x): x의 올림값을 반환

  • FLOOR(x): x의 내림값을 반환

  • ROUND(x[,d]): x의 d자리수 반올림값 반환

날짜형 함수 - CURDATE,CURTIME,NOW,DATE_FORMAT

`SELECT`` +

NULL 관련 함수 - IFNULL, NULLIF, COALESCE

  • IFNULL(expr1, expr2) : expr1이 null이면, expr2를 반환

Plaintext
SELECT IFNULL(NULL, '비어있는 값입니다.');# 비어있는 값입니다.
SELECT IFNULL(100, '비어있는 값입니다.');# 100# customer 테이블에서 name과 birth_year를 조회할 때,# birth_year가 NULL이면 No data가 출력될 수 있는 쿼리문 작성

SELECT
    customer_name,
    IFNULL(birth_year, 'No data')#birth_year에 값이 있으면 값 출력, 없으면 'No data'
FROM customer;
  • NULLIF(expr1, expr2)

    • expr1 = expr2 , NULL반환

    • expr1 != expr2, expr1을 반환

Plaintext
SELECT NULLIF('hello', 'hello');# NULL
SELECT NULLIF('hello', 'world');# hello
  • COALESCE(v1, v2, v3) : v1부터 순서대로 확인해서 null이 아닌 값을 반환

Plaintext
SELECT COALESCE('hello', 'world', NULL);# hello
SELECT COALESCE(NULL, 'hello', NULL);# hello
SELECT COALESCE(NULL, NULL, NULL);# NULL# customer 테이블에서 gender가 N이거나 NULL인 경우# customer_name을 출력하고 만약 Name도 NULL인 경우 'No Data'를 출력

수정필요 SELECT COALESCE(NULLIF(gender, 'N'), customer_name, 'No Data') FROM customer;

  • NULLIF(gender,'N') : gender = N, Null을 반환 / gender != N, gender값 반환

  • FROM절 뒤에 위치

  • 정렬에서 NULL값이 존재할 경우, 오름차순 정렬시 NULL이 가장 먼저 출력

    • 마지막에 출력하고 싶으면 ORDER BY 에 IS NULL조건 추가

Plaintext
# country 테이블에서 Continent 필드가 'Africa'인 데이터 중에# IndepYear 기준으로 오름차순 정렬할때 NULL 데이터를 마지막에 위치하도록# Name, IndepYear 데이터 조회
SELECT
    name, indepyear
FROM
    country
WHERE
    continent = 'Africa'
ORDER BY
     indepyear IS NULL,
     indepyear;

LIMIT : 조회하는 레코드의 수 제한

LIMIT [offset,] row_count;

  • offset : 시작하는 레코드의 위치. 작성하지 않는 경우는 첫 번째 레코드부터 반환

    • offset은 0부터 시작함

  • row_count : 조회하는 최대 레코드 수 설정

Plaintext
# Population 내림차순 기준으로 top 5 조회

ORDER BY
	Population DESC# 오름차순 - ASC / 생략, 내림차순 - DESC
LIMIT 5;

# Population 내림차순 기준으로 6번째부터 12번째 데이터만 조회
ORDER BY
	Population DESC
LIMIT 5, 7;

GROUP BY

: GROUP BY는 SQL에서 데이터를 그룹화하여 집계 함수(SUM, COUNT, AVG, 등)와 함께 사용할 때 활용됩니다.

데이터의 특정 기준으로 데이터를 묶어서 각 그룹에 대해 집계 연산을 수행할 수 있게 합니다.

Aggregate Function(집계함수)

  • COUNT(*) :  행의 수 반환

    NULL값을 포함한

  • COUNT(col_name):  행의 수 반환

    NULL값을 제외한

  • SUM(col_name): NULL값을 제외한 합계 반환

  • AVG(col_name) : NULL값을 제외한 평균 반환

  • MAX(col_name) :NULL값을 제외한 최대값 반환

  • MIN(col_name) :NULL값을 제외한 최소값 반환

  • STDDEV(col_name) :NULL값을 제외한 표준편차 반환

  • VARIANCE(col_name) :NULL값을 제외한 분산 반환

GROUP BY + 그룹화할 필드 목록

  • FROM 및 WHERE절 뒤에 위치

HAVING절

: 집계항목에 대한 세부조건을 지정. GROUP BY 가 없으면 WHERE절처럼 동작

연습문제1

# country 테이블에서 Continent 필드로 그룹화하고,

대륙별 GNP 평균값을 소수점 2자로 반올림하여 조회하고 이름을 avg_GNP로 출력

Plaintext
SELECT
    continent,
    ROUND(AVG(GNP),2) as avg_GNP
FROM country
GROUP BY continent;

연습문제2

# sales테이블에서 Electronics 카테고리만 포함하고, 카테고리별 총 매출을 조회하는 쿼리문을 출력

Plaintext
SELECT
    category,
    sum(sales) AS total_sales
FROM sales
WHERE category = 'Electronics'
GROUP BY category;

GROUP BY는 항상 집계함수와 함께 사용

그룹화하려는 컬럼은 반드시 GROUP BY에서 명시되어야함.

SELECT절에 있는 컬럼은 반드시 GROUP BY에 포함된 컬럼이어야 함.


공부는 배울 때 끝나는 게 아니라, 되새기고 활용할 때 완성돼요. 그런 의미에서 오늘 소개한 이야기는 단순한 후기가 아니라, 학습을 더 효과적으로 만들고 나만의 것으로 만드는 과정이었을 거예요. 여러분도 배운 내용을 정리하고, 더 오래 기억하는 습관을 만들어 보세요. 작은 차이가 결국 큰 결과를 만들 테니까요!

내가 배운 것을 글로 정리하는 것이 처음에는 어렵게 느껴질 수도 있지만 멋쟁이사자처럼과 함께 꾸준히 기록하다 보면 스스로 변화하고 있다는 걸 깨닫게 될 거예요. 자! 이제 여러분 차례에요. 언제나 여러분의 곁에는 멋쟁이사자처럼이 있으니 고민하지 말고 배움을 기록하고, 성장의 발자취를 남겨보세요!

홈 : 멋사 부트캠프

멋쟁이사자처럼의 13년 교육 노하우로 IT 취업의 꿈을 현실로!

홈 : 멋사 부트캠프