*.모델링...
--dept table의 deptno에는 pk추가
alter table dept
add constraint dept_pk primary key(deptno)
--emp2 table에 deptno컬럼추가후 fk로 추가.
alter table emp2
add deptno number(2)
add constraint emp2_fk foreign key(deptno) references dept(deptno)
--alter table emp2
--drop column deptno
--alter table emp2
--drop constraint emp2_fk
--emp2의 ename컬럼의 제약조건 삭제.
alter table emp2
drop constraint EMP2_NN
--emp2 스티븐의 부서번호 10번
update emp2
set deptno=10 where ename='스티븐'
update emp2
set deptno=10 where ename='니나'
ex)차수 관계. 예시
--부서 : 사원정보 1:다 관계(배치된다:소속된다)
--부서 : 부서장 1:1 관계(교과강사:교과과정)
--사원 : 물품 다:다 관계(학원접수받다:학원등록한다)
*.관계조건
- 필수사양 : ────
- 선택사양 : …………
create table dept2
as
select * from dept
--테이블과 내용은 복사되지만 제약조건은 복사안됨.
alter table dept2
add constraint dept2_pk primary key(deptno)
select * from user_constraints where table_name='DEPT2'
emp2 -- dept
deptno(fk) -- deptno(pk)
emp3 -- dept3
deptno(fk) -- deptno(pk)
--테이블명 변경.(9i이상)
rename 구테이블명 to 새테이블명
rename dept2 to dept3
create table emp3
as
select * from emp2
alter table emp3
add constraint emp3_fk foreign key(deptno) references dept3(deptno)
--emp2의 부모인 dept; 삭제.
drop table dept;
ORA-02449: 외래 키에 의해서 참조된 테이블에 유일/기본 키입니다
select R_CONSTRAINT_NAME, CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME
from user_constraints;
alter table emp2
drop constraint EMP2_FK;
drop table dept;
--emp3 부모 dept3 삭제
drop table dept3 cascade constraint;
===================================================