ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • database/oracle
    01 . 오라클 데이터베이스 - 제약조건
    2020. 11. 24. 23:11
    728x90

    제약조건 [constraint]

    : 컬럼에 대한 속성 또는 컬럼의 데이터를 제한하는 조건

     

    1. not null

    -컬럼에 반드시 데이터를 입력해야하는 제약조건

    -데이터가 삽입되지 않을시 오류 발생 

    create table test1(
    	not_col varchar2(10) not null,
        basic_col varchar2(10)
    );
    
    insert into test1 values ('','A'); -- null 값 입력으로 인한 오류 발생 

     

    2. unique

    -중복되는 값을 허용하지 않는 조건

    -동일한 값이 컬럼에 들어갈 시 오류 발생 

    create table test2(
    	unique_col varchar2(10) unique,
        basic_col varchar2(10) 
    );
    
    insert into test2 values ('A','aa'); --정상
    insert into test2 values ('A','aa'); --중복값으로 인한 오류 발생

     

    3. primary key

    -unique와 마찬가지로 중복값을 허용하지 않는 점과 동시에 not null 이 합쳐진 제약조건

    -기본적으로 테이블에서 데이터를 식별할 때 사용되는 키로 테이블에 하나만 생성할 수 있음 

    create table test3(
    	pri_col varchar2(10) primary key,
        basic_col varchar2(10) 
    );
    
    insert into test3 values ('A','aa'); --정상
    insert into test3 values ('A','aa'); --중복값으로 인한 오류 발생 

     

    4. foreign key 

    -다른 테이블을 참조하는 제약조건으로 데이터간의 무결성을 위한 제약조건

    -foreign key를 사용하기 위해서는 참조하는 테이블을 먼저 생성해야 하며 참조하는 데이터는 기본키로 만들어져 있어야 함 

    create table test4(
        pri_col varchar(10),
        constraint pri_col foreign key(pri_col)
        references test3(pri_col)
    );
    
    insert into test4 values ('B'); --오류
    insert into test4 values ('A'); --정상 

     

    5. check

    -조건을 통해 테이블에 입력되는 데이터를 체크하여 조건에 맞지 않는 데이터가 삽입될 때 오류 발생 

    create table test5(
    	gender varchar2(10) check ( gender in ('male', 'female'))
    );
    
    insert into test5 values ('m'); --오류
    insert into test5 values ('female'); -- 정상 

    1. default 

    -제약조건은 아니지만 컬럼 특성중 하나

    -default 설정시 따로 데이터 입력을 하지 않아도 default 값이 들어감 

    create table test6(
    	basic_col1 varchar2(10) not null,
        basic_col2 varchar2(10) null,
        default_col date default sysdate
    );
    
    insert into test6 (basic_col1, basic_col2) values ('A','aa'); 
    
    728x90

    'database > oracle' 카테고리의 다른 글

    [Oracle] 오라클 유저 생성하기  (1) 2023.10.14
    [Oracle] Oracle 다운로드 및 다운로드 확인  (0) 2023.10.14
Designed by Tistory.