티스토리 뷰
부산 ITWILL 학원 실습/ORACLE
[SQL 활용] 8. 데이터정의어(DDL) - 테이블 수정 - 테이블의 기존 컬럼에 제약 조건 추가
김뽀삐. 2018. 8. 9. 11:50테이블 수정(alter table) - 테이블의 기존 컬럼에 제약 조건 추가
문법 1 . TABLE LEVEL 문법
제약 조건 : PK, FK, UK, CK
1 2 | ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건유형 ( 컬럼명 ); | cs |
1 2 3 4 | ALTER TABLE emp2 ADD CONSTRAINT emp_mgr_fk FOREIGN KEY ( manager_id ) REFERENCES emp2 ( employee_id ); | cs |
문법 2 . COLUMN LEVEL 문법
제약 조건 : PK, FK, UK, CK, NN
1 2 | ALTER TABLE 테이블명 MODIFY 컬럼명 CONSTRAINT 제약조건명 제약조건유형; | cs |
1 2 | ALTER TABLE emp2 MODIFY employee_id CONSTRAINT emp_mgr_fk; | cs |
1 | DESC employees | cs |
테이블에 선언된 제약조건 확인
1 | DESC user_constraints | cs |
컬럼 사이즈 줄이기
1 | COL constraint_name FORMAT a15 | cs |
1 | COL search_condition FORMAT a25 | cs |
1 | COL r_constraint_name FORMAT a15 | cs |
1 2 3 4 5 6 | SELECT constraint_name, constraint_type, search_condition, _constraint_name FROM user_constraints WHERE table_name = upper('&t_name'); | cs |
입력 : employees
upper 소문자 → 대문자 변경
버퍼 실행
1 | l | cs |
버퍼 저장
1 | SAVE /home/oracle/search_cons.sql | cs |
버퍼 실행
1 | @/home/oracle/search_cons.sql | cs |
입력 : departments
복사본 테이블 생성
1 2 3 4 | CREATE TABLE emp2 AS SELECT * FROM employees; | cs |
* 의문점
테이블 구조, 테이블 내용은 그대로 복사되었는데 제약 조건은?
1 | @/home/oracle/search_cons.sql | cs |
입력 : emp2
똑같이 복사가 안 된다
NOT NULL 만 복사 됨
복사하는 방법은 없다
NOT NULL만 무조건 복사됨
나머지 제약조건은 직접 추가해야한다
제약 조건 추가
1 2 | ALTER TABLE emp2 ADD CONSTRAINT e2_eid_pk PRIMARY KEY ( employee_id ); | cs |
잘 선언 되었는지 확인
1 | @/home/oracle/search_cons.sql | cs |
입력 : emp2
1 2 3 | ALTER TABLE emp2 MODIFY department_id CONSTRAINT e2_did_fk REFERENCES departments (departement_id); | cs |
1 | @/home/oarcle/search_cons.sql | cs |
입력 : emp2
1 2 3 4 | ALTER TABLE emp2 ADD CONSTRAINT e2_mid_fk FOREIGN KEY (manager_id) REFERENCES emp2 (employee_id); 부모테이블 부모컬럼명 | cs |
1 | @/home/oarcle/search_cons.sql | cs |
입력 : emp2
'부산 ITWILL 학원 실습 > ORACLE' 카테고리의 다른 글
[SQL 활용] 8. 데이터정의어(DDL) - 테이블 삭제 - 테이블 삭제 명령어 (0) | 2018.08.09 |
---|---|
[SQL 활용] 8. 데이터정의어(DDL) - 테이블 수정 - 테이블의 제약조건 삭제 (0) | 2018.08.09 |
[SQL 활용] 8. 데이터정의어(DDL) - 테이블 수정 - 테이블의 기존 컬럼 삭제 (0) | 2018.08.09 |
[SQL 활용] 8. 데이터정의어(DDL) - 테이블 수정 - 테이블의 기존 컬럼 수정 (0) | 2018.08.09 |
[SQL 활용] 8. 데이터정의어(DDL) - 테이블 수정 - 테이블에 컬럼 추가 (0) | 2018.08.09 |