//Data Types
1. 문자 형식 > varchar2(+char)
2. 숫자 형식 > number
3 날짜 형식 > date
(+ 이진 데이터 형식)
//문자(Character) 형식
- ' (홑따옴표)를 사용하여 표현
- 문자, 문자열
- char + String > String
a. char
- 고정 자릿수 문자열 > 컬럼(공간)의 크기 블변
- char(n): n자리까지 문자열(byte 기준)
- n 최소 크기 : 1바이트
- n 최대 크기 : 2000바이트
- 주어진 공간을 데이터가 채우지 못하면 나머지 공간을 스페이스로 채운다.
- 절대적인 속도 자체는 뺘르댜.
b. nchar
-national의 약자 > 오라클 인코딩과 상관 없이 해당 컬럼을 UTF-16 동작하게
- 고정 자릿수 문자열 > 컬럼(공간)의 크기 블변
- char(n): n자리까지 문자열(글자수)
- n 최소 크기 : 1글자
- n 최대 크기 : 1000글자
c. varchar2☆
- 가변 자릿수 문자열 > 컬럼(공간)의 크기 가변
- varchar2(n): n자리까지 문자열(byte 기준)
- n 최소 크기 : 1바이트
- n 최대 크기 : 4000바이트
- 주어진 공간을 데이터가 채우지 못하면 나머지 공간을 버린다.
> 데이터의 크기가 공간의 크기가 된다.
d. nvarchar2
- national의 약자 > 오라클 인코딩과 상관 없이 해당 컬럼을 UTF-16 동작하게
- 가변 자릿수 문자열 > 컬럼(공간)의 크기 가변
- char(n): n자리까지 문자열(글자수)
- n 최소 크기 : 1글자
- n 최대 크기 : 2000글자
e. clob, nclob (롭)
- 대용량 텍스트
- 128TB까지 저장 가능
- 참조형 > 잘 사용 x
- CHAR[(size [BYTE | CHAR)] : 고정 길이 > 비효율적
- VARCHAR2(size [BYTE | CHAR]) : 가변 길이 > 최대값 설정, 빈 공간은 구분자로 구분하여 반환
- 전세계 언어 사용 가능 (national의 n)
~ NCHAR[(size)]
~ NVARCHAR2(size)
- 큰 데이터를 다루는 경우
~ LONG : 최대 2GB > 요즘 잘 안 씀
~ CLOB : 대용량 텍스트 데이터 타입(최대 4GB)
~ NCLOB: 대용량 텍스트 유니코드 데이터 타입(최대 4GB)
CREATE TABLE MEMBER
(
ID VARCHAR2(50),
PWD VARCHAR2(50),
NAME VARCHAR2(50),
GENDER NCHAR(2), --남성, 여성
AGE NUMBER,
BIRTHDAY CHAR(10), --2000-01-02
PHONE CHAR(13), --010-1234-2345
REGDATE DATE
);
// 숫자(Numeric) 형식
- 정수, 실수
- (유효자리) 38자리 이하의 숫자를 표현하는 자료형
- 12345678901234567890123456789012345678
- 1x10^-130 ~ 9.9999x10^125
- 5~22byte
a. number
- 정수, 실수
- 1x10^-130 ~ 9.9999x10^125
b. number(prrecision)
- 정수만 저장 가능
- 실수는 반올림하여 정수로 저장됨
- precision : 저장 가능한 자릿수(눈에 보이는 자릿수)
- -999 ~ +999
c. number(precision, scale)
- 정수, 실수
- precision : 저장 가능한 자릿수(※scale도 포함함)
- scale: 소수이하 자릿수(%.1f -> scale: 1) > 반올림
> 고정 확보(소수점 이하를 다 채우지 않더라도 해당 scale만큼 자리를 차지함.
- NUMBER[ (p [, s]) ] -- p : 1~38 / s : -84~127
~ NUMBER(4) : 최대 4자로 이루어진 숫자
~ NUMBER(6,2) : 소수점 2자리를 포함하는 최대 6자리의 숫자(소수점 셋째 자리에서 반올림)
~ NUMBER(6,-2) : 소수점 -2자리에서 반올림하는 최대 6자리의 숫자
~ NUMBER: NUMBER(38,*) > Maximum 값인 38이 들어감
~ NUMBER(*,5) : 소수점5자리를 포함하는 최대 38자리의 숫자
CREATE TABLE MEMBER
(
ID VARCHAR2(50),
PWD VARCHAR2(50),
NAME VARCHAR2(50),
GENDER NCHAR(2), --남성, 여성
AGE NUMBER(3),
BIRTHDAY CHAR(10), --2000-01-02
PHONE CHAR(13), --010-1234-2345
REGDATE DATE
);
// 날짜(Date) 형식
a. date
- 년월일시분초
- 기원전 4712년 1월 1일 ~ 9999년 12월 31일
b. timestamp
-년월일시분초 + 밀리초 + 나노초
c. interval
- 시간
- 틱값 저장용
- 년-월-일까지 표현
~ DATE
- 시-분-초까지 표현
~ TIMESTAMP : NLS_TIMESTAMP_FORMAT 파라미터에 명시된 값을 따름.
~ TIMESTAMP WITH TIME ZONE : NLS_TIMESTAMP_TZ_FORMAT 파라미터에 명시된 값을 따름.
~ TIMESTAMP WITH LOCAL TIME ZONE : NLS_TIMESTAMP_FORMAT 파라미터에 명시된 값을 따름.
select sysdate from dual;
// 이진 데이터 형식
- 비 텍스트 데이터
- 이미지, 영상, 파일 등..
~ 게시판(첨부파일), 푀원가입(사진) > 문자열로 저장(파일명만 저장) > hong.png
'데이터베이스(DB) > Oracle' 카테고리의 다른 글
[Oracle] 데이터 조작(DML) (0) | 2023.02.10 |
---|---|
[Oracle] 테이블 수정 (0) | 2023.02.08 |
[Oracle] 테이블 생성 (0) | 2023.02.07 |
[Oracle] 데이터베이스 생성 (0) | 2023.02.07 |
[Oracle] 설치 및 환경설정, 정의 (0) | 2023.02.07 |