SQL

SQL 정리(데이터타입)

goshek 2024. 9. 23. 17:26

/*
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