SQL

[SQL] datatype

wwxs 2024. 9. 25. 10:02

Datatype

 

1. 정수형

: 숫자 데이터를 저장하는 데 사용

: 데이터 타입에 따라 메모리 사용 공간이 다름

  • tinyint
    • 1byte(8bit) : -128 ~ 127
  • smallint
    • 2byte(16bit) : -32,768 ~ 32,767\
  • int 
    • 4byte(32bit) : 약 -21억 ~ 약 21억
    • 일반적인 용도로 가장 많이 사용되는 정수형 타입
  • bigint
    • 8byte : 약 -900경 ~ 약 900경 
더보기
create database if not exists `example`;
use `example`;

create table `integer` (
	t_col tinyint,
    s_col smallint,
    i_col int,
    b_col bigint
);

insert into `integer` 
values(127, 32767, 2000000000, 9000000000000000000);

Out of rage 오류 : 해당 데이터 타입의 범위를 벗어나느 경우 발생

 

더보기
create table person (
	age tinyint unsigned, -- 나이 (0 ~ 255 범위)
    height smallint unsigned -- 키 (0 ~ 65535 범위)
);

insert into person
values(130, 250);

 

unsigned: 부호가 없는 정수

  • 정수의 시작을 0부터 시작
  • 범위는 그대로 인식 (EX. tinyint 0 ~ 255)

 

2. 문자형

: 텍스트 데이터 저장

: char(개수), varchar(개수)

  • char(개수)
    • 1 ~ 255byte
    • 고정 길이 문자형 [ char(10)의 10자리 중 3자리만 사용하는 경우, 나머지 7자리가 비워진 상태로 메모리 낭비 ]
    • 길이가 항상 일정하기 때문에 검색 속도가 빠름
    • 짧은 문자열 저장에 사용
  • varchar(개수)
    • 1 ~ 1638byte
    • 가변길이 문자형 [ varchar(10)의 10자리 중 3자리만 사용하는 경우, 나머지 7자리는 사라짐 ]
    • 길이가 일정하지 않아 검색 속도가 느리다
    • 선언된 길이 내에서 필요한 만큼만 데이터를 저장 
  • 다량의 텍스트 데이터 형식
    • text 형식: 1 ~ 약 65000byte
    • longtext 형식: 1 ~ 약 42억byte
  • blob (binary long object)
    • 이미지, 동영상 등의 데이터
    • blob 형식: 1 ~ 약 65000byte
    • longblob 형식: 1 ~ 약 42억byte
더보기
create table `character`(
	name varchar(100),	-- 제품명(가변길이)
    category char(10),	-- 카테고리(고정길이)
    description text,	-- 제품설명(대용량 텍스트)
    image blob
);

insert into `character`
values('Laptop', 'Electric', '삼성 갤럭시 북4 노트북 프로', 'example.com');

 

3. 실수형

: 소수점이 있는 숫자를 저장할 때 사용

: float, double, decimal

: float과 double는 부동 소수점 방식, decimal은 고정 소수점 방식

  • float
    • 소수점 아래 7자리까지 표현
  • double
    • 소수점 아래 15자리까지 표현
  • decimal, numeric
    • 고정 소수점 데이터 타입, 정밀한 소수점 계산에 필요
더보기
create database if not exists `example`;

create table products(
	price float(7, 2),
    price2 double(10, 4),
    price3 decimal(15, 2)
    
    # 실수형 데이터 타입은 함수의 형태로 사용
    # 데이터타입(전체 자리수, 소수점 아래 자리수)
);

 

4. 논리형

: Boolean 값을 저장하기 위한 데이터 타입

: 논리적으로 참(True)과 거짓(False)값을 나타냄

더보기
use example;
create table employees (
	is_active Boolean
);

insert into employees
values (true);

select * from employees;
# true값이 1로 변환되어 저장됨

 

5. 날짜형

: 날짜 및 시간을 저장할 때 사용

  • date (3byte)
    • 날짜만 저장
    • YYYY - MM - DD
  • time (3byte)
    • 시간만 저장
    • HH : MM : SS
  • datetime (8byte)
    • 날짜와 시간을 저장
    • YYYY - MM - DD  HH : MM : SS
더보기
create table events (
	event_name VARCHAR(100),
    event_date DATE
);

INSERT INTO events
VALUES ('Birthday', '2024-03-14');

select * from events;

 

6. 열거형 타입 (enum)

: 사전에 정의된 값의 집합 중 하나의 값을 저장

: 제한된 값 목록 중에서 선택

더보기
create table rainbow (
	color enum('red', 'orange', 'yellow', 'purple'),
    descriptions varchar(100)
);

insert into rainbow
values 
	('red', '빨강'),
	('orange', '주황'),
	('yellow', '노랑'),
	('purple', '보라');