NOT NULL : NULL 값이 입력되지 못하게 하는 조건
CREATE TABLE NULL_TABLE(
FIELD1 VARCHAR2(20) NOT NULL,
FIELD2 VARCHAR2(20) NULL,
FIELD3 VARCHAR2(20)
);
INSERT INTO NULL_TABLE (FIELD1,FIELD2) VALUES ('AA','BB'); -- 정상적으로 삽입됩니다.
INSERT INTO NULL_TABLE (FIELD2,FIELD3) VALUES ('CC','DD'); -- 에러가 발생합니다.(FIELD1은 값이 반드시 들어가야합니다.)
UNIQUE : 중복된 값이 입력되지 못하게 하는 조건 ( NULL 값을 허용합니다. )
CREATE TABLE UNIQUE_TABLE(
FIELD1 VARCHAR2(20) UNIQUE NOT NULL,
FIELD2 VARCHAR2(20) UNIQUE,
FIELD3 VARCHAR2(20) NOT NULL,
FIELD4 VARCHAR2(20) NOT NULL,
CONSTRAINTS TEMP_UNIQUE UNIQUE(FIELD3,FIELD4) --FIELD 3,4 번을 합한 값이 중복이 되서는 안된다는 의미입니다.
);
INSERT INTO UNIQUE_TABLE(FIELD1,FIELD2,FIELD3,FIELD4) -- 정상적으로 삽입됩니다.
VALUES ('AA','BB','CC','DD');
INSERT INTO UNIQUE_TABLE(FIELD1,FIELD2,FIELD3,FIELD4)
VALUES ('AA2','BB2','CC2','DD2');
UPDATE UNIQUE_TABLE SET FIELD1 = 'AA' WHERE FIELD2 ='BB2'; -- 에러가 발생합니다.(FIELD1 에 이미 AA라는 값이 있기 때문에 발생하게됩니다.)
INSERT INTO UNIQUE_TABLE(FIELD1,FIELD2,FIELD3,FIELD4) -- 정상적으로 삽입됩니다.(FIELD2 는 NULL을 허용합니다.)
VALUES ('AA3','','CC3','DD3');
INSERT INTO UNIQUE_TABLE(FIELD1,FIELD2,FIELD3,FIELD4)
VALUES ('AA4','','CC4','DD4');
PRIMARY KEY : NOT NULL + UNIQUE 와 같습니다.
테이블 생성 시 PK 등록
CREATE TABLE PRIMARY_TABLE(
FIELD1 NUMBER(10) PRIMARY KEY, -- 인라인 방식 ( 오라클에서 자동으로 생성되며 SYS_XXX..로생성됩니다)
FIELD2 VARCHAR2(20)
);
CREATE TABLE PRIMARY_TABLE(
FIELD1 NUMBER(10) ,
FIELD2 VARCHAR2(20)
CONSTRAINTS FIELD1_PK PRIMARY KEY(FIELD1); -- 아웃라인 방식
);
테이블 생성 후 PK 생성
ALTER TABLE PRIMARY_TABLE ADD CONSTRAINTS "기본키 이름" PRIMARY KEY (필드명);
FOREIGN KEY : (외래키 - 참조키) 다른 테이블의 필드(컬럼)을 참조해서 무결성을 검사하는 조건
부모테이블의 키값이 변경되었을 경우, 자식 테이블에 참조키가 맞지 않을경우 에러가 발생합니다.
부모테이블의 컬럼은 참조키 , 자식 테이블의 컬럼은 외래키라고 부릅니다.
테이블 생성 시 FK 등록
CREATE TABLE FOREIGN_KEY(
FIELD1 CONSTRAINTS DEPT_FK
REFERENCES DEPARTMENTS (DEPARTMENT_ID) -- 인라인 방식 : FIELD1은 부모테이블의 DEPARTMENT_ID 에 반드시 존재해야합니다
);
CREATE TABLE FOREIGN_KEY(
FIELD1
CONSTRAINTS DEPT_FK
FOREIGN KEY(FIELD1)
REFERENCES DEPARTMENTS (DEPARTMENT_ID) -- 아웃라인 방식 : FIELD1은 부모테이블의 DEPARTMENT_ID 에 반드시 존재해야합니다
);
테이블 생성 후 FK 생성
ALTER TABLE FOREIGN_KEY ADD CONSTRAINTS DEPT_FK
FOREIGN KEY(FIELD1)
REFERENCES DEPARTMENTS (DEPARTMENT_ID);
CHECK : 주어진 조건에 맞는 값만 허용하는 조건
CREATE TAB;E CHECK_TABLE(
GENDER VARCHAR2(10) NOT NULL
CONSTRAINTS CHECK_SEX CHECK (GENDER IN('M','F'))
);
'DataBase > Oracle' 카테고리의 다른 글
13. Oracle Sequence (0) | 2020.03.30 |
---|---|
12. Oracle View (0) | 2020.03.30 |
10. Oracle DML(Insert, Update, Delete) (0) | 2020.03.26 |
9. Oracle DDL(Table 정의) (0) | 2020.03.26 |
8. Oracle 서브쿼리 (0) | 2020.03.26 |