alter table
기존테이블명 rename to 새로운테이블명; 사용자가 만든 테이블은아닌데, 오라클에서 기본으로 제공해주는 데이터를 담을 테이블이 존재한다. 그 중 User_constraint가 저장된 것이 제약조건이 담긴 테이블이다.
alter table (테이블명)
add constratint 제약조건명 제약조건(제약조건 설정할 컬럼)-
-
alter table (테이블명) add constratint 제약조건명 unique(제약조건 설정할 컬럼)
-
mydept라는 테이블 생성 후 row 2개 넣기
alter table 테이블명
add constraint 설정할포린키제약조건이름 foreign key(FK제약조건 적용할 컬럼)
references 테이블명(FK에서참조할기본키);[제약조건에 맞춰서 값을 넣어보자!]
[내가 parent키에 없는 값을 입력했을 때 나오는 오류 문구 (제약조건 위반) ]
- 기본키-포린키 제약조건 관계가 설정된 테이블에 기본키 테이블(parent)을 삭제할 수 없다. 포린키가 붕 떠버린다.
- 따라서 삭제하고 싶으면, 포린키(child)를 먼저 삭제후 (참조하는 테이블이 없는 상태로 만들고) or 제약조건을 제거 후 기본키를 삭제할 수 있다.
기본키에 없는 값을 쓸 수 없다.
기본키 테이블의 값을 포린키에서 참조해서 사용하는 경우, 기본키 테이블을 삭제할 수 없다. 포린키 테이블을 먼저 제거하거나, 제약조건을 삭제하고 기본키를 삭제할 수 있다.
-
ex. 은행 시스템에서 사용자에게 10만까지만 입력받기가 가능 등
alter table member
add constraint 만들check제약조건명 check(컬럼명 in (..,..,..))[ 제약조건 위반 ]
[제약조건 제거]
순차적인 값을 쓸 때 시퀀스 사용
create sequence 시퀀스명; (시퀀스명:테이블명_seq 보편적)주문 상세내역이 다음 값이 아니라, 저장된 myorder 테이블의 ord_num이어야 하기 때문에 nextval이 아니라 currentval로 해준다.
- 테이블

























