관리 구문
테이블 변경
-- Oracle
ALTER TABLE table_name MODIFY (
column_name TYPE CONSTRAINT,
column_name TYPE CONSTRAINT,
...
);
-- SQL SERVER
ALTER TABLE table_name
ALTER COLUMN column_name TYPE CONTRAINT;
FK action
- delete
- RESTRICT: 자식이 존재하면, 부모 삭제를 못 하게 함
- CASCADE: 부모를 삭제하면, 자식도 삭제
- SET NULL: 부모를 삭제하면, 자식에 있는 FK를 null로 바꿈
- SET DEFAULT: 부모를 삭제하면, 자식에 있는 FK를 기본 값으로 바꿈
- insert
- Automatic: 부모에 해당 PK를 생성하고 자식의 FK로 입력
- SET NULL: PK가 없으면 자식의 FK를 null로 설정
- SET DEFAULT: PK가 없으면 자식의 FK를 기본 값으로 설정
- Dependent: 부모에 해당 PK가 존재할 때만 자식 생성을 허용
Merge
MERGE INTO A
USING B
ON A, B의 조건
WHEN MATCHED THEN
-- A, B의 조건이 true일 때, 실행
WHEN NOT MATCHED THEN
-- A, B의 조건이 false일 때, 실행
Top
- TOP 5: 상위 5개를 표시
- TOP 5 PERCENT: 상위 5%를 표시
- TOP 5 WITH TIES: 동점자도 표시
Rollback
- Oracle Truncate는 빠른 대신 롤백이 불가능
- Oracle: DDL을 사용할 때 자동으로 commit이 되어서 롤백이 불가능
- SQL Server: DDL도 롤백이 가능함