정보의 보물창고

[Oracle 오라클]문자열 데이터 타입 본문

개발 Memo/Oracle

[Oracle 오라클]문자열 데이터 타입

☆★※☆★※ 2021. 5. 25. 08:00
반응형

 

-오라클에서 사용되는 데이터 타입은 문자열, 숫자 , 날짜 , 이진자료형이 존재

 

1.문자열

    - 문자열 자료는 ''안에 정의된자료

    - 대소문자 구별하여 저장

    - 가변길이와 고정길이 타입으로 구분

    -CHAR VARCHAR,VARCHAR2,NVARCHAR,NVARCHAR2,LONG,CLOB

   

    --CHAR VARCHAR CLOB만 알고 있어도 된다 VARCHRA2이게 젤 많이 쓰임

   

   

    1)CHAR

        -고정길이 문자열을 저장한다.

        (사용형식)

        컬럼명 CHAR(n [CHAR |BYTE]);

            -   n : 확보할 기억공간의 크기로 최대 2000 BYTE 까지 사용가능

            - 데이터가 작으면 남는 공간(오른쪽)은 공백으로 채워짐

            - 데이터가 n 보다 크면 오류

            -한글 한글자는 3BYTE로 처리됨

            -'CHAR|BYTE': n이 바이트인지 글자수인지 규정

            n이 글자수를 나타내어도 전체 2000BYTE를 초과 할 수 없음

            =>한글을 2000자까지 처리하지 못함(666글자 까지 저장) -- 한글 한글자당 3바이트

   사용예)
    CREATE TABLE TEMP01(
    COL1 CHAR(10),-- 10바이트
    COL2 CHAR(10 BYTE), -- 10바이트
    COL3 CHAR(10 CHAR));-- 10글자

   

INSERT INTO TEMP01 VALUES('대전','ABCDEFGHIJ','대전 중구 성모병원'); -- 공백도 글자수에 포함되어야함

INSERT INTO TEMP01 VALUES('대덕구','ABC','성모병원'); -- 성모병원이 4글자이기때문에 12바이트여야하는데 18바이트를 차지함, 

--10글자를 차지할 공간을 마련해놨기때문에 글자가 4글자를 차지해도 6공간이 남음, 남은 공간은 BYTE 단위 12+ 6 = 18

 

 

SELECT * -- * ALL을 의미함. SELECT절과(출력할 컬럼명)WHERE절은(조건) FROM(테이블) 절이 반드시 있어야함

WHERE절이 생략되면 조건없이 모든 컬럼 출력

 

SELECT * FROM TEMP01;

 

SELECT LENGTHB(COL1),LENGTHB(COL2),LENGTHB(COL3)

    FROM TEMP01;

   

    02) VARCHAR2

    .가변길이 문자열을 저장한다

    .최대 4000BYTE까지 저장 가능

    .사용하고 남은 공간은 시스템에게 반납

    (사용형식)

    컬럼명 VARCHAR2(n [CHAR[BYTE]);

사용예)
CREATE TABLE TEMP02(
    COL1 VARCHAR2(100),
    COL2 VARCHAR2(100 BYTE),
    COL3 VARCHAR2(4000 CHAR));

 

  INSERT INTO TEMP02 VALUES('대전','ABCDEFGHIJ','대전 중구 성모병원');
INSERT INTO TEMP02 VALUES('대덕구','ABC','성모병원'); 

SELECT *
FROM TEMP02
WHERE ROWNUM=1;


SELECT LENGTHB(COL1),LENGTHB(COL2),LENGTHB(COL3)
    FROM TEMP02;

 

   

   

    3) LONG

    . 가변길이 문자열을 저장

    . 최대 2GB까지 저장 가능

    . 제약사항 : 한 테이블에 한 컬럼만 LONG으로 선언 가능 -- 제약사항때문에 잘 쓰지 않음.

    . CLOB 타입으로 대체 (LONG의 기능개선 서비스는 종료)

    (사용형식)

    컬럼명 LONG;

        - LONG 타입 컬럼이 사용되는 곳

            => SELECT문의 SELECT , UPDATE문의 SET , INSERT문의 VALUES

            

반응형