SQL 제약조건 조회 - SQL jeyagjogeon johoe

USER_CONS_COLUMNS = 컬럼에 할당된 제약조건 확인

USER_CONTRAINTS = 유저가 소유한 모든 제약조건을 확인

SQL 제약조건 조회 - SQL jeyagjogeon johoe

ALTER TABLE 테이블명 DISABLE CONSTRAINT 컬럼명

SQL 제약조건 조회 - SQL jeyagjogeon johoe

ALTER TABLE 테이블명 ENABLE CONSTRAINT 컬럼명

SQL 제약조건 조회 - SQL jeyagjogeon johoe

NOVALIDATE / VALIDATE - 실행한 시점을 기준으로 제약조건을 적용 할지안할지 결정 

SQL 제약조건 조회 - SQL jeyagjogeon johoe

 

ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건;

SQL 제약조건 조회 - SQL jeyagjogeon johoe

SQL 제약조건 조회 - SQL jeyagjogeon johoe

제약조건의 추가 및 제거

테이블을 생성한 후 제약조건을 추가하거나 제거할 때 활용

point) 제약조건 이름을 지정해 둬야 추가나 제거가 쉬움

추가

ALTER TABLE 테이블명 ADD [CONSTRAINT 제약조건명 ] 제약조건 ( 속성명 )

제거

ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명  

primary key 추가

alter table 테이블명 add constraint primary key (컬럼명);

foreign key 추가

alter table 테이블명 add constraint 제약조건이름 foreign key (컬럼명) references 부모테이블명 (pk컬럼명) on delete cascade / on update cascade;

not null 추가

alter table 테이블명 modify 컬럼명 자료형 constraint 제약조건명 not null;

제약조건 삭제

alter table 테이블명 drop constraint 제약조건명;

제약조건 삭제 (foreign key)

alter table 테이블명 foreign key 제약조건명;

SQL 제약조건 조회 - SQL jeyagjogeon johoe

1. 제약조건(Constraints)의 개념

제약조건이란, SQL 테이블에 문제되는/결함있는 데이터가 입력되지 않도록 컬럼별로 미리 지정해 둔 조건입니다. DESC 명령어를 통해서 변수별로 null이 가능한지 조회가 가능하고, GUI를 이용해 테이블의 제약조건을 모아서 볼 수도 있습니다.

SQL 제약조건 조회 - SQL jeyagjogeon johoe

Oracle SQL / DESC 명령어로 조회한 테이블 구조

SQL 제약조건 조회 - SQL jeyagjogeon johoe

Oracle SQL / GUI 를 통해서 본 테이블의 제약조건

제약조건은 변수별로 설정되어 있습니다.

- Null이면 안 된다.

- 중복되지 않는 고유의 값이어야 한다.

- 다른 테이블로부터 참조해야 한다 / 참조할 데이터가 없으면 입력할 수 없다

- 미리 설정한 조건을 만족해야 한다

...

이렇게 컬럼에 설정된 조건을 제약조건(Constraints)이라고 합니다. 제약조건은 테이블을 생성할 때 함께 설정할 수 있고, 추후에 ALTER 등의 명령어를 사용하여 바꿀 수도 있습니다.

* 이미 데이터가 포함되어 있는 상황에서 제약조건을 함부로 바꾸기 어려우므로 사전에 테이블 설계를 잘 해 두는 편이 좋습니다.

2. 제약조건(Constraints)의 유형과 그 특성

Oracle SQL Developer에서 주로 쓰이는 제약조건의 종류와 그 특성을 요약하면 다음과 같습니다.

Constraints

NULL 허용 여부

데이터 중복 허용여부

특징

NOT NULL

NULL 불가

중복 가능

UNIQUE

NULL 가능

중복 불가

(* NULL끼리는 중복으로 간주하지 않음)

PRIMARY KEY(고유키)

NULL 불가

중복 불가

지정한 열은 유일한 값을 반드시 가져야 함

테이블 당 1개만 지정가능

FOREIGN KEY(외래키)

다른 테이블 열을 참조하여

해당 테이블에 존재하는 값만 입력 가능

다른 테이블의 고유키(PRIMARY KEY)를 참조

CHECK

설정한 조건식을 만족하는 데이터만 입력가능

조건식을 만족하지 않는 데이터는 입력이 거부됨

#오라클 #SQL #오라클SQL #Oracle #OracleSQLDeveloper #constraint #constraints #제약조건