과목 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 절과 함께 사용하여야 한다.
'study .. > SQLD' 카테고리의 다른 글
| [과목 II. SQL 기본 및 활용] 제3장 관리 구문: index (1) | 2025.08.20 |
|---|---|
| [과목 II. SQL 기본 및 활용] 제2장 SQL 활용: contents (0) | 2025.08.18 |
| [과목 II. SQL 기본 및 활용] 제2장 SQL 활용: index (1) | 2025.08.18 |
| [과목 II. SQL 기본 및 활용] 제1장 SQL 기본: contents (2) | 2025.08.17 |
| [과목 II. SQL 기본 및 활용] 제1장 SQL 기본: index (1) | 2025.08.17 |