[ Index ]

 

1. 데이터 형식

(1) 문자형      (2) 정수형      (3) 실수형      (4) 날짜형

2. 데이터 형 변환

(1) 명시적 변환      (2) 암시적 변환

 


 

 

 

 

1.  데이터 형식

 

(1) 문자형

데이터 형식 바이트
CHAR(개수) 1 ~ 255
VARCHAR(개수) 1 ~ 16383
  • CHAR(n)에 m글자를 저장하면, n자리를 미리 확보하고 m자리만 사용한다.
  • VARCHAR(n)에 m글자를 저장하면, m자리만 사용한다.
  • 글자 수가 고정적일 경우  →  CHAR(n)
  • 글자 수가 변동적일 경우  →  VARCHAR(n)

 

 

(2) 정수형

데이터 형식 바이트 수 숫자 범위
TINYINT 1 -128 ~ 127
SMALLINT 2 -32,768 ~ 32,767
INT 4 약 -21억 ~ +21억
BIGINT 8 약 -900경 ~ +900경

※ UNSIGNED를 사용하면 값의 범위가 0부터 시작된다. 즉, TINYINT UNSIGNED는 0 ~ 255의 범위를 가진다.

 

 

(3) 실수형

데이터 형식 바이트 수 설명
FLOAT 4 소수점 아래 7자리까지
DOUBLE 8 소수점 아래 15자리까지

 

 

(4) 날짜형

데이터 형식 바이트 수 설명
DATE 3 날짜만 저장 (YYYY-MM-DD)
TIME 3 시간만 저장 (HH:MM:SS)
DATETIME 8 날짜 및 시간을 저장 (YYYY-MM-DD HH:MM:SS)

 

 

(5) 기타

대량의 문자 데이터를 저장해야 한다면, TEXT 형식을 사용하면 된다.

데이터 형식 바이트 수
TEXT 1 ~ 65535
LONGTEXT 1 ~ 4294967295

 

대량의 이미지나 동영상 데이터를 저장해야 한다면, BLOB 형식을 사용하면 된다.

데이터 형식 바이트 수
BLOB 1 ~ 65535
LONGBLOB 1 ~ 4294967295

 

 

 

 

2.  데이터 형 변환

 

(1) 명시적인 변환

CAST(), CONVERT()와 같은 함수를 사용해서 직접 데이터의 형식을 변환하는 것을 말한다.

-- 실수형을 정수형으로 변환한다.
SELECT CAST(AVG(price) AS SIGNED) FROM product;
SELECT CONVERT(AVG(price), SIGNED) FROM product;

-- 문자형을 날짜형으로 변환
SELECT CAST('2022/10/17' AS DATE);
SELECT CAST('2022%10%17' AS DATE);

※ SIGNED: 부호가 있는 정수 / UNSIGNED: 부호가 없는 정수

※  /, %, $, @ 등 다양한 구분자를 이용해 날짜형으로 변경 가능

 

(2) 암시적인 변환

함수를 사용하지 않고 자연스럽게 데이터의 형식이 변환되는 것을 말한다.

SELECT '10' + '30';
-- (결과) 40

SELECT '10' + 30;
-- (결과) 40

SELECT CONCAT('10', '30');
-- (결과) '1030'

SELECT CONCAT(10, '30');
-- (결과) '1030'

※ 숫자와 문자를 함께 연산하면, 산술연산자는 숫자로, CONCAT()은 문자로 변환된다.

 

 

 

 


 

[ Reference ]

 

📙 우재남, 한빛미디어, 혼자 공부하는 SQL

 


 

 

'📖 STUDY > SQL' 카테고리의 다른 글

[EP.07] SQL 프로그래밍  (0) 2023.10.20
[EP.06] 조인(JOIN)  (0) 2023.10.18
[EP.04] 데이터 입력, 수정, 삭제  (0) 2023.10.16
[EP.03] ORDER BY, GROUP BY  (0) 2023.10.16
[EP.02] SELECT, FROM, WHERE  (1) 2023.10.12

+ Recent posts