시간타입
date_1의 타입은 date이기에 간단한 년월일형태로 출력이 되고
date_2의 타입은 timestamp이기 때문에 ms단위까지 출력이된다.
create table ex2_4 (
date_1 date ,
date_2 timestamp
);
insert into ex2_4 (date_1, date_2) values (sysdate, sysdate);
date_1은 date타입이라 년월일로 간단히 나오는데 사용자가 직접 hh, mi, ss의 형식을 지정해주면 형식대로 출력이된다.
select to_char (date_1, 'yyyy/mm/dd hh24:mi:ss'), date_2
from ex2_4;
NOT NULL
create table ex2_5(
col1 varchar2(20),
col2 varchar2(20) not null
);
insert into ex2_5 (col1, col2) values ('abc','abc');
insert into ex2_5 (col1) values ('abc'); --에러
insert into ex2_5 (col2) values ('abc');
오류 보고 -
ORA-01400: cannot insert NULL into ("JAVA"."EX2_8"."COL2")
inserrtinsert into ex2_5 (col1) values ('abc');시
위와같은 오류보고가 나타나는데 이는 col2가 not null이라 필수로 값을 가져야하는데 삽입할때 col2를 삽입을 해주지 않았기 때문이다.
create table ex2_6(
col1 varchar2(20) ,
col2 varchar2(20) not null,
col3 varchar2(20) unique
);
insert into ex2_6 (col1, col2, col3) values ('abc','abc','abc');
insert into ex2_6 (col1, col2, col3) values ('abc','abc','abc'); -- 에러
오류 보고 -
ORA-00001: unique constraint (JAVA.SYS_C007176) violated
col3의 값은 unique로 고유한 값이어야하는데 또 같은 문자를 삽입하려해서 에러가 나타난다.
EX2_6_1의 제약조건
create table ex2_6_1(
col1 varchar2(20) ,
col2 varchar2(20) ,
constraints uq_ex2_6_col2 unique (col2) --unique조건을 col2에 주겠다.
);
select *
from ALL_CONSTRAINTS
where TABLE_NAME = 'EX2_6_1'; -- 'ex2_6_1'이라하면 오류
2020/06/02 - [분류 전체보기] - [ORACLE] 오라클 제약조건 SQL (ALL_CONSTRAINTS에 관한 설명 첨부)
create table ex2_7 (
col1 varchar2(10) primary key,
col2 number
);
insert into ex2_7 (col1, col2) values('abc',1);
insert into ex2_7 (col1, col2) values('abc',2); -- 에러
insert into ex2_7 (col1, col2) values(null,2); -- 에러
insert into ex2_7 (col1, col2) values('abc',2);
오류 보고 -
ORA-00001: unique constraint (JAVA.SYS_C007178) violated
unique값 오류로 중복된 데이터가 삽입되면 발생하는 오류이다.
오류 보고 -
ORA-01400: cannot insert NULL into ("JAVA"."EX2_7"."COL1")
null값이 되면 안 되는 곳이 null이 되어 발생하는 오류이다.
create table ex2_8 (
col1 varchar2(10),
col2 number ,
constraints pk_ex2_9 primary key(col1, col2)
);
insert into ex2_8(col1, col2) values ('abc',0);
insert into ex2_8(col1, col2) values ('abc',1);
insert into ex2_8(col1, col2) values ('abc',1); -- unique 오류
insert into ex2_8(col1, col2) values ('abc',null ); --null 오류
'Oracle > SQL' 카테고리의 다른 글
DML(Data Manipulation Language, 데이터조작어) (0) | 2020.06.03 |
---|---|
제약조건 (0) | 2020.06.02 |
오라클 제약조건 SQL (0) | 2020.06.02 |
숫자데이터타입 (0) | 2020.06.02 |
테이블생성 (0) | 2020.06.02 |