본문으로 바로가기

[SQL 레벨업] 2장. SQL 기초

category Data Analysis/SQL Tuning 2023. 12. 19. 13:37
반응형

6강. SELECT 구문

  1. 검색
    • 데이터가 저장되어 있는 테이블에서 필요한 데이터를 뽑아내는 것 (select)
    • 질의(query), 추출(retrieve)
  2. where
    • 필터 조건, ~라는 경우
    • null은 데이터 값이 아니므로, 데이터값에 적용하는 연산자(=)를 적용할 수 없다.
  3. select 구문의 입/출력은 모두 2차원 표 (테이블)
    • 폐쇄성 (closure property)
  4. group by, having
    • 집합, 집합 조건
  5. order by
    • 정렬
  6. 뷰 (VIEW)
    • select 구문을 데이터베이스 안에 저장
    • 데이터 저장 X
    • 뷰에서 데이터를 선택하는 SELECT 구문은, 실제로는 내부적으로 ‘추가적인 SELECT 구문’을 실행하는 중첩 (nested) 구조 → 서브쿼리

7강. 조건 분기, 집합 연산, 윈도우 함수, 갱신

  1. SQL과 조건 분기
    • SQL은 코드를 절차적으로 기술하는 것이 아니므로, 조건 분기를 ‘문장’단위로 하지 않음.
    • CASE 식 으로 조건 분기 실행
  2. SQL의 집합 연산
    • union 합집합
    • intersect 교집합
    • except 차집합
      • 교환법칙 성립 X
  3. 윈도우 함수
    • 집약 기능이 없는 GROUP BY 구
    • 자른 후에 집약하지 않으므로 출력 결과의 레코드 수가 입력되는 테이블의 레코드 수와 같음
    • .. over(partition by .. order by .. range .. rows)
      • rows - 행을 기준으로 선택
        1. rows unbounded preceding : 맨 위부터 현재 행까지
        2. rows unbounded following : 현재 행부터 맨 아래 행까지
        3. rows 10 preceding : -10행 ~ 현재행
        4. rows 10 following : 현재행 ~ +10행
      • range - 컬럼값 기준으로 범위 선택
        1. range 50 preceding : Y-50 ~ Y(현재값)
        2. range unbounded preceding : 최저값 ~ Y(현재값)
        3. range between 50 preceding and 50 following : Y-50 ~ Y(현재값) ~ Y+50
        4. rnage between unbounded preceding and current row : 최저값 ~ Y(현재값)
      • 참고
  4. 트랜잭션과 갱신
    • 갱신
      1. 삽입(insert)
      2. 제거(delete)
      3. 갱신(update)
      4. 머지(merge)

References

  • SQL 레벨업 - DB 성능 최적화를 위한 SQL 실전 가이드

반응형

'Data Analysis > SQL Tuning' 카테고리의 다른 글

[SQL 레벨업] 1장. DBMS 아키텍쳐  (0) 2023.12.13
[SQL 튜닝] 기본적인 튜닝 절차  (0) 2023.11.13
[SQL 튜닝] 실행계획  (0) 2023.11.13
[SQL 튜닝] 기본개념  (0) 2023.11.13