728x90
제약조건
CREATE TABLE(
...
, CONSTRAINTS 제약조건명 CHECK (컬럼명 in (조건1, 조건2)
)
create table ex2_9 (
name varchar2(30) not null,
age number(3),
gender char(1),
constraints ck_ex2_9_age check (age between 1 and 150),
constraints ck_ex2_9_gender check (gender in ('F','M'))
);
constraints로 나이가 1에서 150사이, 성별이 F, M만 들어올 수 있도록 설정했다.
insert into ex2_9 (name, age, gender) values('malja', 150, 'G'); --CK_EX2_9_GENDER
insert into ex2_9 (name, age, gender) values('malja', 200, 'F'); --CK_EX2_9_AGE
insert into ex2_9 (name, age, gender) values('malja', 10, 'F'); --OK
첫번째 라인은 성별에 설정하지 않은 G가 들어가있기에 나는 오류
두번째 라인은 나이에 설정한 범위를 초과하는 값이 들어가있기에 나는 오류
세번째 라인은 제약조건을 만족해 오류가 나지 않고 들어갔다.
CREATE TABLE ex2_10(
name varchar2(30) not null,
point number(5) default 0,
gender char(1) default 'F',
reg_date date default sysdate,
constraints ck_ex2_10_gender check (gender in('F', 'M'))
);
insert into ex2_10 (name) values ('sunja');
insert into ex2_10 (name, point) values ('nolja', 250);
insert into ex2_10 (name, point, gender, reg_date) values('nolja', 250,'M', '1988-08-03');
select * from ex2_10;
'Oracle > SQL' 카테고리의 다른 글
수식연산자 (0) | 2020.06.03 |
---|---|
DML(Data Manipulation Language, 데이터조작어) (0) | 2020.06.03 |
시간타입과 NOTNULL (0) | 2020.06.02 |
오라클 제약조건 SQL (0) | 2020.06.02 |
숫자데이터타입 (0) | 2020.06.02 |