DBMS/개념

📚03_ DBMS의 자료형

seungwon-1 2025. 9. 16. 15:48

DBMS에 처음 접근할 떄 Dbeaver 라는 곳에 DB를 연결을 하고, 간단한 명령어를 통해서 시작을 먼저 했었는데 

처음 배울 떄는 어느정도 간단한 명령어와 기본 개념을 알고 있어야지 작성하는 명령어를 이해하는 능력이 극대화가 된다고 생각을 한다.

 


1. 자료형 (Data Types)

1.1. 자료형의 개념

  • 데이터베이스에서 각 열(column)은 저장할 데이터의 종류를 지정해야 한다 → 이것을 **자료형(data type)**이라고 부른다.
  • 자료형을 올바르게 지정하면
    • 저장 공간을 효율적으로 사용
    • 데이터의 일관성 유지 가능
  • 잘못 지정하면 → 저장 오류, 처리 오류 발생 가능

1.2. 자료형의 종류

1.2.1. 문자형 (Character)

  • CHAR(n)
CREATE TABLE employees (
  first_name CHAR(10)
);

INSERT INTO employees (first_name) VALUES ('John');
-- 실제 저장: 'John      '
  • VARCHAR2(n)
  • 가변 길이 문자열
  • 입력한 글자 수만큼만 저장 (자주 사용)
CREATE TABLE departments (
  department_name VARCHAR2(50)
);

INSERT INTO departments (department_name) VALUES ('Human Resources');
-- 실제 저장: 'Human Resources'

 

 

CHAR vs VARCHAR2

  • CHAR: 항상 지정된 길이만큼 공간 차지
  • VARCHAR2: 필요한 만큼만 공간 사용 → 더 효율적이다.

 

  • CLOB
  • 대용량 텍스트 저장 (최대 4GB)
CREATE TABLE articles (
  content CLOB
);

INSERT INTO articles (content) VALUES ('This is a very long article text...');

 

1.2.2. 숫자형 (Numeric)

  • NUMBER(p, s)
    • 정수·소수 저장
    • p: 전체 자릿수 / s: 소수점 이하 자릿수
CREATE TABLE products (
  price NUMBER(7, 2)
);

INSERT INTO products (price) VALUES (1234.56);   -- OK
INSERT INTO products (price) VALUES (123456.78); -- 오류

NUMBER(7, 2) → 99999.99까지 저장 가능

 

INTEGER

  • 정수 저장 (내부적으로 NUMBER(38))
CREATE TABLE counts (
  item_count INTEGER
);

INSERT INTO counts (item_count) VALUES (100);

 

 

1.2.3. 날짜형 (Date)

  • DATE
    • 날짜 + 시각 저장 (YYYY-MM-DD HH24:MI:SS)
CREATE TABLE employees (
  hire_date DATE
);

INSERT INTO employees (hire_date) VALUES (TO_DATE('2023-10-01', 'YYYY-MM-DD'));
INSERT INTO employees (hire_date) VALUES (SYSDATE);  -- 현재 날짜
  • TIMESTAMP
  • DATE보다 더 정밀 (초의 소수점까지 저장)
CREATE TABLE logs (
  log_time TIMESTAMP
);

INSERT INTO logs (log_time) VALUES (SYSTIMESTAMP);

1.2.4. 이진형 (Binary)

  • BLOB
    • 대용량 이진 데이터 저장 (이미지, 동영상 등)
CREATE TABLE images (
  image_data BLOB
);

INSERT INTO images (image_data) VALUES (EMPTY_BLOB());

 

 

 

2. SQL문의 종류

SQL은 목적에 따라 DDLDML로 나뉜다.

 

DDL (Data Definition Language)

  • 데이터베이스 구조(스키마) 정의
  • 테이블/컬럼 생성, 수정, 삭제 등의 작업
  • 주요 명령어
    • CREATE
    • ALTER
    • DROP
    • TRUNCATE
CREATE TABLE students (
  student_id NUMBER(5),
  name VARCHAR2(20)
);

ALTER TABLE students ADD (age NUMBER(3));

DROP TABLE students;

TRUNCATE TABLE students; -- 데이터만 전체 삭제 (구조는 유지)

 

 

 

DML (Data Manipulation Language)

  • 데이터베이스 안의 데이터 자체를 조작
  • CRUD(Create, Read, Update, Delete)
  • 주요 명령어
    • INSERT
    • SELECT
    • UPDATE
    • DELETE
INSERT INTO students (student_id, name) VALUES (1, '홍길동');

SELECT * FROM students;

UPDATE students SET name = '김철수' WHERE student_id = 1;

DELETE FROM students WHERE student_id = 1;

 

다음엔 DDL과 DML의 명령어에 대해서 정리를 해보겠다.

'DBMS > 개념' 카테고리의 다른 글

06_ DB의 연산자  (0) 2025.09.19
05_ DML(데이터 조작어)  (0) 2025.09.18
04_ DDL(데이터 구조 정의어)  (0) 2025.09.17
02_ DB와 SQL  (0) 2025.09.15
❓01_ DBMS란?  (0) 2025.09.13