제약조건의 종류
- PRIMARY KEY (기본키)
- UNIQUE KEY (고유키)
- NOT NULL
- CHECK
- FOREIGN KEY (외래키)
기본키 할당
- ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 PRIMARY KEY (칼럼명1, 칼럼명2)
트랜잭션의 특성
- 원자성 : 연산은 모두 실행되거나 전혀 실행되지 않음
- 일관성 : 연산 이전에 데이터에 문제가 없다면 연산 이후에도 잘못이 없어야 함
- 고립성 : 연산 도중 다른 트랜잭션의 영향을 받지 않음
- 지속성 : 트랜잭션이 성공적으로 수행되면 결과가 영구적으로 저장됨
DELETE (MODIFY) ACTION
- Cascade : Master 행이 삭제되면 Child 행도 함께 삭제됨
- SET NULL / SET DEFAULT : 삭제 시 Child의 외래키 값을 NULL 또는 기본값으로 변경
- Restrict : Child 테이블에 참조하는 행이 없을 때만 Master 삭제 가능
- No Action : 참조 무결성을 위반하는 삭제나 수정은 수행되지 않음
INSERT ACTION
- Automatic : Master의 기본키가 자동 생성된 후 Child 입력
- SET NULL / SET DEFAULT : 기본키가 없으면 NULL 또는 기본값으로 처리
- Dependent : Master 테이블에 기본키가 존재할 때만 Child 입력 허용
- No Action : 참조 무결성을 위반하는 입력은 수행되지 않음
DROP / TRUNCATE / DELETE 비교
- DELETE
- ROLLBACK 가능 (사용자 Commit 이전까지)
- 데이터만 삭제하며 Storage는 유지됨
- TRUNCATE
- Auto Commit 되어 ROLLBACK 불가
- 데이터 삭제 후 Storage 일부만 반환 (최초 생성 시 할당된 영역은 유지)
- DROP
- Auto Commit 되어 ROLLBACK 불가
- 테이블 정의 자체를 삭제하며 Storage 완전히 반환
DB 키의 종류
종류 : 설명
기본키 : 엔터티를 대표하는 키 (Null 불가)
후보키 : 유일성과 최소성을 모두 만족
슈퍼키 : 유일성만 만족
대체키 : 기본키를 제외한 나머지 후보키
외래키 : 다른 테이블의 기본키를 참조 (Null 가능)
고유키 : 고유한 값 보장 (Null 값 1개만 가능)
연산자 우선순위
- 괄호 ( )
- NOT
- 비교 연산자 및 SQL 연산자
- AND
- OR
[DML]
- SELECT 칼럼명 FROM 테이블명;
- INSERT INTO 테이블명 VALUES (...); (칼럼 명시가 없으면 모든 칼럼 순서에 맞게 입력해야 함)
- UPDATE 테이블명 SET 칼럼명 = 값;
- DELETE FROM 테이블명 WHERE 조건절;
[DDL]
- CREATE 테이블명 (칼럼명 데이터타입 제약조건 …);
- DDL은 Auto Commit 되어 ROLLBACK 불가
- Oracle : ALTER TABLE 테이블명 MODIFY (칼럼명 데이터유형 [DEFAULT 식][NOT NULL]);
- SQL Server : ALTER TABLE 테이블명 ALTER (칼럼명 데이터유형 [DEFAULT 식][NOT NULL]);
- DROP 테이블명 / TRUNCATE 테이블명
[DCL]
- GRANT 권한 ON 객체 TO 사용자명;
- REVOKE 권한 ON 객체 FROM 사용자명;
'Hello World > SQLD' 카테고리의 다른 글
[2-2 SQL 활용] (0) | 2025.10.15 |
---|---|
[2-1 SQL 기본 및 활용] (0) | 2025.10.11 |
[1-2] 데이터 모델과 SQL (0) | 2025.10.11 |
[1-1] 데이터 모델링의 이해 (6) | 2025.01.07 |