쌍용 강북 교육센터 국비학원 Day 31일차
Foreign Key 옵션
ON DELETE CASCADE
참조되는 부모 테이블 행에 대한 DELETE를 허용하는 옵션이다
본래 자식테이블에 참조한 데이터가 남아있을 경우 부모테이블에서 삭제가 불가능하지만 on delete cascade 옵션을 주면 가능하다.
즉, 부모테이블의 값을 삭제시 자식테이블의 연결된 값을 같이 삭제시켜준다.
(동작방식은 자식테이블에서 데이터를 먼저 삭제시킨뒤 그 다음에 부모테이블의 데이터를 삭제시킨다)
ON DELETE SET NULL
부모 테이블의 값이 삭제되면 해당 참조하는 자식 테이블의 값들이 NULL로 설정되는 옵션이다.
부모테이블에서 값을 삭제시 자식테이블의 연결된 값을 NULL로 변환시켜준 뒤 그 다음에 부모테이블에서 값이 삭제된다.
(단, 자식테이블에서 삭제되는 컬럼은 반드시 NULL을 허용해야한다)
ALTER
ALTER는 DDL(Data Definition Language)에 속하는 명령어로, 테이블이나 컬럼의 이름을 바꾸거나 제약조건을 변경하거나 컬럼을 추가 또는 삭제하는 등의 다양한 테이블 변경 기능을 수행한다.
ALTER 명령어 유형
|
기능
|
|
ALTER RENAME
|
이름 변경
|
테이블 이름, 컬럼 이름, 제약조건 이름 변경
|
ALTER ADD
|
추가 | 테이블에 새로운 컬럼 추가, 새로운 제약조건 추가 |
ALTER MODIFY
|
유형 변경
|
테이블 컬럼의 데이터 유형(또는 크기) 변경
|
ALTER DROP
|
삭제
|
테이블에서 컬럼 삭제, 제약조건 삭제
|
ALTER READ
|
읽기/쓰기
|
읽기 전용 테이블로 변경 / 읽고 쓰기 가능한 테이블로 변경
|
- 제약조건 추가
P - alter table 테이블명 add constraint 제약조건명 primary key ( 컬럼명 ) ;
U - alter table 테이블명 add constraint 제약조건명 unique ( 컬럼명 ) ;
C - alter table 테이블명 add constraint 제약조건명 check ( 조건 )
R - alter table 테이블명 add constraint 제약조건명 foreign key ( 컬럼명 ) references 부모테이블명 ( 식별자컬럼명 ) ;
C - alter table 테이블명 modify 컬럼명 [ constraint 제약조건명 - 생략가능 ] not null ;
- 제약조건 삭제
All - alter table 테이블명 drop constraint 제약조건명 ;
P - alter table 테이블명 drop primary key ; (primary key 는 고유하기 때문)
C - alter table 테이블명 modify 컬럼명 null ;
제약조건을 변경하고 싶을 때 제약조건의 내용을 변경해주는 명령어는 없기 때문에, 기존 제약조건을 삭제한 후 다시 제약조건을 추가해야 한다.
- 이름변경 (제약조건, 컬럼명)
alter table 테이블명 rename constraint 현재사용중인제약조건명 to 새로운제약조건명 ;
alter table 테이블명 rename column 현재컬럼명 to 새로운컬럼명 ;
rename 기존테이블명 to 변경할테이블명
※ disable / enable 로 제약조건의 비활성화 / 활성화 또한 가능하다. 제약조건의 활성화 상태는 status로 확인가능하다.
- 테이블에 컬럼 추가, 삭제
alter table 테이블명 add 추가할컬럼명 데이터타입 ; (입력된 데이터가 없을 경우에만 가능하다 or 있을경우 초기값을 설정해준다)
alter table 테이블명 drop column 삭제할컬럼명 ;
- 컬럼의 데이터 변경
alter table 테이블명 modify 컬럼명 새로운데이터타입 ;
(입력된 데이터가 없을 경우에만 가능하다. 같은 타입의 크기변경은 무관하다)
alter table 테이블명 modify 컬럼명 default 새로운값 ; (default 값 변경, 제거는 default null)
- 데이터 제거
DROP TABLE 테이블명 ; - 테이블 삭제 (휴지통으로 보관)
USER_RECYCLEBIN ; - drop 된 휴지통 조회
FLASHBACK TABLE 테이블명 TO BEFORE DROP ; - 휴지통에 있는 테이블 복원
PURGE TABLE 테이블명 ; - 테이블 영구삭제
PURGE RECYCLEBIN ; - 휴지통에 있는 모든 데이터 삭제
- 주석문 추가
USER_TAB_COMMENTS - 테이블에 대한 주석문 조회
COMMENT ON TABLE 테이블명 is ' 주석문 ' ;
USER_COL_COMMENTS - 컬럼에 대한 주석문 조회
COMMENT ON COLUMN 테이블명.컬럼명 is ' 주석문 ' ;
참고 출처 : https://m.blog.naver.com/regenesis90/222200703206
'DB > Oracle' 카테고리의 다른 글
Oracle 시스템 테이블 명령어정리 (0) | 2023.02.16 |
---|---|
쌍용강북교육센터 국비 학원 Day 32일차 Oracle (PL/SQL문, Procedure, Function, 제어문) (0) | 2023.02.16 |
쌍용강북교육센터 국비 학원 Day 30일차 Oracle (Merge, DDL, Constraint, 제약조건) (0) | 2023.02.14 |
쌍용강북교육센터 국비 학원 Day 29일차 Oracle (SET 연산자, UNION, PSEUDO Column, DML) (0) | 2023.02.13 |
쌍용강북교육센터 국비 학원 Day 28일차 Oracle (JOIN, INNER, OUTER, EQUI, SELF) (0) | 2023.02.10 |