study ../SQLD

[과목 II. SQL 기본 및 활용] 제3장 관리 구문: contents

wlsekf 2025. 8. 21. 00:12
과목 II. SQL 기본 및 활용
  제3장 관리 구문
    제1절 DML
    제2절 TCL
    제3절 DDL
    제4절 DCL


# 트랜잭션의 특성
  * 원자성(Atomicity): 트랜잭션에서 정의된 연산들은 모두 성공적으로 실행되든지 아니면 전혀 실행되지 않은 상태로 남아 있어야 한다. (All or Nothing)
  * 일관성(Consistency): 트랜잭션이 실행 되기 전의 데이터베이스 내용이 잘못되어 있지 않다면 트랜잭션이 실행된 이후에도 데이터베이스의 내용에 잘못이 있으면 안 된다.
  * 고립성(Isolation): 트랜잭션이 실행되는 도중에 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안 된다.
  * 지속성(Durability): 트랜잭션이 성공적으로 수행되면 그 트랜잭션이 갱신한 데이터베이스의 내용은 영구적으로 저장된다.

# DISTINCT
  * SQL에서 중복 행을 제거하는 데 사용되는 키워드

# 테이블 생성 시 주의해야 할 사항
  * 테이블명은 객체를 의미할 수 있는 적절한 이름을 사용하고 가능한 단수형을 권고한다.
  * 한 테이블 내에서는 칼럼명을 중복되게 지정할 수 없다.
  * 벤더에서 사전에 정의한 예약어(Reserved word)를 사용할 수 없다.

# 외래키
  * 테이블 생성 시 설정할 수 있다.
  * 외래키 값은 NULL 값을 가질 수 있다.
  * 한 테이블에 하나 이상 생성할 수 있다.
  * 외래키 값은 참조 무결성 제약을 받을 수 있다.

# DELETE(/MODIFIY) Action
  * CASCADE: Master 삭제 시 Child 같이 삭제
  * Set Null: Master 삭제 시 Child 해당 필드 Null
  * Set Default: Master 삭제 시 Child 해당 필드 Default 값으로 설정
  * RESTRICT: Child 테이블에 PK 값이 없는 경우만 Master 삭제 허용
  * No Action: 참조 무결성을 위반하는 삭제/수정 액션을 취하지 않음

# INSERT Action
  * AUTOMATIC: Master 테이블에 PK가 없는 경우 Master PK를 생성 후 Child 입력
  * Set Null: Master 테이블에 PK가 없는 경우 Child 외부키를 Null 값으로 처리
  * Set Default: Master 테이블에 PK가 없는 경우 Child 외부키를 지정된 기본값으로 입력
  * DEPENDANT: Master 테이블에 PK가 존재할 때만 Child 입력 허용
  * No Action: 참조 무결성을 위반하는 입력 액션을 취하지 않음

# 산술 연산자 우선 순위
  * (), *, /, +, -

# DROP
  * DDL
  * ROLLBACK 불가능
  * AUTO COMMIT
  * 테이블이 사용했던 Storage를 모두 Release
  * 테이블의 정의 자체를 완전히 삭제함

# TRUNCATE
  * DDL(일부 DML 성격 가짐)
  * ROLLBACK 불가능
  * AUTO COMMIT
  * 테이블이 사용했던 Storage 중 최초 테이블 생성 시 할당된 Storage만 남기고 Release
  * 테이블을 최초 생성된 초기 상태로 만듦

# DELETE
  * DML
  * COMMIT 이전 ROLLBACK 가능
  * 사용자 COMMIT
  * 테이블을 모두 Delete해도 사용했던 Storage는 Release 되지 않음
  * 데이터만 삭제

# 오라클
  * DDL 문장 수행 후 자동으로 COMMIT을 수행한다.
  * DDL 문장의 수행은 내부적으로 트랜잭션을 종료시킨다.

# SQL Server
  * DDL 문장 수행 후 자동으로 COMMIT을 수행하지 않는다.
  * CREATE TABLE 문장도 TRANSACTION의 범주에 포함된다.

# 트랜잭션(Transaction)
  * 데이터베이스의 논리적 연산 단위

# ROLLBACK
  * ROLLBACK 구문은 COMMIT 되지 않은 상위의 모든 TRANSACTION을 모두 ROLLBACK 한다.

# TOP N
  * SQL Server의 TOP N 질의문에서 N에 해당하는 값이 동일한 경우 함께 출력되도록 하는 WITH TIES 옵션을 ORDER BY 절과 함께 사용하여야 한다.