2020040906 / [7] Check 제약 조건 설정
- ORACLE
- 2020. 4. 30.
- [7] Check 제약 조건 설정
정의 : 저장 가능한 데이터 값의 범위나 조건을 지정하여 설정한 값만을 허용한다
- 입력 값이 조건에 맞지 않으면 DB 에서 받지 않는다. 즉 오류를 일으킵니다
- 입력 값의 범위를 지정 할 수 있다
- CHECK은 입력할수 있는 값의 범위를 설정해 주는것입니다
- ALTER TABLE [테이블명] ADD CONSTRAINT [제약조건명] [제약조건](범위)
실습
1) 급여 컬럼을 생성하고 값은 500 ~ 5000 사이의 값만 저장 가능하다
2) 성별 컬럼은 gender로 정의하고 'M' / 'F' 둘 중 하나의 값만 저장 가능하다
create table emp07(
empno number(4) constraint emp07_empno_pk primary key,
ename varchar2(20) constraint emp07_ename_nn not null,
sal number(7, 2) constraint emp07_sal_ck check(sal between 500 and 5000),
gender varchar2(1) constraint emp07_gender_ck check(gender in ('M', 'F')) -- in 명령어가 or 역할을 한다
);
insert into emp07 values(1234, '홍길동', 6000, 'M'); -- error
명령의 125 행에서 시작하는 중 오류 발생 -
insert into emp07 values(1234, '홍길동', 6000, 'M') -- error 500~5000 사이의 값만 기입 가능하다
오류 보고 -
ORA-02290: check constraint (SCOTT.EMP07_SAL_CK) violated
insert into emp07 values(1234, '홍길동', 3500, 'M'); -- 성공
insert into emp07 values(1235, '홍길동', 3000, 'A'); -- error
명령의 127 행에서 시작하는 중 오류 발생 -
insert into emp07 values(1235, '홍길동', 3000, 'A') -- M과F만 기입 가능하다
오류 보고 -
ORA-02290: check constraint (SCOTT.EMP07_GENDER_CK) violated
insert into emp07 values(1234, '홍길동', 3500, 'm'); -- error
명령의 128 행에서 시작하는 중 오류 발생 -
insert into emp07 values(1234, '홍길동', 3500, 'm') -- 문자열에서는 영문자의 대문자와 소문자를 구별한다
오류 보고 -
ORA-02290: check constraint (SCOTT.EMP07_GENDER_CK) violated
'ORACLE' 카테고리의 다른 글
-- 2020041307 / 뷰 with read only (0) | 2020.04.30 |
---|---|
2020041306 / 뷰(view) 옵션 whit check option (0) | 2020.04.30 |
2020041005 / sub-query(서브 쿼리) (0) | 2020.04.30 |
2020040905 / Foreign key(외래키) 제약 조건 (0) | 2020.04.30 |
2020041004 / [3] ansi join (0) | 2020.04.30 |