2022년 3월 7일 월요일

오라클 기본 4 - 테이블편

 1. 기본키 설정

CREATE TABLE userTBL 

( userID  CHAR(8) NOT NULL PRIMARY KEY, --userTBL의 기본키

  userName  NVARCHAR2(10) NOT NULL,

  birthYear NUMBER(4) NOT NULL

);

CREATE TABLE buyTBL 

(  idNum NUMBER(8)  NOT NULL  PRIMARY KEY, --buyTBL 의 기본키

   userID  CHAR(8)  NOT NULL, 

   prodName NCHAR(6)  NOT NULL

);


2. 외래키 설정

CREATE TABLE buyTBL 

(  idNum NUMBER(8)  NOT NULL  PRIMARY KEY,

   userID  CHAR(8)  NOT NULL, 

   , FOREIGN KEY(userID) REFERENCES userTBL(userID) --buyTBL 의 외래키 지정

);

또는

ALTER TABLE buyTBL

ADD CONSTRAINT FK_userTBL_buyTBL --외래키 이름 지정

FOREIGN KEY (userID) --현재  테이블 외래키

REFERENCES userTBL (userID) -- 연결할 기본 테이블 기본키

ON DELETE CASCADE ; --기본 테이블 삭제시 현재 테이블도 삭제


3. UNIQUE 제약 조건 -중복되지 않은 유일한 값이지만 NULL 허용

CREATE TABLE userTBL 

(  userID  CHAR(8) NOT NULL ,

  userName  NVARCHAR2(10) NOT NULL,

  birthYear NUMBER(4) NOT NULL,  

  , CONSTRAINT AK_email UNIQUE (email) --이메일은 유일해야 하지만 null일 수도 있다

);

또는

ALTER TABLE USERTBL

    ADD CONSTRAINT AK_EMAIL UNIQUE (EMAIL);


4. CHECK 제약 조건 - 입력되는 데이터 점검 기능

ALTER TABLE userTbl

ADD CONSTRAINT CK_height

CHECK   (height >= 0) ; -- 키는 0이상이어야 함.

ALTER TABLE userTbl

ADD CONSTRAINT CK_mobile1

CHECK  (mobile1 IN ('010','011','016','017','018','019')); -- 휴대폰 국번 체크


5. DEFAULT 정의 -  값 입력이 없으면 기본으로 입력되는 기본 값  

CREATE TABLE userTBL 

( userID  CHAR(8) NOT NULL PRIMARY KEY ,

  userName  NVARCHAR2(10) NOT NULL ,

  birthYear NUMBER(4) DEFAULT -1 NOT NULL --기본 -1 입력

  addr NCHAR(2) DEFAULT '서울' NOT NULL , --기본 서울 입력

  mobile1 CHAR(3) NULL,

  mobile2 CHAR(8) NULL,

  height NUMBER(3) DEFAULT 170 NULL, --기본 170 입력

  mDate    DATE  NULL 

);

또는

ALTER TABLE userTBL

MODIFY birthYear DEFAULT -1; --기본 -1 입력

ALTER TABLE userTBL

MODIFY addr DEFAULT '서울'; --기본 서울 입력

ALTER TABLE userTBL

MODIFY height DEFAULT 170;  --기본 170 입력


댓글 없음:

댓글 쓰기