데이터 형식은 크게 숫자형, 문자형, 날짜형이 있다.
실제로 저장될 데이터의 형태가 다양하기 때문에 이를 효율적으로 저장하기 위해 위의 데이터 형식에서 세부적으로 다시 여러 데이터 형식으로 나뉘게 된다.
정수형
- tinyint (숫자 범위 : -128 ~ 127)
- smallint (숫자 범위 : -32768 ~ 32767)
- int (숫자 범위 : 약 -21억 ~ 21억)
- 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 에러 : 입력값의 범위를 벗어났을 때 에러를 발생시킨다.
문자형
문자형은 글자를 저장하기 위해서 사용한다.
문자형은 입력할 최대 글자의 갯수를 따로 지정해줘야 한다.
- char : Character의 약자로, 고정 길이 문자형이라고 부른다.
ex ) char(10)에 "가나다" 3글자만 저장해도 10자리를 모두 확보한 후에 앞의 3자리만 사용하고 나머지 7자리는 낭비하게 된다. - 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자 까지 저장이 가능하다.
즉, 더 큰 값을 가지는 데이터는 저장할 수 없다.
대량의 데이터 형식
- text : 최대 65535자
- longtext : 약 42억자
소설이나 영화 대분등의 대량의 내용을 저장할 때 사용한다. - blob : binary Long Object 의 약자로 이미지, 동영상 등의 데이터(이진 데이터)를 저장할 때 사용한다.
- 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
);
실수형
소수점이 있는 숫자를 저장할 때 사용한다.
- float : 소수점 아래 7자리까지 표현이 가능하다.
- double : 소수점 아래 15자리까지 표현이 가능하다.
날짜형
날짜 및 시간을 저장할 때 사용한다.
- date : 날짜만 저장할 때 사용한다. YYYY-MM-DD 형식으로 사용한다.
- time : 시간만 저장할 때 사용한다. HH:MM:SS 형식으로 사용한다.
- 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 |