(오라클) 제약 조건

2021. 12. 22. 17:40오라클(Oracle) 데이터 베이스

제약 조건 테이블의 특정 열에 지정->
제약 조건에 부합하지 않으면 데이터를 저장항ㄹ 수 없다. 수정, 삭제도 영향을 받는다.

ex)회원 가입 시 , 아이디, 이름 등은 중복이 안되고 생년월일 등은 빈값(null)로 처리할 수 있음
NOT NULL 지정한 열에 빈값(null)을 허용하지 않음. 빈값(null)을 제외한 제이터의 중복은 허용함
UNIQUE 지정한 열이 유일한 값을 가져야 함.
중복될 수 없음
단, 빈값(null)값은 중복에서 제외됨
PRIMARY 지정한 열이 유일한 값이면서 빈값(null)을 허용하지 않음
테이블에 하나만 지정 가능
FOREIGN KEY 다른 테이블의 열을 참조하며 존재하는 값만 입력할 수 있음
CHECK 설정한 조건식을 만족하는 데이터만 입력 가능

 

 

*테이블 생성하기

 

 

NOT NULL: 테이블을 생성할 때 NOT NULL 설정하기

CREATE TABLE TABLE_NOTNULL(
LOGIN_ID 	VARCHAR2(20) NOT NULL,
LOGIN_PWD 	VARCHAR2(20) NOT NULL,
TEL        	VARCHAR2(20)
);

NOT NULL: 제약 조건 이름 직접 지정 (CONSTRAINT키워드)

CREATE TABLE TABLE_NOTNULL2(
LOGIN_ID 	VARCHAR2(20) CONSTRAINT TBLNN2_LGNID_NN NOT NULL,
LOGIN_PWD 	VARCHAR2(20) CONSTRAINT TBLNN2_LGNPD_NN NOT NULL,
TEL       	VARCHAR2(20)
);

UNIQUE: 테이블 생성할 때 UNIQUE 제약 조건 지정하기

CREATE TABLE TABLE_UNIQUE(
LOGIN_ID 	VARCHAR2(20) UNIQUE,
LOGIN_PWD 	VARCHAR2(20) NOT NULL,
TEL       	VARCHAR2(20)
);

UNIQUE: 테이블 생성할 때 UNIQUE 제약 조건 지정하기(CONSTRAINT키워드)

CREATE TABLE TABLE_UNIQUE2(
LOGIN_ID 	VARCHAR2(20) CONSTRAINT TBLUNQ2_LGNID_UNQ UNIQUE
LOGIN PWD 	VARCHAR2(20) CONSTRAINT TBLUNQ2-LGNPW_NN NOT NULL;
TEL        	VARCHAR2(20)
);

테이블을 생성할 때 PRIMARY설정

CREATE TABLE TABLE_PK(
LOGIN_ID 	VARCHAR2(20) PRIMARY KEY,
LOGIN_PWD	VARCHAR2(20) NOT NULL,
TEL      	VARCHAR2(20)
);

PRIMARY: 테이블 생성할 때 PRIMARY 제약 조건 지정하기(CONSTRAINT키워드)

CREATE TABLE TABLE_PK2(
LOGIN_ID 	VARCHAR2(20) CONSTRAINT TBLPK2_LGNID_PK PRIMARY KEY,
LOGIN_PWD 	VARCHAR2(20) CONSTRAINT TBLPK2_LGNPW_NN NOT NULL,
TEL       	VARCHAR2(20)
);

 

 

 

*삽입하기

 

 

UNIQUE: TABLE_UNIQUE 테이블에 데이터 추가하기

INSERT INTO TABLE_UNIQUE(LOGIN_ID, LOGIN_PWD, TEL)
VALUES('TEST_ID_01', 'PWD01', '010-1234-5678');
INSERT INTO TABLE_UNIQUE (LOGIN_ID, LOGIN_PWD, TEL)
VALUES ('TEST_ID_02', 'PWD01', '010-1234-5678');

PRIMARY: 테이블에 데이터 추가하기

INSERT INTO TABLE_PK(LOGIN_ID,LOGIN_PWD, TEL)
VALUES ('EST_ID_01', 'PWD01', '010-1234-5678');

 

 

 

*제약 조건 추가하기

 

 

UNIQUE 제약 조건이 있는 테이블에 Tel까지 제약 조건 추가

ALTER TABLE TABLE_UNIQUE
MODIFY(TEL UNIQUE);

UNIQUE 제약 조건이 있는 테이블에 제약 조건 이름 지정하여 추가

 

ALTER TABLE TABLE_NOTNULL2
MODIFY(TEL CONSTRAINT TBLNN_TEL_NN NOT NULL);