데이터 타입

넘어산·2023년 12월 6일
0

TIL

목록 보기
11/37

숫자

bit

  • 0과 1로만 구성

TINYINT

  • 매우 작은 정수
  • Signed 범위: -127 ~ 127

BOOL, BOOLEAN

  • TRUE/FALSE
  • ex)
SELECT *, IF(sales_ym, "ON SALE", :"NA") AS sales_string
FROM products

SMALLINT

  • 작은 정수
  • -32768 ~ 32767

MEDIUMINT

  • 중간 크기 정수
  • -8388608 ~ 8388608

INT

  • 정수
  • -2147483648 ~ -2147483647

BIGINT

  • int보다 2배 많은 비트를 사용하는 정수
  • -9223372036854775808 ~ 9223372036854775808

DECIMAL

  • 고정 소수점 타입

FLOAT

  • 부동소수점 타입
  • 4byte

DOUBLE

  • 부동소수점 타입
  • 8byte

문자

CHAR

  • 고정된 길이의 문자열

VARCHAR, TEXT

  • 변동 가능한 길이 문자열

TINYTEXT, MEDIUMTEXT, LONGTEXT

  • 작은, 중간, 큰 크기의 TEXT

ENUM

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

SET

  • 최초에 지정해 둔 리스트에 포함되는 값만 저장

이진

BLOB

  • Binary Large Object

TINYBLOB, MEDIUMBLOB, LONGBLOB

  • 작은, 중간, 큰 크기의 BLOB

BINARY

  • Binary strings(고정된 길이)
  • byte 기준
    ex) 한글은 3, 영어는 1, 공백은 1

VARBINARY

  • Binary strings(변동가능 길이)

배열

Array

  • 데이터가 저장된 리스트
  • json 타입으로 배열을 저장
  • 기본값 설정 불가
-- 사용자 테이블
CREATE TABLE Users (
    UserID INT PRIMARY KEY,
    UserName VARCHAR(255),
    UserData JSON
);

-- 사용자 데이터 삽입
INSERT INTO Users (UserID, UserName, UserData)
VALUES (
    1,
    'John',
    '{"email": "john@example.com", "age": 30, "city": "New York"}'
);

INSERT INTO Users (UserID, UserName, UserData)
VALUES (
    2,
    'Jane',
    '{"email": "jane@example.com", "age": 25, "city": "San Francisco"}'
);

-- JSON 데이터를 사용한 쿼리 예제
-- 특정 사용자의 이메일 가져오기
SELECT UserID, UserName, UserData->>'email' AS Email
FROM Users
WHERE UserID = 1;
  • JSON_EXTRACT
SELECT JSON_EXTRACT(options, `$[0]`) as first_element
SELECT JSON_EXTRACT(options, `$`) as all_elements

참고
https://www.lesstif.com/dbms/mysql-json-data-54952420.html

0개의 댓글