본문 바로가기

SQL

데이터 타입

 

3주차 SQL 기초와 데이터 분석

SQL 쿼리 문법을 활용하여 데이터 분석을 진행하기(3)

 

학습주제: 다양한 데이터 타입 다루기

 

 

숫자

 

BIT(M): 0과 1로만 구성. 1<=M<=64. 기본값은 1

TINYINT: Signed 범위는 -127 ~ 127, Unsigned 범위는 0 ~ 255

BOOL, BOOLEAN: TINYINT(1)과 같음. 0이면 False, 1이면 True

SMALLINT: -32768 ~ 32767, 0 ~ 65535

MEDIUMINT: -8388608 ~ 8388607, 0 ~ 16777215

INT, INTEGER: -2147483468 ~ 2147483647, 0 ~ 4294967295

BIGINT, SERIAL: INT 타입보다 2배 많은 비트를 사용하는 정수. -9223372036854775808 ~ 9223372036854775807, 0 ~ 18446744073709551615

DECIMAL(M,D), DEC, FIXED: 고정소수점 타입. M<=65, 0<=D<=30

FLOAT: 부동소수점 타입. 4 bytes

DOUBLE: 부동소수점 타입. 8 bytes

 

문자

 

CHAR: 고정된 길이의 문자열. 길이 0~255, 선언된 값보다 짧은 문자열이 들어오면 빈 문자열로 나머지 길이를 채움.

VARCHAR: 길이 변동 가능. 길이 0~65535

TEXT: 길이 변동 가능. 길이 최대 65535

TINYTEST: 길이 최대 255

MEDIUMTEXT: 길이 최대 16777215

LONGTEXT: 길이 최대 4294967295

ENUM: 최초에 지정해둔 리스트에 포함되는 값만 저장. 효율적인 데이터 저장. 유연성, 확장성 낮음

SET: 최초에 지정해둔 리스트에 포함되는 값들을 중복으로 저장. 64개까지

 

이진

 

BLOB: Binary Large Object. 길이 최대 65535(길이 설정 불가). 기본값 지정 불가

TINYBLOB: 길이 최대 255

MEDIUMBLOB: 길이 최대 16777215

LONGBLOB: 길이 최대 4294967295

BINARY: 길이 고정. 길이 0~255. 선언된 값보다 짧은 문자열이 들어오면 빈 문자열로 나머지 길이를 채움

VARBINARY: 길이 변동 가능. 길이 0~255

 

배열

 

Array(배열)은 데이터가 저장된 리스트.

Array에 저장된 각 데이터는 Element(원소)

JSON 타입으로 배열을 저장

기본값 설정 불가

함수: JSON_ARRAY, JSON_TYPE, JSON_EXTRACT

 

Key-value

 

Key-value는 Key와 Value로 이루어진 데이터로, Key를 통해 Value에 접근할 수 있음

JSON 타입으로 Key-vlaue를 저장

함수: JSON_OBJECT, JSON_EXTRACT, JSON_INSERT, JSON_REPLACE

 

 

공부하며 어려웠던 내용

 

JSON 타입은 유연성과 확장성이라는 이점이 있지만, (1)JSON 데이터에 대한 쿼리가 전통적인 SQL 쿼리에 비해 성능이 떨어질 수 있고 (2)JSON 데이터가 SQL의 스키마 검증을 받지 않기 때문에 데이터 무결성을 직접 관리해야 할 수도 있다는 부분은 처음 알게 되었다.

학부생 시절(졸업 1주차의 단어 선택...) 멋모르고 리눅스마스터 2급 1차를 봐놓고 생각도 못하고 있었는데 곧 유효기간이 다 된다길래 급하게 2차를 신청했고, 그 공부를 같이 하느라 조금 정신없다. 이번주 토요일이니까 얼른 끝내고 더 능동적으로, 더 열심히 데브코스에 임하고 싶다.