CHECK
칼럼에서 허용 가능한 데이터의 범위나 조건을 정의하여 설정된 값만 허용함
설정된 이외의 값이 들어오면 오류 메시지와 함께 명령을 수행하지 못하게 함
CHECK 제약 조건의 수는 제한이 없다
CURRVAL, NEXTVAL, ROWNUM 같은 의사 칼럼 SYSDATE, USER와 같은 함수에는 사용 못함
사용법
CREATE TABLE [테이블명](
[칼럼명] [데이터 형식] CONSTRAINT [제약조건명] CHECK (조건)
);
예제
CREATE TABLE EMP_SECOND(
ENO NUMBER(4) CONSTRAINT EMP_SECOND_ENO_PK PRIMARY KEY,
ENAME VARCHAR2(10),
SALARY NUMBER(4) CONSTRAINT EMP_SECOND_SALARY_MIN CHECK (SALARY >0));
CREATE TABLE CUSTOMER_2 (
ID VARCHAR2(20) NOT NULL CHECK(ID NOT IN(' ')) PRIMARY KEY,
PWD VARCHAR2(20) NOT NULL CHECK(PWD NOT IN(' ')),
NAME VARCHAR2(20) NOT NULL CHECK(NAME NOT IN(' ')),
PHONE VARCHAR2(30),
ADDRESS VARCHAR2(100));
오류 보고 : ORA-02290: 체크 제약조건(TEST.SYS_C007324)이 위배되었습니다
INSERT INTO customer_2 VALUES (' ',' ',' ','010-111-1111','SEOUL');
DEFAULT
어떤 값도 입력하지 않았을 때 DEFAULT 값이 입력됨
예제
CREATE TABLE EMP_SECOND(
ENO NUMBER(4) CONSTRAINT EMP_SECOND_ENO_PK PRIMARY KEY,
ENAME VARCHAR2(10),
SALARY NUMBER(7,2) DEFAULT 1000);
INSERT INTO EMP_SECOND (ENO,ENAME) VALUES (1111,'앤디');
오류 : ORA-00947: 값의 수가 충분하지 않습니다
INSERT INTO EMP_SECOND VALUES (1111,'앤디');
칼럼명을 명시하지 않을 경우 모든 데이터를 입력해야 한다
'SQL > ORACLE SQL' 카테고리의 다른 글
PL/SQL : 변수 선언 (0) | 2022.11.11 |
---|---|
VIEW : 뷰 (0) | 2022.11.10 |
제약 조건 : FOREIGN KEY (외래 키 또는 참조 키) (0) | 2022.11.09 |
제약 조건 : PRIMARY KEY (기본 키) (0) | 2022.11.09 |
제약 조건 : NOT NULL, UNIQUE (0) | 2022.11.09 |