DBA가 되고 싶은 비공자/SQLD 자격증

[ SQLD ] DDL(Data Definition Language) 제약조건 조회, 추가, 삭제

차세대 IT 리더 비공자 2024. 6. 26. 00:31

 
안녕하세요, 차세대 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
 
위와 같은 내용으로 제약조건을
조회, 추가, 삭제를 할 수 있습니다.
감사합니다.