[Oracle] 제약조건

2010. 4. 28. 16:26Database/Oracle

테이블 생성시 제약조건을 사용할수 있다.

1.제약조건이란?
-데이터의 유효성을 확보하기 위해 컬럼에 제한을 거는 조건

 

2.제약조건의 종류
(1)PRIMARY KEY =중복을 허용하지 않으면서 NULL값을 허용하지 않는 제약 조건

 

(2)유일키(UNIQUE )-중복을 허용하지 않는 제약조건
ALTER TABLE 테이블이름 ADD CONSTRAINT 제약이름 UNIQUE(칼럼이름)
ALTER TABLE CUSTOMER ADD CONSTRAINT CK_CUSTOMER UNIQUE(IDX)

 

(3)NOT NULL -널값을 허용하지 않는 제약조건

ALTER TABLE 테이블이름 MODIFY(칼럼 자료형() NOT NULL);
예) ALTER TABLE CUSTOMER MODIFY(PHONE VARCHAR(20) NOT NULL);

 

(4)DEFAULT -기본값을 지정할수 있는 제약조건
ALTER TABLE CUSTOMER MODIFY (PHONE VARCHAR(20) DEFAULT '018');

 

(5)FOREIGN KEY -외래키 제약조건 :부모 테이블의 PRIMARY KEY 값만을 허용


(6)CHECK -원하는 데이터만을 입력 받도록 제한 할수 있는 제약 조건
 예- 성별 컬럼에 '남' 과 '여'라는 문자만을 입력받고 싶을때
 
ALTER TABLE 테아블이름 ADD CONSTRAINT 제약이름 CHECK(칼럼이름 IN('값1','값2'))


제약 조건 삭제
ALTER TABLE 테이블이름 DROP CONSTRAINT 제약이름;
예)ALTER TABLE CUSTOMER DROP CONSTRAINT PK_CUSTOMER;

 

GRANT CREATE SEQUENCE  TO USER0318 권한부여

create sequence seq_테이블명  시퀸스 생성
increment by 1
start with 1;


SELECT SEQ_MEMBER.NEXTVAL FROM DUAL; 다음 시퀸스값 확인!

 

테이블 제약조건 하면서 생성 하기 예제
CREATE TABLE CUSTOMER2(
IDX NUMBER PRIMARY KEY,
CUSTOMERID VARCHAR(20) UNIQUE,
GENDER CHAR(2) CHECK(GENDER IN ('남','여')),
PHONE VARCJAR(20) DEFAULT '016' NOT NULL
);


테이블 카피
CREATE TABLE EMP
AS
SELECT * FROM EMP_COPY

레코드 복사
INSERT INTO EMP
SELECT * FROM EMP_COPY

'Database > Oracle' 카테고리의 다른 글

[Oracle] 1. 유저 권한 grant 하기 2. synonym 하기  (0) 2010.04.28
[Oracle] 오라클 칼럼 추가 , 삭제 예제  (0) 2010.04.28
[Oracle] 쿼리연습4  (0) 2010.04.28
[Oracle] 쿼리연습3  (0) 2010.04.28
[Oracle] 쿼리연습2  (0) 2010.04.28