DB 기본

Transaction

  • 데이터베이스의 상태를 변화시키는 작업 단위
  • START TRANSACTION: COMMIT, ROLLBACK이 나올 때까지 실행되는 모든 SQL
  • COMMIT: 모든 코드 실행
  • ROLLBACK: START TRANSACTION 실행 전 상태로 되돌아감

Aggregation

  • 집계함수
  • 하나 이상의 행을 묶어 연산
  • sum(): 합
  • avg(): 평균
  • count(): 개수
  • max(): 최댓값
  • min(): 최솟값

group by

  • 쿼리 결과를 그룹으로 묶음
  • 그룹 별 단일 결과 행을 반환
SELECT *
FROM emp
WHERE ename=''
GROUP BY salary
HAVING
ORDER BY
  • FROM(1) → WHERE(2) → GROUP BY(3) → HAVING(4) → SELECT(5) → ORDER BY(6)
  • having: gorup by 결과에 조건 추가

SET

  • 모든 집합 연산자는 동일한 우선순위를 가짐
  • select 절에 있는 속성 개수와 타입이 일치해야함
  • UNION: 합집합(중복되는 부분은 한번만 표시)
  • UNION ALL: 합집합(중복되는 부분 전체 다 표시)
  • INTERSECT: 교집합
  • MINUSL: 차집합

JOIN

  • 둘 이상의 테이블에서 데이터가 필요한 경우 사용
  • WHERE: 일반 조건
  • ON: 조인 조건
  • INNER JOIN
  • OUTER JOIN
    • LEFT OUTER JOIN
    • RIGHT OUTER JOIN
  • NATURAL JOIN
  • CROSS JOIN(FULL JOIN, CARTESIAN JOIN)
  • MySQL: INNER JOIN의 경우 ‘,’로 두 테이블을 연결해도 가능

INNER JOIN

  • 교집합
  • 동등 조인(Equi-Join)
  • N개의 테이블 → N-1 개의 조인 조건 필요
  • 조인되는 각 테이블이 같은 컬럼명을 사용할 경우 using()을 통해 단순화(테이블 명이나 alias 사용하면 에러)

NATURAL JOIN

  • 동일한 타입과 이름을 가진 컬럼으로 자동 조인하여 간단히 표현

OUTER JOIN

  • LEFT, RIGHT, FULL(MySQL은 미지원)
  • 어느 한쪽 테이블에만 해당하는 데이터가 검색되지 않는 문제를 해결하기 위해 사용

SELF JOIN

  • 같은 테이블끼리 JOIN

None-Equi JOIN

  • 기본키, 외래키가 아닌 일반 컬럼을 조인 조건으로 지정
  • <, > 등의 비교 연산도 포함

Subquery

  • 다른 쿼리 내부에 포함되어 있는 SELECT 문
  • 외부(메인) 쿼리 ↔ 서브(내부) 쿼리
  • 중첩 서브 쿼리(Nested Subquery): WHERE 문에 작성
    • 단일행
    • 다중행
    • 다중 컬럼
  • 인라인 뷰(Inline View): FROM 문에 작성 → 뷰처럼 동적으로 생성된 테이블 사용 가능
  • Scalar Subquery: SELECT 문에 작성
  • SELECT, FROM, WHERE, HAVING, ORDER BY, INSERT - VALUES, UPDATE - SET에 위치 가능
  • CREATE TABLE 밑, INSERT INTO 밑, UPDATE와 DELETE 문 WHERE 절에 위치 가능

좋은 웹페이지 즐겨찾기