[    Oracle DB 대표적으로 많이 쓰이는 데이터 타입 정리    ]



1. 문자


-    char(n)

: n Byte 고정 크기

-    varchar2(n)

: 최대 n Byte 크기지만 사용한 Byte에 맞게끔 저장됨 


ex) varchar2(20) 으로 20Byte로 생성했는데, "남자" 라고 2글자 4Byte만 저장했다면 4Byte로 저장되게 됨.


될 수 있으면 char보단 varchar2 사용이 권장된다.


참고)

Mysql에서는 varchar2가 아닌 => varchar(n) 을 사용하고, 긴 문자열을 다룰 때 text 라는 데이터 타입도 자주 사용됩니다.


2. 숫자

-    Number(p,s) 

숫자에서 가장 대표적으로 사용되는 데이터 타입입니다. 정수, 실수 다 사용 가능하며 p는 유효 숫자 개수, s는 소수점 이하 자리수를 가리킵니다.

ex) Number(5,1) 로 지정하고 데이터 234.15를 insert하면 5개 숫자가 유효하고 소수 첫번째 자리까지 표현함으로 반올림되어 234.2가 저장됩니다. 

만약, Number(3.1)로 해놧는데 234.15를 저장하면 소수점 이하 첫째 자리까지해서 234.2가 되더라도 총 4개의 숫자를 저장해야하는데 p를 3으로 입력했기 때문에

오류가 발생합니다.

p와 s는 생략 가능합니다.


참고)

Mysql에서는 Number 속성이 없습니다.

숫자를 사용할 때는

- int(n)

- bigInt(n)

- float 

등을 사용합니다. 이때 주의할 점은 bigInt의 경우 자바에서 String 타입으로 받아야 한다는 점입니다.!!


3. 날짜

-    Date

: 연/월/일 시/분/ 까지 표현할 수 있는 많이 사용되는 날짜 타입입니다.

default 값으로 현재 날짜를 입력하고자 할 때는 sysDate를 사용해 입력합니다.

ex) insert into table명(regdate) values( sysdate );

-    Timestamp

: Date가 시/분/초 까지만 표현 가능하다면 timestamp는 연/월/일 시/분/초 + ms(밀리세컨드) 까지 더 정밀하게 표현할 수 있습니다.

default 값으로 현재 날짜를 입력하고자 할 때는 systimestamp를 사용합니다.

ex) insert into table명(컬럼명) values( systimestamp );


참고)

Mysql에서는 now()를 이용해서 현재 시간을 입력할 수 있습니다.


4. NULL

: 값이 없음을 의미하는 데이터 타입입니다. 보통 테이블 생성시 컬럼에 별도로 설정하지 않으면 Null값을 허용하도록 default로 만들어지게 됩니다.

 따라서 insert시 컬럼에 값을 입력하지 않으면 Null이 들어가게 됩니다. 하지만

Null을 허용하고 싶지 않다면

제한자 객체인 "Not Null"을 사용하면 됩니다.

ex) regdate Not Null default systimestamp;


5. 대용량 데이터(LOB : Large Object Block)

: 대용량 데이터를 담기 위해 사용되는 타입입니다.

- 문자 : => CBLOB 을 사용합니다.

- 그 외(이미지,동영상 등) => BLOB을 사용합니다.


+ Recent posts