Notice
Recent Posts
Recent Comments
«   2026/08   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Tags
more
Archives
Today
Total
관리 메뉴

Don't forget to smile

[혼자 공부하는 SQL] Chapter 4-1. MySQL의 데이터 형식 본문

SQL

[혼자 공부하는 SQL] Chapter 4-1. MySQL의 데이터 형식

에르더그 2022. 11. 28. 14:03

데이터 형식 : 실제로 저장하는 데이터의 종류와 크기가 천차만별이기 때문에 다양한 데이터 형식을 알아야 함

<정수형>

정수형소수점이 없는 숫자이기 때문에 인원 수, 가격, 수량 데이터 등에 사용

TINIYINT : 1바이트 / 숫자 범위 -128 ~ 127

SMALLINT : 2바이트 / 숫자 범위 -32768 ~ 32767

INT : 4바이트 / 숫자 범위 약 -21억 ~ 21억

BIGINT : 8바이트 / 숫자 범위 약 -900경 ~ 900경

 

1) 정수형을 사용하는 테이블을 만들어 각각 허용 가능한 최대치를 입력하면 문제 없이 작동

 

2) 각 숫자에 1씩 더한 값을 입력할 경우 입력값의 범위를 벗어났다Out of range 오류가 발생

3) UNSIGNED 예약어를 사용하면 값의 범위가 0부터 시작되게 만들 수 있음

예를 들어, UNSIGNED TINYINT를 사용할 경우 범위는 -128 ~ 127에서 0 ~ 255로 표시 가능

<문자형>

문자형글자를 저장하기 위해 사용되며 입력할 최대 글자의 개수를 지정해야 함

CHAR(개수) : 1~255바이트 / 고정길이 문자형

VARCHAR(개수) : 1~16383바이트 / 가변길이 문자형

TEXT : 1~65535바이트 / 텍스트

LONGTEXT : 1~4294967295바이트 / 텍스트

BLOB : 1~65535바이트 / 사진 또는 동영상

LONGBLOB : 1~4294967295바이트 / 사진 또는 동영상

<실수형>

실수형소수점이 있는 숫자를 저장할 때 사용

FLOAT : 4바이트 / 소수점 아래 7자리

DOUBLE : 8바이트 / 소수점 아래 15자리

<날짜형>

날짜형날짜 및 시간을 저장할 때 사용

DATE : 3바이트 / 날짜만 저장 / YYYY-MM-DD 형식

TIME : 3바이트 / 시간만 저장 / HH:MM:SS 형식

DATETIME : 8비트 / 날짜 및 시간 저장 / YYYY-MM-DD HH:MM:SS 형식

<변수의 사용>

SQL에서의 변수 선언 및 사용은 아래 문법을 따름

SET @변수이름 = 변수 값;

SELECT @변수이름;

 

1) 위와 같이 @변수이름 형식을 통해 다양한 데이터 타입의 변수를 선언하였음

 

2) 각각 정수 변수 myVar1, myVar1과 myVar2의 덧셈 결과값, height 변수의 값인 166보다 키가 큰 아이돌 그룹을 출력하였음

 

3) LIMIT에는 변수를 사용할 수 없기 때문에 PREPARE과 EXECUTE 예약어를 사용함

PREPARE은 주어진 SQL문을 실행하지 않고 일단 대기시키는 명령으로 ?은 아직 정해지지 않은 조건

EXECUTEUSING으로 ?에 변수를 대입하는 명령어인데 위 명령에선 count의 값이므로 3이 대입됨

따라서 3개의 데이터만 출력되는 것을 알 수 있음

<데이터 형 변환>

문자형을 정수형으로 바꾸거나 정수형을 문자형으로 바꾸는 것을 데이터의 형 변환이라고 부름

형 변환에는 직접 함수를 사용하여 변환하는 명시적 변환과 지시 없이 자연스럽게 변환되는 암시적 변환이 존재

명시적 변환에 사용되는 함수는 아래와 같음

CAST (값 AS 데이터_형식 [(길이)])

CONVERT (값, 데이터_형식 [(길이)])

 

1) 위 SELECT CAST(AVG(price) AS SIGNED) AS '평균 가격' FROM buy 명령은

buy 테이블의 price 필드의 평균치를 정수로 표현하라는 명령

따라서 원래 142.9167이라는 실수값으로 출력되는 평균치가 143으로 출력

 

2) CAST와 CONVERT 함수는 날짜형 변경이나 SQL 결과를 원하는 형태로 표현할 때도 사용 가능

이 때 CONCAT 함수는 문자를 이어주는 역할을 하는 함수

 

3) 암시적 변환의 경우에는 위 SELECT 문처럼 CAST나 CONVERT 함수를 사용하지 않고 자동적으로 변환하는 경우를 말함

위 SELECT 문들은 전부 동일해 보이지만 1번째와 4번째의 경우 문자형의 연산은 불가능하기 때문에

자동으로 숫자형으로 변환하여 300이 출력

반면 2번째와 3번째의 경우는 CONCAT 함수로 둘을 이어주었기 때문에 100200이라는 값이 출력