/*
SQL 데이터 형식
정수형,
1. 정수형
: 숫자 데이터를 저장하는 데 사용
>> 데이터 타입에 따라 메모리 사용 공간이 다름alter
a) tinyint
: 1byte
: -128 ~ 127
ex) 나이, 성별코드등
b) smallint
: 2byte(16비트)
: -32768~ 32767
c) int
: 4byte
약 -21억 ~ 21억
가장 일반적인 용도로 가장 많이 사용되는 정수형 타입
d) bigint
: 8byte
약 -900경~ 900경
*/
create database `example`;
use `example`;
create table `integer`(
tinyint_col tinyint,
smallint_col smallint,
int_coll int,
bigint_con bigint
);
/*
insert: 데이터 삽입
out of range 오류: 해당 데이터 타입에 범위를 벗어나는 경우 발생
*/
insert into `integer` values (127, 32767, 2000000000, 9000000000000000);
insert into `integer` values (128, 32767, 2000000000, 9000000000000000); #Out of range error
/*
unsigned: 부호가 없는 정수
> 정수의 시작을 0부터 시작
> 범위는 그대로 인식(EX. tinyint 0~255까지)
ex) 키, 나이, 가격등을 설정할 때 사용(음수값이 없는 경우)
*/
create table person(
age tinyint unsigned,
height smallint unsigned
);
insert into person values (30,175);
/*
2. 문자형
: 텍스트 데이터 저장
: char(개수), varchar(개수)
a) char(개수): 1~255byte
: 고정 길이 문자형
ex) char(10)의 10자리 중 3자리만 사용하는 경우, 7자리가 비워진 상태로 메모리 낭비
>> 길이가 항상 일정하기 때문에 검색 속도가 빠름
>> 짧은 문자열 저장에 사용
EX) 성별, 국가코드(KOR, CHI, JPA등)
b) varchar(개수): 1~ 1638 바이트
: 가변 길이 문자형
ex) varchar(10)의 10자리 중 3자리만 사용하는 경우, 7자리는 사라짐
>> 길이가 일정하지 않아 검색 속도가 느림
>> 선언된 길이 내에서 필요한 만큼만 데이터를 저장
ex) 주소, 상품명 등
cf) 문자 수와 바이트 수의 차이
# 영어 1byte에 1개의 알파벳
# 한글 utf-8기준 한 글자 당 약 3byte를 사용
>> varchar(255): 255/3= 약 85글자
cf) 다량의 텍스트 데이터 형식
a) text형식: 1~ 약 65000 byte
longtext 형식: 1~ 4200000000 byte
b) blob (binary long object): 이미지, 동영상등의 데이터
blob형식: 1~ 약 65000byte
longblob형식: 1~ 42억 byte
*/
create table `character`(
name varchar(100),
category char(100),
description text,
image blob
);
insert into `character` values ('Laptop', 'Electronics', 'Samsung Galaxy Book 4 pro', 'example.com');
'SQL' 카테고리의 다른 글
SQL 정리(select) (0) | 2024.09.25 |
---|---|
sql 기초 예시 (0) | 2024.09.25 |
SQL 정리(DDL) (0) | 2024.09.23 |
MySQL 설치 방법 (0) | 2024.09.23 |
MySQL 제거 방법 (0) | 2024.09.23 |