프로그래밍

[배워서 바로 쓰는 SQL 쿼리] 정리

daykim 2024. 3. 5. 13:08
인프런 강의 [배워서 바로 쓰는 SQL 쿼리]

 

Database (DB)

  • 데이터를 통합해 모아두는 공간이다.
  • 여러 사람에 의해 공유되어 사용될 목적으로 통합해 관리되는 데이터의 집합을 말한다.

 

DB 종류

관계형 데이터베이스 (Relational Database, RDB)

  • 데이터 저장소간 어떤 형태의 관계를 맺고 있는 체계적인 구조의 집합이다.
  • 각 테이블 간의 관계는 Key 값을 기준으로 이어져있다.
  • 관계를 맺는 방식 (1:1, 1:다, 다:1)
  • 저장된 데이터의 품질 유지를 위해 무결성, 정합성 등을 체크해 저장한다.
  • 검색 속도 확보를 위해 Index를 달아두기도 한다.

 

비관계형 데이터베이스

  • NoSQL
  • RDB와 달리 DB에 저장되기 전의 날것의 상태(json) 그대로 DB에 저장한다.
  • 이러한 특성으로 주로 log 데이터를 저장하는데 사용한다.
  • 빅데이터 시대이 이르러서 각광받는다.
    정규화, 인덱싱 등을 거치지 않고 그대로 저장하기 때문이다.
  • 그러나 저장은 쉽지만, 조회가 쉽지 않다.
  • SQL은 RDB에 대해서 실행이 가능하도록 만들어져 있다.

 

Group by

  • 집계 연산자(sum, count 등)를 실행할 때 기준을 알려주는 라인이다.

having

  • group by를 통해 집계한 데이터에 필터를 걸고 싶을 때 사용한다.
  • sub query로 대체 가능하다.

 

Aggregate Function

  • 집계함수란 뜻으로, 데이터를 집계하는데사용한다.
  • SUM
  • AVG
  • MIN, MAX
  • COUNT
  • Substr(column, start_num, end_num) : 문자열, 날짜 데이터를 조건에 맞게 잘라준다.
  • CASE WHEN ... THEN ... else ... end : 조건 설정(if) 시에 자주 쓰는 명령어
  • 이 외에도 많다.

 

SQL Function

  • distinct : 고유값
  • as
  • len : 길이 반환
  • right, left, mid : 문자열 자르기
  • upper, lower : 문자열 변환
  • ifnull : null값 처리

  • window 함수
  • rank () over () : 순위매기기
  • dense_rank () over()
  • ntile : 등분하기

  • datetime() : 시차조정(빅쿼리)
  • cast() : 데이터타입변환(빅쿼리)

 

Join

  • 여러 테이블을 하나로 합쳐주는 역할을 한다. 즉, 다중 테이블에서 데이터를 가져올 수 있다.
  • Key(PK, FK)를 기준으로 테이블을 합치게 된다.

join의 종류

 

 

'프로그래밍' 카테고리의 다른 글

[MySQL] 명령어  (0) 2023.09.25
[Cloud] Scale-up, Scale-out  (0) 2023.05.08