본문 바로가기

Study/Oracle

[oracle] create

* APT_INFO, DONG_INFO, HO_INFO TABLE 만들기

Q. 한 테이블에 PRIMARY KEY를 2개 써도되나요?

A. 한테이블에 하나의 PRIMARY KEY 만 있을수 있고, PRIMARY KEY는 여러개의 필드로 구성가능.

 

* Key 생성은 우선 빼고, 테이블만 생성하고 나서 키 다시 생성해주는게 보통.

ex) ALTER TABLE NCCJST2011.METRO_STATN_PATH ADD (

  CONSTRAINT XPK_METRO_STATN_PATH

 PRIMARY KEY

 (INTERCD, METROCD)

ex) Alter table MyForeignTable Add constraint MyForegin_FK_MyTable

Foreign Key (FieldA, FieldB) References MyTable(FieldA, FieldB)

 

- CREATE 정의

create table APT_INFO (

    apt_code number(10, 0),

    name varchar2(50) NOT NULL,

    addr varchar2(100) NOT NULL,

    dong_count number(10, 0)

);

 

create table DONG_INFO (

    apt_code number(10, 0),

    dong_code number(10, 0) NULL,

    name varchar2(50) NOT NULL,

    ho_count number(10, 0)

);

 

create table HO_INFO (

    apt_code number(10, 0),

    dong_code number(10, 0),

    ho_code number(10, 0) NULL,

    name varchar2(50) NOT NULL,

    area varchar2(50) NOT NULL,

    price number(30, 0)

);

 

 

- KEY 정의

alter table SCOTT.APT_INFO ADD (CONSTRAINT PK_APT_INFO PRIMARY KEY(apt_code));

 

alter table SCOTT.DONG_INFO ADD (CONSTRAINT PK_DONG_INFO PRIMARY KEY(dong_code));

alter table SCOTT.DONG_INFO ADD (CONSTRAINT FK_DONG_INFO FOREIGN KEY(apt_code) REFERENCES SCOTT.APT_INFO(apt_code));

 

alter table SCOTT.HO_INFO ADD (CONSTRAINT PK_HO_INFO PRIMARY KEY(ho_code));

alter table SCOTT.HO_INFO ADD (CONSTRAINT FK_HO_INFO FOREIGN KEY(apt_code, dong_code) REFERENCESSCOTT.APT_INFO(apt_code));

alter table SCOTT.HO_INFO ADD (CONSTRAINT FK_HO_INFO_DONG FOREIGN KEY(dong_code) REFERENCESSCOTT.DONG_INFO(dong_code));