728x90
★ ANSI-SQL 자료형(Oracle 자료형(***))
- 1. 숫자형
- 정수, 실수
- 1-1. number
- (유효자리) 38자리 이하의 숫자를 표현하는 자료형
- 12345678901234567890123456789012345678
- 1*10^-130 ~ 9.9999*10^125
- 5~22byte
- 사용방법
- 1. number
- 정수, 실수
- 1*10^-130 ~ 9.9999*10^125
- 2. number(precision)
- 정수만 저장(반올림)
- precision : 저장 가능한 자릿수
- 3. number(precision, scale)
- 정수, 실수
- precision : 저장 가능한 자릿수
- scale : 소수 이하 자릿수(%.1f)
- 1. number
- 2. 문자형
- 문자, 문자열 구분 X
- 1. char
- 고정 자릿수 문자열 > 컬럼(공간)의 크기가 불변
- char(n) : n자리 문자열, n(바이트)
- n 최소 크기 : 1바이트
- n 최대 크기 : 2000바이트
- char(10) : 'ABC' > 'ABC '
- 주어진 공간을 데이터가 채우지 못하면 나머지 공간을 스페이스로 채운다.
- 2. nchar
- national > 오라클 인코딩과 상관없이 해당 컬럼을 UTF-16 동작하게 만들어라. > 즉, 영어한글 구분없이 한글자 2BYTE씩 잡아먹음
- 고정 자릿수 문자열 > 컬럼(공간)의 크기가 불변
- nchar(n) : n자리 문자열, n(문자수)
- n 최소 크기 : 1글자
- n 최대 크기 : 1000글자
- 3. varchar2
- 가변 자릿수 문자열 > 컬럼(공간)의 크기가 가변
- varchar(n) : n자리 문자열, n(바이트)
- n 최소 크기 : 1바이트
- n 최대 크기 : 4000바이트
- varchar2(10) > 'ABC' > 'ABC'
- 주어진 공간을 데이터가 채우지 못하면 나머지 공간을 버린다.
- 즉, 데이터의 크기가 공간의 크기가 된다.
- 현재 사용하는 것은 이것만 거의 사용함.
- 4. nvarchar2
- national > 오라클 인코딩과 상관없이 해당 컬럼을 UTF-16 동작하게 만들어라. > 즉, 영어한글 구분없이 한글자 2BYTE씩 잡아먹음
- 가변 자릿수 문자열 > 컬럼(공간)의 크기가 가변
- nvarchar(n) : n자리 문자열, n(문자수)
- n 최소 크기 : 1글자
- n 최대 크기 : 2000글자
- 5. clob, nclob
- 대용량 텍스트
- 128TB
- 잘 사용 안함. 참조형
- 3. 날짜시간형
- date
- 년월일시분초
- 기원전 4712년 1월 1일 ~ 9999년 12월 31일
- timestamp
- 년월일시분초 + 밀리초 + 나노초
- interval
- 시간
- 틱값 저장용
- date
- 4. 이진 데이터형
- 비 텍스트 데이터
- 이미지, 영상, 파일 등..
- ex) 게시판(첨부파일), 회원가입(사진) > 문자열로 저장(파일명만 저장) > hong.png
★ 데이터 추가하기 ( 1. num 연습)
- tblType 이라는 테이블에 값 넣기
insert into tblType (num) values (100); -- 정수 데이터 > 정수형 리터럴
insert into tblType (num) values (200);
insert into tblType (num) values (300);
insert into tblType (num) values (3.14); -- 실수형 리터럴
insert into tblType (num) values (-100); -- 음수
-- ORA-01438: value larger than specified precision allowed for this column : 자료형의 범위를 넘어갔다 > 오버플로우
insert into tblType (num) values (1000); --오버플로우 발생
insert into tblType (num) values (9.9); -- 반올림
insert into tblType (num) values (999);
insert into tblType (num) values (-999);
insert into tblType (num) values (3.14);
insert into tblType (num) values (3.142);
insert into tblType (num) values (3.149);
insert into tblType (num) values (33.14);
insert into tblType (num) values (333.14); -- 총 자릿수 5자리가 되기 때문에 4자리를 넘어서 들어가지 않음.
insert into tblType (num) values (333.1); --소수 이하 2자리를 고정으로 했기때문에 들어가지 않음.
insert into tblType (num) values (99.99);
insert into tblType (num) values (-99.99);
insert into tblType (num) values (100); -- 들어가지 않음.
★ 데이터 추가하기 ( 2. 문자형 연습)
- tblType 이라는 테이블에 값 넣기
insert into tblType (txt1) values ('A'); --문자열 리터럴
insert into tblType (txt1) values ("A"); -- X
--10바이트 > 몇 글자? > 오라클 인코딩? > UTF-8 > 영어(1), 한글(3)
insert into tblType (txt1) values ('ABCDEFGHIJ');
--ORA-12899 : value too large for column "HR"."TBLTYPE"."TXT1" (actual: 11, maxinum:10)
insert into tblType (txt1) values ('ABCDEFGHIJK');
insert into tblType (txt1) values ('가');
insert into tblType (txt1) values ('가나다');
insert into tblType (txt1) values ('가나다라'); -- 에러발생
insert into tblType (txt1, txt2) values ('ABC', 'ABC');
728x90
'데이터베이스' 카테고리의 다른 글
DATABASE STEP 4 - Operator (0) | 2023.03.16 |
---|---|
DATABASE STEP 3 - select (0) | 2023.03.16 |
DATABASE STEP 1 - DB정의 (0) | 2023.03.15 |
데이터베이스 - Window에서 세팅하기 (0) | 2023.03.15 |
데이터베이스 - MAC 에서 오라클 셋팅하기 (0) | 2023.03.14 |