티스토리 뷰
Goal
- Oracle 데이터 형식 중 문자 형식의 종류에 대해 알아본다
1. Oracle Built-in Data Types
- Character : 'nEWlec' (작은 따옴표로 표현)
- Numeric : 38, 3.85
- Data : '2013-02-09'
- TIMESTAM : '2013-06-03 10.38.29.00000' (시 분 초 까지 표현)
2. Character 형식
1) CHAR
- [(size [BYTE | CHAR])]
- size = 1byte
- CHAR(3) : 3가지의 1byte를 가진 문자를 '고정 길이'로 저장
- 선언할 때 크기가 고정되어 있으므로 CHAR(50)을 선언하고 3BYTES만 입력했을 때는 47bytes의 공간 낭비가 발생함.
2) VARCHAR2
- 가변길이 데이터에 최적화
- VARCHAR2(500)으로 선언하고 3BYTES개만 넣어도 나머지 사용되지 않는 497BYTES의 데이터는 반환됨.
- VARCHAR2(size [BYTE | CHAR])
*고정길이 데이터와 가변길이 데이터를 나눠서 쓰는이유
- 모든 데이터 형식을 가변길이 데이터로 선언하면, 플렉서블하다고 생각할 수 있지만, 가변길이 데이터로 선언할 경우, 검색속도가 고정길이 데이터에 비해 느리다는 단점이 있다.
- 가변길이 데이터의 저장 원리는 데이터 구분자는 것인데 (구분자 뒤의 값들을 반환), 검색시에는 구분자를 거쳐야 하기 때문에 검색 속도가 느리다. 하지만 고정길이 데이터는 길이 만큼 곱해주면 되기 때문에 검색 속도가 빠르다.
3) NCHAR[(size)]
- national + CHAR : 다양한 언어 지원, 문자 하나를 표현할 때 더 많은 BYTE를 사용
- size => 2 or 3 bytes
- The numer of bytes can be up to two times size for AL16UTF16 encoding and three times size for UTF8 encoding.
* 한글 바이트
- 한 글자에 영문자는 1byte, 한글은 3byte사용 (알파벳제외 다른 nation문자들도 3byte)
- 따라서 한글을 입력받는 변수에 CHAR데이터 타입을 선언할 경우 2글자를 입력받고 싶으면 CHAR(2)가 아닌 CHAR(6)을 선언하거나 변수에 CHAR 데이터 타입을 입력할 때 CHAR(2 CHAR)와 같이 선언 또는 NCHAR를 선언(가장 바람직한 방법)
* CHAR(size CHAR) : 해당 size의 글자수를 받을 수 있다(크기 제한 없이).
4) NVARCHAR2(size)
- national + VARCHAR2
3. MAX SIZE
- 스탠다드 : 4000 bytes or characters if MAX_STRING_SIZE (즉, 4000바이트 까지 최대로 선언가능)
- 확장(EXTENDED) : 32767 bytes or characters if MAX_STRING_SIZE
- NCHAR, NVARCHAR는 기본 크기사이즈(2 ~ 3 bytes)에 맞추어 선언한다 (NCHAR는 최대 2000바이트 선언가능)
4. LOGN, CLOB, NCLOB
- 대용량의 문자 데이터를 다루기 위해 사용되는 데이터 형식
1) LONG
- CLOB의 사용으로 최근에는 많이 사용되지 않음
- 한 테이블에 1개의 속성에만 사용할 수 있음
- 최대 2Gbyte까지 저장 가능
- Variable-length character strings
- containing up to 2 gigabytes -1, or 2(31) - 1 bytes
2) CLOB
- 대용량 텍스트 데이터 타입(최대 4Gbyte)
3) NCLOB
- 대용량 텍스트 유니코드 데이터 타입(최대 4Gbyte(에서 유니코드 데이터 타입 2 ~ 3bytes로 나눈다))
- 참고 자료
* 오라클 주석
'--'로 표현
ex) --1234 -> 1234가 화면에 나타남.
* SQL DEVELOPER 고해상도 모니터에서 사용하기
'DataBase > 오라클 SQL' 카테고리의 다른 글
트랜잭션 (DATA BASE) (0) | 2020.04.27 |
---|---|
데이터 조작하기 DML (0) | 2020.04.27 |
테이블 수정하기 (ALTER TABLE) (0) | 2020.04.27 |
오라클 데이터형식 #2 (숫자 / 날짜 형식) (0) | 2020.04.27 |
데이터베이스란? (0) | 2020.04.24 |
- 20200804
- likelion
- 20200424
- 20200330
- 20200319
- 20200622
- 20200317
- 20200413
- 20200420
- 20200427
- 20200403
- 20200415
- 20200503
- 20200425
- 20200624
- 20200429
- 20200510
- 20200423
- 20200512
- 20201204
- 백준
- chapter8
- 20200504
- 20200417
- 20200428
- 20200502
- 20200406
- 생활코딩리눅스
- chapter7
- 20200421
- Total
- Today
- Yesterday