Oracle에서 자주 사용하는 데이터 타입과 기본 SQL을 정리한다.

🧱 Oracle 데이터 타입

Oracle은 기본적으로 문자열, 숫자, 날짜, LOB 형태로 데이터를 다룬다.

문자열 데이터 타입

type 설명 최대 길이 기본값
CHAR(n) 고정 길이 문자열 2000byte 1byte
VARCHAR2(n) 가변 길이 문자열 4000byte 1byte
NCHAR(n) 고정 길이 유니코드 문자열 2000byte 1byte
NVARCHAR2(n) 가변 길이 유니코드 문자열 2000byte 1byte
LONG 대용량 문자열 2Gbyte  

숫자 데이터 타입

type 설명 최대 길이 범위
NUMBER(P, S) 가변 숫자 22byte P(1~38), S(-84~127)
FLOAT(P) NUMBER 하위 타입 22byte P(1~128)
BINARY_FLOAT 32bit 부동소수점 4byte  
BINARY_DOUBLE 64bit 부동소수점 8byte  

## | type | 설명 | | ——— | ——————————————— | | DATE | 연월일시분초까지 저장 가능 | | TIMESTAMP | 날짜+시간 + 소수 초까지 저장 가능 |

LOB 데이터 타입

type 설명
CLOB 문자 대용량 객체
NCLOB 유니코드 문자 대용량 객체
BLOB 이진 대용량 객체
BFILE 외부 파일에 대한 읽기 전용 참조

🧪 CRUD 예시

테이블 생성

CREATE TABLE USERS (
    ID NUMBER PRIMARY KEY,
    NAME VARCHAR2(100),
    EMAIL VARCHAR2(100),
    CREATED_AT DATE DEFAULT SYSDATE
);

데이터 삽입

INSERT INTO USERS (ID, NAME, EMAIL) VALUES (1, '홍길동', 'hong@example.com');
COMMIT;

데이터 조회

SELECT * FROM USERS WHERE NAME = '홍길동';

데이터 수정

UPDATE USERS SET EMAIL = 'hong_new@example.com' WHERE ID = 1;
COMMIT;

데이터 삭제

DELETE FROM USERS WHERE ID = 1;
COMMIT;

🧩 Sequence 사용 예시

Sequence는 자동 증가하는 ID를 생성할 때 사용한다.

Sequence 생성

CREATE SEQUENCE USER_SEQ START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;

Sequence 값 사용

INSERT INTO USERS (ID, NAME, EMAIL) VALUES (USER_SEQ.NEXTVAL, '김철수', 'kim@example.com');

현재 값 확인

SELECT USER_SEQ.CURRVAL FROM DUAL;

🧭 ROWNUM을 활용한 페이징

상위 10건 조회

SELECT * FROM USERS WHERE ROWNUM <= 10;

11~20건 조회

SELECT * FROM (
    SELECT A.*, ROWNUM AS RNUM FROM (
        SELECT * FROM USERS ORDER BY CREATED_AT DESC
    ) A WHERE ROWNUM <= 20
) WHERE RNUM > 10;

🕒 날짜와 시간 예시

현재 날짜 조회

SELECT SYSDATE FROM DUAL;

특정 날짜 이후 조회

SELECT * FROM USERS WHERE CREATED_AT >= TO_DATE('2024-01-01', 'YYYY-MM-DD');

##

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM DUAL;

🛠️ 기타 자주 쓰는 SQL

컬럼 추가

ALTER TABLE USERS ADD PHONE_NUMBER VARCHAR2(20);

컬럼 삭제

ALTER TABLE USERS DROP COLUMN PHONE_NUMBER;

인덱스 생성

CREATE INDEX IDX_USERS_EMAIL ON USERS (EMAIL);

테이블 삭제

DROP TABLE USERS CASCADE CONSTRAINTS;

연결문서

댓글남기기