파게로그

테이블 생성, Oracle DB 자료형 본문

콤퓨타 왕기초/Oracle DB

테이블 생성, Oracle DB 자료형

파게 2021. 2. 22. 19:05

CREATE

Oracle data type을 이용해야 한다.

CREATE TABLE MEMBER (
    ID          VARCHAR2(50),
    PWD         VARCHAR2(50),
    NAME        VARCHAR2(50),
    GENDER      VARCHAR2(50),
    AGE         NUMBER,
    BIRTHDAY    VARCHAR2(50),
    PHONE       VARCHAR2(50),
    REGDATE     DATE
);

 

세미콜론 위치에서 Ctrl + Enter로 해당 문장 실행 가능 또는 드래그로 범위 블록 실행 가능


Oracle SQL Data Types

• ANSI, DB2, and SQL/DS Data Types (표준 또는 다른 DB와의 호환)

User-defined types

Oracle-supplied types

Data type comparision rules

Data conversion

 Oracle Built-in Data Types

   · Character: 'tiStory', 'ABC', '5714'

   · Numeric: 6712, 3.14, 3.14F

   · Date: '2021-02-22'

   · TIMESTAMP: '2021-02-22 18.20.14.00000'


Character 형식

 

CHAR

· CHAR [(size [BYTE|CHAR])]

· size : 1 byte per 1 character

· ex: CHAR(50)

· 배열처럼 주소 계산해서 바로 데이터를 찾을 수 있다.

 

VARCHAR2 (Variable Character)

· VARCHAR2(size [BYTE | CHAR])

· 데이터를 구분자로 구분하기에 O(n)

· eg. VARCHAR2(100) (가변. 최대 100글자. 나머지 공간은 반환)

 

NCHAR (National Character)

· NCHAR [(size)}

· size : 2 or 3 bytes per 1 character

· 바이트 수는 AL16UTF16 인코딩 사이즈의 2배, UTF8 인코딩 사이즈의 3배까지 커질 수 있다

· eg. SELECT LENGTHB('한글') FROM DUAL; -- 6

DROP TABLE MEMBER;

CREATE TABLE MEMBER (
	ID			VARCHAR2(50),
    PWD			VARCHAR2(50),
    NAME		VARCHAR2(50),
    GENDER		CHAR(2), --남성, 여성
    AGE			NUMBER,
    BIRTHDAY	CHAR(10), --2000-01-23
    PHONE		CHAR(13), --010-1234-5678
    REGDATE		DATE
);

INSERT INTO MEMBER(GENDER) VALUES('남성');




명령의 14 행에서 시작하는 중 오류 발생 -
INSERT INTO MEMBER(GENDER) VALUES('남성')
오류 보고 -
ORA-12899: "BERRY"."MEMBER"."GENDER" 열에 대한 값이 너무 큼(실제: 6, 최대값: 2)

CHAR(6)을 하든지..

CHAR(2 CHAR): 2바이트 X   2글자가 됨. -> '남자' 가능 -> A;32ITF16 -- 3바이트 x 2 = 6바이트

그러나 바람직하지않다.

NCHAR(2)을 쓰는 것이 바람직. -> AL16UTF16-- 1글자를 2바이트로 표현 가능

 

NVARCHAR2

· NVARCHAR2(size)

· max size

   4000 bytes or characters if MAX_STRING_SIZE = STANDARD

   32767 bytes or characters if MAX_STRING_SIZE = EXTANDED

 

LONG

· 가변 길이 문자열

· 2GB-1 또는 2^31-1 바이트까지 포함

· 테이블에서 하나의 컬럼에만 LONG을 사용할 수 있음

 

CLOB

· 대용량 텍스트 데이터 타입(최대 4GB)

 

NCLOB

· 대용량 텍스트 유니코드 데이터 타입(최대 4GB)


Numeric 형식

 

 

NUMBER

· NUMBER [ (p [, s]) ]

· 1~22bytes

· precision p: 1~38

· scale s: -84~127

 

NUMBER(3) 최대 3자로 이루어진 숫자

NUMBER(5, 3) 소수점 3자리를 포함하는 최대 5자리 숫자(소수점 셋째자리에서 반올림)

NUMBER(5, -3) 소수점 -3자리에서 반올림하는 최대 5자리 숫자

NUMBER   NUMBER(38, *)

NUMBER(*, 5)    NUMBER(38, 5)


Date 형식 (기본적으로 ms 단위 숫자)

 

DATE

· 4712 B.C. ~ 9999 A.D.

· ex. 01-JAN-99

 

TIMESTAMP

NLS_TIMESTAMP_FORMAT 파라미터에 명시된 값을 따름

 

TIMESTAMP WITH ZONE

NLS_TIMESTAMP_TZ_FORMAT 파라미터에 명시된 값을 따름

 

TIMESTAMP WITH LOCAL TIME ZONE

NLS_TIMESTAMP_FORMAT 파라미터에 명시된 값을 따름

 

SELECT * FROM NLS_DATABASE_PARAMETERS


LOB 형식

 

CLOB

· 문자형 대용량 객체 고정길이와 가변길이 문자집합 지원

 

NCLOB

· 유니코드를 지원하는 문자형 대용량 객체

 

BLOB

· 이진형 대용량 객체

 

BFILE

· 대용량 이진 파일에 대한 위치, 이름 저장

'콤퓨타 왕기초 > Oracle DB' 카테고리의 다른 글

TRANSACTION, COMMIT, ROLLBACK  (0) 2021.03.12
테이블 수정  (0) 2021.02.23
오라클 계정  (0) 2021.02.22
오라클 데이터베이스 기본  (0) 2021.02.20
큰 그림  (0) 2021.02.20
Comments