다연이네

[days07] 오라클 data type(자료형) 본문

Oracle

[days07] 오라클 data type(자료형)

 다연  2020. 11. 6. 19:24
반응형

data type(자료형) : [컬럼]이 저장되는 데이터 유형 

 

1) CHAR [ (size [ BYTE ¦ CHAR ] ) ]    []는 생략가능

길이가 고정되어 있음

char name;   ==  char(1 byte) name; char(1)이러면 바이트 생략된거

CREATE table tbl_char
(
  aa char, --char(1 byte)
  bb char(3), --char(3 byte) 홍길동 저장 안됨...
  cc char(3 char)
);

insert into tbl_char(aa,bb,cc) values ('a','b','c');--가능
insert into tbl_char(aa,bb,cc) values ('aa','bb','cc');
--ORA-12899: value too large for column "SCOTT"."TBL_CHAR"."AA" (actual: 2, maximum: 1)
insert into tbl_char(aa,bb,cc) values ('a','bb','cc');--가능
insert into tbl_char(aa,bb,cc) values ('a','홍길동','cc');
--ORA-12899: value too large for column "SCOTT"."TBL_CHAR"."BB" (actual: 9, maximum: 3)
insert into tbl_char(aa,bb,cc) values ('a','kbs','jtbc');
--ORA-12899: value too large for column "SCOTT"."TBL_CHAR"."CC" (actual: 4, maximum: 3)
insert into tbl_char(aa,bb,cc) values ('a','kbs','헝길동'); --가능
insert into tbl_char(aa,bb,cc) values ('a','ks','헝길동'); --가능
rollback; --이거하면 다시 원상태로 돌림 (데이터 추가된거 사라짐) 취소
commit; --이거까지 해야지 실제 행이 추가된 것

2)NCHAR

- 오직 unicode 데이터타입에만 사용된다. n(유니코드) + char(고정길이)  
- 알파벳이든 한글이든 한문자 취급,
- nchar == nchar(1 문자)
- nchar(10) 10문자

CREATE table tbl_nchar
(
  aa nchar, --char(1 문자)
  bb nchar(3) --char(3 문자)
);


insert into tbl_nchar values ('a', 'b'); --순서대로 집어넣을거면 (aa,bb)생략 가능
insert into tbl_nchar values ('홍', '홍길동'); --가능 
insert into tbl_nchar values ('a', 'abc'); --가능
commit;

char, nchar 최대크기 2000byte

 

3. VARCHAR2

- var + char2 가변길이 4000byte
- varchar2(10) == varchar2(10 byte) 황보영웅 (불가,12byte)


4. NVARCHAR2

- n+varchar2 유니코드 가변길이 4000byte
- varchar2(10) --무조건 10문자


5. VARCHAR

- 현재는 varchar2와 동일, varchar2의 별칭(시노님)
- 앞으로는 다르게 사용될 예정

 

6. LONG

- JAVA에서는 8byte 정수형이지만  Oracle에서는 2GB의 문자형을 의미한다.

 

7. NUMBER [ ( p [ ,s ] ) ]

- p:정밀도1~38 s:크기(소수점자리수 -84~127) []생략가능
- 만약 NUMBER(4,5)처럼 scale이 precision보다 크다면, 이는 첫자리에 0이 놓이게 된다.
- NUMBER(p)는 NUMBER(p,0)와 같은 의미이다.
- NUMBER로만 나타내는 것은 precision과 scale을 최대값으로 지정하는 것이다.

 

 123.89 num(38,127) -> 123.89
 123.89 num(3) -> 124
 123.89 num(5,2) -> 123.89 

 

반응형

'Oracle' 카테고리의 다른 글

[days07] 달력 그리기  (0) 2020.11.06
[days07] level 의사컬럼  (0) 2020.11.06
[days07] SQL - RANK, ROLL UP  (0) 2020.11.06
[days06] SQL function 이어서  (0) 2020.11.05
[days05] 집계함수  (0) 2020.11.04
Comments