[ SQLD ] DDL(Data Definition Language) 제약조건 조회, 추가, 삭제
안녕하세요, 차세대 IT리더가 되고픈 비공자입니다.
오늘은 프로젝트를 만들기 위해서 테이블을 생성
하는 중, 제약조건이 뭐뭐 걸었는지 확인을 하기 위해서
제약조건 확인을 하는 방법에 대해서 공부를 해보려고
합니다.
[ 오늘의 목차 ]
1. 제약조건 확인하기
2. 제약조건 추가하기
3. 제약조건 삭제하기
1. 제약조건 확인하기

테이블을 생성하는 중
name already used by an existing constraint
( 이미 사용 중인 제약조건명입니다. )
오류가 발생해서 제약조건을 무엇을 사용하고 있는지
확인해 볼 필요가 있었습니다.
[ 제약조건 확인 쿼리 형식 ]
SELECT * FROM ALL_CONSTRAINTS WHERE OWNER = '스키마명';
( 모든 제약조건 VIEW에서 전체 조회 )

이럴 경우, CONSTRAINT_NAME 즉, 제약조건명이
SYS_C00~ 이런 식으로 되어있는 것은 제약조건명을
명시하지 않은 상태에서 제약조건을 생성을 하여서
RDBMS에서 임의로 지정해 준 것이라고 생각하시면 됩니다.
[ 제약조건 확인 쿼리 응용 ]

여러분은 해당 제약조건명을 지정해주시면
어떤 제약조건인지 확인이 가능해서
꼭 응용해서 사용해 보시면 좋을 것 같습니다.
위와 같이 어느 테이블의 제약조건이 무엇이 있는지
확인이 가능합니다.
2. 제약조건 추가하기
제약조건 추가할 대상 테이블 : 강의등록기본

이번엔 제약조건을 테이블을 생성할 때
추가하지 않고, 테이블 생성 후, 제약조건을
추가하는 방식에 대해서 공부를 해보겠습니다.
[ PK제약조건 추가하기 ]
형식 : ALTER TABLE 테이블명
ADD CONSTRAINT
제약조건명 PRIMARY KEY(컬럼명)

테이블을 생성 후, PK제약조건을 추가하는 쿼리
이면서 ALTER 명령어의 경우
DDL(Data Definition Language)입니다.
[ FK제약조건 추가하기 ]
형식 : ALTER TABLE 테이블명
ADD CONSTRAINT
제약조건명 FOREIGN KEY(컬럼명)
REFERENCES 부모테이블(컬럼명);

대상(자식) 테이블은 : TC_CLASS_REG_BAS
대상(부모) 테이블은 : TC_CUST_INFO
참조받은 컬럼 : CUST_NO, CUST_ID
3. 제약조건 삭제하기
형식 : ALTER TABLE 테이블명
DROP CONSTRAINT 제약조건명
( 해당 테이블의 제약조건을 삭제한다 )
[ 제약조건 삭제 응용 ]

위와 같이 TC_CLASS_PK( PK제약조건 )
삭제했습니다.
[ 정리 ]
제약조건 조회 :
-> SELECT * FROM ALL_CONSTRAINTS;
제약조건 추가 :
-> ADD CONSTRAINT
제약조건 삭제 :
-> DROP CONSTRAINT
위와 같은 내용으로 제약조건을
조회, 추가, 삭제를 할 수 있습니다.
감사합니다.