데이터베이스

제약조건 - PRIMARY KEY

야생늑대 2022. 4. 20. 18:59
반응형
  • PRIMARY KEY는  UNIQUE와 NOT NULL 제약조건의 특성을 모두 가지는 제약조건이다.
  • NULL이 아니면 중복되지 않는 유일한 값을 가지므로 사원번호 같이 테이블의 각 행을 식별하는데 활용한다.
  • 테이블마다 단 하나밖에 지정할 수 없다.
  • 특정 열을 PRIMARY KEY로 지정하면 해당 열에는 자동으로 인덱스가 만들어진다.
  • 주민번호 같은 예민한 개인 정보를 의미하는 데이터는 지정하지않는다.

 

테이블 생성시 제약조건 지정하기

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

테이블 생성 시 제약 조건 이름 직접 지정하기

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)
    );

※ PRIMARY KEY 제약조건은 특정 테이블의 데이터를 식별하는 유일한 값이기 때문에 SELECT문을 통한 검색에 자주

   활용된다. 

 

인덱스가 자동생성 되었는지 확인해보기

※ PRIMARY KEY 도 다른 제약조건처럼 ALTER문의 MODIFY, RENAME, DROP를 통해 추가,수정,이름 변경, 삭제 등의 수행이 가능하지만 PRIMARY KEY 제약조건은 테이블 데이터를 식별하는 유일한 값을 뜻하므로 일반적으로 테이블의 생성 시점에 확정되는 경우가 대부분이다.

 

CREATE문에서 제약 조건을 지정하는 다른 방식

  • 열을 정의한 후에 별도로 제약조건을 정의한다.
  • 아웃오브라인(out-of-line) 또는 테이블 레벨(table-level) 제약 조건 정의 라고한다.
  • NOT NULL 제약조건을 제외한 제약조건 지정이 가능하다.
CREATE TABLE TABLE_NAME(
	COL1 VARCHAR2(20),
    COL2 VARCHAR2(20),
    COL3 VARCHAR2(20),
    PRIMARY KEY (COL1),           -- 이름 지정하지 않음(COL1열에 PRIMARY KEY 지정)
    CONSTRAINT CONSTRAINT_NAME UNIQUE (COL2) -- 이름 지정함( COL2열에 UNIQUE 지정)
반응형

'데이터베이스' 카테고리의 다른 글

제약조건 - UNIQUE  (0) 2022.04.20
제약조건 - FOREIGN KEY와 CHECK,DEFAULT  (0) 2022.04.20
제약조건 - NOT NULL  (0) 2022.04.20
제약조건  (0) 2022.04.20
데이터베이스 객체 - 뷰  (0) 2022.04.19