Database/Oracle

[ORACLE] 테이블 생성 CREATE 문 예 (제약조건)

펌킨고구마 2022. 1. 15. 21:34
728x90
반응형
CREATE TABLE TEST_TABLE(
	test_seq number(8) ,
	test_id varchar2(10) NOT NULL UNIQUE,
	create_date date DEFAULT SYSDATE ,
	test_contents varchar2(13),
	gender char(1) ,  
    CONSTRAINT PK_TEST_TABLE PRIMARY KEY (test_seq),
    CONSTRAINT TEST_GENDER_CHECK CHECK(GENDER IN ('F','M'))
    
);


CREATE TABLE TEST (
seq_test NUMBER(8) PRIMARY KEY,
test_0 NUMBER(8) NOT NULL UNIQUE,
test_1 VARCHAR2(10) ,
test_2 VARCHAR2(20) NOT NULL,
test_3 CHAR(1) CHECK ( test_3 IN ('Y','N')),
test_4 DATE DEFAULT sysdate,
test_5 NUMBER(8) UNIQUE,

CONSTRAINT fk_test5_fk foreign key(test_5) REFERENCES TEST_TABLE(test_seq)



);
CREATE TABLE FOREIGN_TABLE ( -- FOREIGN KEY 사용 시 필요 테이블
  VALUE5 VARCHAR2(10) PRIMARY KEY
);

CREATE TABLE TEST (

  VALUE1 VARCHAR2(10) NOT NULL,    -- NULL 값 들어오지 못하게 함
  VALUE2 VARCHAR2(10) UNIQUE,      -- NULL 허용, 중복 불가
  VALUE3 VARCHAR2(10) PRIMARY KEY, -- NULL, 중복 불가
  VALUE4 VARCHAR2(10) REFERENCES FOREIGN_TABLE (VALUE5),
  -- FOREIGN KEY는 다른 테이블에서 PRIMARY KEY에 해당하고 해당 PRIMARY KEY 컬럼에 있는 값만 사용가능
  VALUE5 VARCHAR2(10) CHECK(VALUE5 BETWEEN 1 AND 10), -- CHECK : 1과 10 사이의 값만 들어올 수 있음
  VALUE6 VARCHAR2(10) CHECK(VALUE6 IN ('A', 'B')),    -- CHECK : A 혹은 B만 들어올 수 있음
  VALUE7 VARCHAR2(10) DEFAULT '홍길동'                -- NULL 값이 들어올 경우 홍길동을 기본 삽입
    
);
728x90
반응형
LIST