주제

1. 다양한 데이터 타입

 

숫자

BIT(M) 0과 1로만 구성
TINYINT 매우 작은 정수
BOOL, BOOLEAN True / False
SMALLINT 작은 정수
MEDIUMINT 중간 크기 정수
INT, INTEGER 정수
BIGINT, SERIAL INT 보다 2배 많은 비트를 사용하는 정수
DECIMAL(M, D), DEC, FIXED 고정소수점 타입
FLOAT 부동소수점 타입
DOUBLE 부동소수점 타입

 

 

문자

CHAR 고정된 길이의 문자열, 선언된 값보다 짧은 문자열이 들어오면 빈 문자열로 나머지를 채움
VARCHAR 변동 가능한 길이의 문자열
TEXT 변동 가능한 길이의 문자열, 기본값/길이 지정 불가
TINYTEXT 작은 TEXT
MEDIUMTEXT 중간 크기 TEXT
LONGTEXT 큰 크기 TEXT
ENUM 최초에 지정해 둔 리스트에 포함되는 값만 저장, 효율적
SET 최초에 지정해 둔 리스트에 포함되는 값들을 중복으로 저장

 

 

이진

BLOB Binary Large Object
TINYBLOB 작은 BLOB
MEDIUMBLOB 중간 크기 BLOB
LONGBLOB 큰 BLOB
BINARY Binary strings(고정된 길이)
VARBINARY Binary strings(변동 가능한 길이)

 

 

배열

  • 데이터가 저장된 리스트
  • 원소 : 배열에 저장된 각 데이터
  • JSON 타입으로 저장
  • 기본값 설정 불가
  • 관련 함수
JSON_ARRAY JSON_TYPE JSON_EXTRACT
입력을 JSON 배열로 반환하는 함수 JSON 데이터의 타입을 반환하는 함수 JSON 데이터에서 데이터를 추출하는 함수
$ : 키를 지정하는 문자
SELECT JSON_EXTRACT(options, '$') as all_elements FROM products

 

 

Key-value

  • Key와 value로 이루어진 데이터
  • Key를 통해 value에 접근
  • JSON 타입으로 저장
  • 관련 함수

1. JSON_OBJECT : key-value로 저장

INSERT INTO 'managers_v2' ('id', 'name', 'managing', 'info') VALUES
	(0, '영희', '스포츠', JSON_OBJECT('off', JSON_ARRAY('일', '월'), 'substitute', '민수')),
	(1, '철수', '주방용품', JSON_OBJECT('off', JSON_ARRAY('화', '수'), 'substitute', '길순')),
	(2, '민수', '디지털', JSON_OBJECT('off', JSON_ARRAY('목', '금'), 'substitute', '철수')),
	(3, '길순', '키즈', JSON_OBJECT('off', JSON_ARRAY('금', '토'), 'substitute', '영희'))

 

2. JSON_EXTRACT : key를 지정하여 그에 대한 value값을 추출

SELECT JSON_EXTRACT(info, '$.off[0]') as off FROM managers_v2

 

3. JSON_INSERT : key-value 타입으로 데이터 삽입

UPDATE managers_v2 set info = JSON_INSERT(info, '$.new', JSON_ARRAY(1,2,3,4));

 

4. JSON_REPLACE : key-value 타입의 데이터 수정

UPDATE managers_v2 set info = JSON_REPLACE(info, '$.new', 1);

+ Recent posts