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', '보라');