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
댓글