본문 바로가기
WORKS/DataBase

[DataBase] SQL? / SQL 명령어의 종류 DDL DML DCL / ORACLE Data Type 오라클 데이터 타입

by Jelly 젤리 2022. 2. 24.

SQL 명령어의 종류와 Oracle Database를 기반으로 한 데이터 타입에 대해서 알아보도록 합니다.


SQL 이란 ?

관계형 데이터 베이스 관리 시스템 (RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어

 

SQL 문법: 데이터베이스를 접근, 조작할 때 필요한 표준 언어를 활용할 수 있게 해주는 규칙

 

< 명령어의 종류 / 문법 분류 >

- DDL(Data Definition Language): 데이터 정의어 테이블이나 관계의 구조를 생성할 때 사용

유형: CREATE(테이블 생성), ALTER(테이블 구성 정보 수정), DROP(테이블 삭제), TRUNCATE(테이블의 모든 로우를 제거)

 

- DML(Data Manipulation Language) : 데이터 조작어 데이터베이스에 저장된 자료들을 입력, 수정, 삭제, 조회할 때 사용

유형: SELECT(데이터 조회), INSERT(데이터 생성), UPDATE(데이터 변경), DELETE(데이터 삭제)

 

- DCL(Data Control Language) : 데이터 제어어 DB관리자가 데이터 보안, 무결성 유지, 병행 제어, 회복을 위해 사용. 제어용 언어

유형: GRANT(권한 부여), REVOKE(권한 삭제)


이번에는 Oracle Database Onlie Documentation 11g에 기반한 Data Types를 알아보도록 하겠습니다.

아래에 링크를 걸어두었습니다!

Data Type (자료형) 

우선 SQL문의 각 열 값과 상수에는 특정 저장소 형식, 제약 조건 및 유효한 값 범위와 연결된 데이터 형식이 있습니다.

우리가 SQL로 테이블을 생성할 때, 각 열에 데이터 형식을 꼭 지정해주어야 합니다.

 

Oracle에서 기본적으로 제공하는 데이터 형식들은

Character, Numeric, Date, LOB, RAW와 LONG RAW, ROWID와 UROWID 등이 있습니다.

이 중 꼭 알아야 하는 부분들을 짚고 넘어가도록 하겠습니다.

 

1. 문자형

문자 데이터 타입은 문자열에 문자(영숫자) 데이터를 저장

바이트 값은 문자 인코딩 체계에 해당합니다.

( -> 영어는 한 글자에 1바이트입니다. 한국어, 일본어, 중국어 등은 한 글자 당 2바이트죠? 그걸 의미합니다.)

참고: 여기서 말하는 인코딩 체계에는 ASCII, EBCDIC, 코드페이지 500, 일본 확장 UNIX, 유니코드 UTF-8 등이 있습니다.

Character Datatypes
type length -
CHAR 최소 1byte(기본값)에서 최대 2000byte  고정 문자열
VARCHAR(2) 최소 1byte에서 최대 4000byte 사이 가변 문자열

CHAR:

 - 고정 길이의 문자열 저장.

 - 초기의 데이터에서 더 긴 경우의 데이터로 갱신되는 경우 이미 할당해 놓은 공간을 재사용.

 - 값이 너무 크면 오류 반환

VARCHAR(2):

 - 가변 길이의 문자열 저장.

 - 최대 크기 50자로 VARCHAR2 열을 선언한다고 가정했을 때, 특정 행의 VARCHAR2 열 값으로 10자만 지정되면 행 조각의 열은 50자가 아닌 10자(10바이트)만 저장된다.

 - 초기의 데이터에서 더 긴 경우의 데이터로 갱신되는 경우 해당 공간에 쓰지 못하고 데이터 마이그레이션 현상이 나타날 수 있음

 

주민등록번호 등 길이가 일정한 데이터의 경우 CHAR, 

이름, 주소 등 길이가 변할 수 있는 값들은 VARCHAR을 사용하는것이 바람직하다고 보겠습니다.

 

2. 숫자형
NUMBER 정수, 실수 등 숫자 타입
NUMBER
NUMBER(전체 자리 수 precision, 소수점 부분 자리 수 scale)
NUMBER (*, scale) -> 이 경우 자릿수는 38자리.
이런식으로 지정 가능

오라클에서는 다음 4가지 수를 NUMBER 열에 저장 가능하다고 함.

1:  1 x 10^130 ~ 9.99...9 x 10^125 범위의 양수

2: -1 x 10^130 ~ 9.99...99 x 10^125 사이의 음수

3: 0

4: 양의 무한대, 음의 무한대


3. 날짜형
DATE 서기(기원전 4712년) 1월 1일부터 기원후 9999년 12월 31일까지 율리우스 시대의 날짜를 저장할 수 있다

BCE를 특별히 사용하지 않는 한 CE 날짜 항목이 기본값

날짜 데이터는 세기, 연도, 월, 일, 시, 분 및 초

7바이트 고정 길이로 필드에 저장

날짜 입력 및 출력의 경우 표준 Oracle 날짜 형식은 DD-MON-YY

TIMESTAMP 로컬 표준시.
사용자가 데이터를 선택하면 값이 사용자의 세션 시간대로 조정

 

 


 

Oracle이 아닌 다른 DB를 사용하신다면

해당 DB에서는 자료형을 조금 다르게 다룰 수도 있습니다.

아래 링크에 IBM에서 가져온 링크도 걸어두었으니 참고해주세요!

 

참고 레퍼런스:

https://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT012

 

Oracle Data Types

33/35 26 Oracle Data Types This chapter discusses the Oracle built-in datatypes, their properties, and how they map to non-Oracle datatypes. This chapter includes the following topics: Overview of Character Datatypes The character datatypes store character

docs.oracle.com

https://www.ibm.com/docs/ko/db2/11.1?topic=list-character-strings 

https://blog-han.tistory.com/41

https://mozi.tistory.com/229

728x90

댓글