management

관리 구문

테이블 변경

-- 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도 롤백이 가능함