2021년 11월 6일 토요일

오라클 테이블 기본 키 제약조건(주키, Primary Key, PK)

 

오라클 테이블 기본 키 제약조건(주키, Primary Key, PK)

 

테이블에서 레코드를 고유하게 구별하는 키로서, 프라이머리 키primary key 또는 기본 키, PKprimary key라고 부릅니다. 테이블당 하나만 가질 수 있으며 기본 키로 지정된 컬럼은 자동으로 NOT NULL과 고유 키uniaue key 제약조건을 가집니다. 


오라클에서는 PK가 정의되면 별도의 저장공간에 PK 이름으로 PK 컬럼에 대해 Unique Key Index를 생성합니다.  PK 이름은 별도로 지정할 수도 있고 지정하지 않을 경우 오라클에서 내부적으로 SYS_CXXXX 형태로 자동 부여합니다.


테이블의 생성하면서 기본키 제약조건을 컬럼레벨, 테이블 레벨로 지정하고 생성된 기본키 제약조건을 딕셔너리 뷰를 통해 확인하는 실습을 해보겠습니다.

실습


컬럼 레벨로 기본키를 지정하고 이를 딕셔너리 뷰를 통해 확인 합니다.


id number, name varchar2(100) 두개의 컬럼을 가지는 T2 테이블을 생성하면서 id 컬럼을 기본 키(Primary Key)로 컬럼 레벨 제약조건으로 정의합니다. 생성한 기본 키 제약조건을 딕셔너리뷰를 통해 확인합시다.


CREATE TABLE t2 (

    ID        NUMBER CONSTRAINT pk_t2 PRIMARY KEY,

    NAME VARCHAR2(100)

);


SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME 

FROM    USER_CONSTRAINTS

WHERE TABLE_NAME = 'T2';


<실행결과>

 

CONSTRAINT_NAME

CONSTRAINT_TYPE

TABLE_NAME

1

PK_T2

P

T2


제약조건의 타입에 대한 정의는 다음과 같습니다.


  • C : CHECK 제약조건

  • P : Primary Key

  • U : Unique Key

  • R : Foreign Key(외래 키, 참조무결성)


실습


기본키를 테이블 레벨로 지정해 보겠습니다.


T2 테이블을 생성하면서 id 컬럼의 기본 키를 테이블 레벨 제약조건으로 정의합니다. 


CREATE TABLE t2 (

    ID        NUMBER ,

    NAME VARCHAR2(20),

    CONSTRAINT pk_t2 PRIMARY KEY (ID)

);


<실행결과>

Table T2이(가) 생성되었습니다.


실습


2개 이상의 컬럼에 대해 기본키를 지정하기 위해서는 테이블 레벨로만 정의해야 합니다.


name, tel 컬럼으로 T2 테이블을 생성하면서 name, tel 두 컬럼을 복합 키 형태의 기본 키로 지정하세요. 참고로 테이블 레벨에서 정의할 수 있습니다.


CREATE TABLE t2 (

    NAME  VARCHAR2(100) PRIMARY KEY ,

    TEL      VARCHAR2(20) PRIMARY KEY 

);


<실행결과>

ORA-02260: 테이블에는 하나의 기본 키만 가질 수 있습니다.


CREATE TABLE T2 (

    NAME  VARCHAR2(100) ,

    TEL      VARCHAR2(20) ,

    CONSTRAINT PK_T2 PRIMARY KEY (NAME, TEL)

);


<실행결과>

Table T2이(가) 생성되었습니다.

 

#기본키, #테이블기본키, #PrimaryKey​, #무결성제약조건, #오라클, #오라클강좌

 

댓글 없음:

댓글 쓰기

(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...