개인공부

[개인공부] 주말 ETL 4주차 26.01.17(토)~18(일)

nom_de_plume 2026. 1. 17. 16:10

SQL

concat():

  • 문자열 결합 함수
  • 여러개의 열(Column)이나 문자열 값을 하나로 합칠 때 사용
CONCAT(string1, string2, ...)

 

    • 다중 결합: 2개 이상의 인자를 받아 순서대로 이어 붙입니다.
    • NULL 처리 주의: 데이터베이스(MySQL 등)에 따라 인자 중 하나라도 NULL이면 결과값이 전체 NULL이 될 수 있음.   (이럴 땐 CONCAT_WS나 COALESCE를 사용합니다.)
  • 활용 사례: 성(last_name)과 이름(first_name) 합치기, 주소 생성 등
  • 실무에서는 NULL 값이 섞여 들어오는 경우가 많음. CONCAT(ISNULL(col, ''), ...) 처럼 NULL 처리를 함께 설명

 

 

substr():

  • 문자열 자루기 (부분 문자열 추출)
  • 문자열의 특정 위치에서 원하는 길만큼 데이터를 뽑아낼 때 사용
  • substring()과 동일하게 작동
  • 숫자형 데이터에 사용해도 내부적으로 문자열로 자동 형변환(Casting)되어 처리되는 경우가 많다
SUBSTR(string, start, [length])

 

    • 인덱스 시작: 대부분의 SQL에서 인덱스는 1부터 시작합니다 (0이 아님에 주의!).
    • 음수 인덱스: start에 음수를 넣으면 문자열의 끝에서부터 거꾸로 위치를 잡습니다. (예: -3은 뒤에서 세 번째 글자)
    • 생략 가능: length를 생략하면 시작 위치부터 문자열 끝까지 모두 가져옵니다.
  • 활용 사례: 생년월일 데이터에서 '월'만 추출하기, 전화번호 뒷자리 자르기 등

 

 

datediff():

 

 

 

Python

"".join(리스트):

  • 리스트를 문자열로 변환
  • 리스트 안에 담긴 문자열 요소들을 하나의 문자열로 합칠 때 사용하는 메서드
'구분자'.join(iterable)

 

    • 성능: + 연산자로 문자열을 계속 더하는 것보다 메모리 효율과 속도가 훨씬 빠릅니다.
    • 유연성: 구분자("", ", ", \n 등)를 자유롭게 지정할 수 있습니다.

 

 

sorted():

  • 데이터 정렬
  • 반복 가능한(Iterable) 객체를 정렬하여 새로운 리스트 반환
sorted(iterable, key=옵션, reverse=True/False)

 

    • 원본 보존: list.sort()는 원본을 바꾸지만, sorted()는 원본을 건드리지 않습니다.
    • Key 활용: key=len 처럼 정렬 기준을 함수로 전달할 수 있어 매우 강력합니다.

 

re.split():

  • 정규표현식(Regular Expression)을 사용하여 여러 개의 구분자를 동시에 지정하거나 복잡한 패턴을 기준으로 문자열을 나눌 수 있음.
re.split(pattern, string, maxsplit=0, flags=0)
    • pattern: 나눌 기준이 되는 정규표현식
    • string: 대상 문자열
    • maxsplit: 최대 몇 번 나눌 것인가 (기본값 0은 제한 없음)
  • 구분자가 연속으로 나올 때, +를 붙이지 않으면 빈 문자열('')이 결과에 포함되지만, +를 붙이면 "하나 이상 반복되는 구분자"를 한 덩어리로 취급
  • ex)
 re.split('[ ,#]+', s)

=> 변수 s를 구분자 ' '(공백), ','(쉼표), '#'(샵) 중 하나라도 발견되면 그 위치를 기준으로 문자열을 자르되, 기호들이 연속해서 나오면 하나로 묶어서 처리

  • [ ,#]: 대괄호(Character Class)는 안에 들어있는 문자들 중 아무거나 하나와 일치하면 된다는 뜻. 여기서는 공백( ), 쉼표(,), 샵(#) 세 가지가 후보.
  • + (중요!): 앞서 언급하신 수량자. "하나 이상 반복됨"을 의미.
    • 예를 들어 ,### 처럼 기호가 여러 개 겹쳐 있어도 +가 있으면 이를 하나의 구분자로 인식해서 빈 문자열이 생기지 않게 막아줍니다.
  • s: 분리할 대상이 되는 원본 문자열 변수.

 

repr()

 

zip()

 

set()

 

enumerate()

 

json.dumps()

 

json.loads()