본문 바로가기
데이터베이스

MySQL 데이터 형식

by 승환파크 2023. 5. 22.

데이터 형식은 크게 숫자형, 문자형, 날짜형이 있다.

실제로 저장될 데이터의 형태가 다양하기 때문에 이를 효율적으로 저장하기 위해 위의 데이터 형식에서 세부적으로 다시 여러 데이터 형식으로 나뉘게 된다.

 

정수형

  1. tinyint (숫자 범위 : -128 ~ 127)
  2. smallint (숫자 범위 : -32768 ~ 32767)
  3. int (숫자 범위 : 약 -21억 ~ 21억)
  4. bigint (숫자 범위 : 약 -900경 ~ 900경)

 

정수형 타입 테이블 생성하기

CREATE TABLE tbl_type(
	tinyint_col tinyint,
	smallint_col SMALLINT,
	int_col int,
	bigint_col bigint
);

 

데이터 저장하기

insert into tbl_type values (127, 32767, 2147483647, 9000000000000000000);

각 열에 최댓값 까지는 이상없이 입력이 가능하다.

하지만 최댓값에 0을 한개 더 붙여서 입력하면 Out of range 에러가 발생한다.

Out of range 에러 : 입력값의 범위를 벗어났을 때 에러를 발생시킨다.

 

문자형

문자형은 글자를 저장하기 위해서 사용한다.

문자형은 입력할 최대 글자의 갯수를 따로 지정해줘야 한다.

  1. char : Character의 약자로, 고정 길이 문자형이라고 부른다.
    ex ) char(10)에 "가나다" 3글자만 저장해도 10자리를 모두 확보한 후에 앞의 3자리만 사용하고 나머지 7자리는 낭비하게 된다.
  2. varchar : Variable Character의 약자로, 가변길이 문자형 이라고 부른다.
    ex ) varchar(10)에 "가나다" 3글자만 저장하면 3자리만 사용한다.

varchar는 char 보다 공간을 더 효율적으로 사용할 수 있지만 MySQL의 처리속도는 char가 더 빠르다.

ex) 거주 지역 컬럼에 서울/부산/경북/전남 과 같이 모두 2글자로 일정한 경우에는 char(2)로 설정하는 것이 더 좋다.

반면 가수이름같이 글자수가 다양한 경우에는 varchar로 설정하는 것이 더 좋다.

 

위에서 배운 내용을 바탕으로 member 테이블 생성 코드 작성하기

create table member( -- 회원 테이블
	mem_id 		char(8) 	not null 	primary key, 	
	mem_name 	varchar(8) 	not null,					
    mem_number 	tinyint 	not null,					
	addr 		char(2) 	not null,					
	phone1 		char(3),								
    phone2 		char(8),			
	height 		tinyint 	unsigned,
	debut_date 	date				
);

전화번호는 숫자로서의 의미가 없기 때문에 문자열로 지정한다.

숫자로서의 의미를 가지기 위해서는 더하기/빼기 등의 연산에 의미가 있거나 크다/작다 또는 순서의 의미가 있어야 한다.

 

대량의 데이터 형식

char는 최대 255자 까지, varchar는 최대 1638자 까지 저장이 가능하다.

즉, 더 큰 값을 가지는 데이터는 저장할 수 없다.

 

대량의 데이터 형식

  1. text : 최대 65535자
  2. longtext : 약 42억자
    소설이나 영화 대분등의 대량의 내용을 저장할 때 사용한다.
  3. blob : binary Long Object 의 약자로 이미지, 동영상 등의 데이터(이진 데이터)를 저장할 때 사용한다.
  4. longblob : longtext 및 longblob는 최대 4GB까지 입력이 가능하다.

 

넷플릭스 같은 동영상을 다루는 사이트의 테이블 구성하기

create database netflix_db;
use netflix_db;
create table movie(
	movie_id 		int,
	movie_title 	varchar(30),
	movie_director 	varchar(20),
	movie_star 		varchar(20),
	movie_script 	longtext,
	movie_film 		longblob
);

 

실수형

소수점이 있는 숫자를 저장할 때 사용한다.

  1. float : 소수점 아래 7자리까지 표현이 가능하다.
  2. double : 소수점 아래 15자리까지 표현이 가능하다.

 

날짜형

날짜 및 시간을 저장할 때 사용한다.

  1. date : 날짜만 저장할 때 사용한다. YYYY-MM-DD 형식으로 사용한다.
  2. time : 시간만 저장할 때 사용한다. HH:MM:SS 형식으로 사용한다.
  3. datetime : 날짜와 시간을 모두 저장할 때 사용한다. YYYY-MM-DD HH:MM:SS 형식으로 사용한다.

 

'데이터베이스' 카테고리의 다른 글

MySQL 데이터 형 변환  (1) 2023.05.25
MySQL 변수  (1) 2023.05.25
MySQL 데이터 삭제  (0) 2023.05.15
MySQL 데이터 수정  (0) 2023.05.15
MySQL 데이터 추가  (1) 2023.05.15