Oracle/SQL

시간타입과 NOTNULL

psys 2020. 6. 2. 19:15
728x90

시간타입

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'이라하면 오류 

 

CONSTRAINT_TYPE은 'U'로 UNIQUE 

2020/06/02 - [분류 전체보기] - [ORACLE] 오라클 제약조건 SQL (ALL_CONSTRAINTS에 관한 설명 첨부)

 

[ORACLE] 오라클 제약조건 SQL

모든 제약조건 조회 SELECT * FROM all_constraints; 제약조건 이름 알때 SELECT * FROM all_constraints WHERE constraint_name = 'SYS_C00475'; 특정 테이블의 제약조건 조회 SELECT * FROM all_constraints WHE..

yeon960.tistory.com

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