본문 바로가기
MYSQL

형 변환

by 융디's 2024. 5. 5.
728x90
형 변환

형 변환

@2024.05.02

MySQL 타입

정수 타입

  • TINYINT : 매우 작은 정수(-128 ~ 127 || 0 ~ 255)
  • SMALLINT : 작은 정수(-32768 ~ 32767 || 0 ~ 65535)
  • MEDIUMINT : 중간 정수(-8388608 ~ 8388607 || 0 ~ 16777215)
  • INT : 일반적인 정수(-2147483648 ~ 2147483647 || 0 ~ 4294967295)
  • BIGINT : 큰 정수

    (-9223372036854775808 ~ 9223372036854775807 || 0 ~ 18446744073709551615)

부동 소수점 타입

  • FLOAT : 단정도 부동 소수점 수
    • 32비트로 표현되며 유효 숫자와 지수로 나타낸다
    • 부호 비트 : 부호를 나타내며 0은 양수, 1은 음수
    • 지수 부분 : 수의 크기
    • 가수 부분 : 수의 정밀도
  • DOUBLE : 배정도 부동 소수점 수
    • 단정도에 비해 높은 정밀도를 가지며, 64비트로 표현된다.
    • 부호 비트 : 부호를 나타내며 0은 양수, 1은 음수
    • 지수 부분 : 수의 크기
    • 가수 부분 : 수의 정밀도
  • DECIMAL : 정밀 십진수
    • 부동 소수점 방식과 달리 소수점 위치가 고정되어 있어 정확한 숫자를 표현하는데 유용
    • 소수점 이하의 숫자의 개수와 저장될 소수점 이하 자릿수를 지정할 수 있다.
    • ex) DECIMAL(5,2)
      • 총 5자리 숫자를 허용하고 소수점 이하 2자리를 허용 ⇒ 999.99까지 값 저장 가능

문자열 타입

  • CHAR : 고정 길이 문자열
    • 항상 일정한 공간을 차지한다.
    • 따라서 공간을 미리 할당받는다.
  • VARCHAR : 가변 길이 문자열
    • 실제 데이터에 따라 필요한 만큼의 공간을 할당받는다.
    • 따라서 공간을 동적으로 할당받는다.
  • TEXT : 긴 텍스트 데이터
  • BLOB : 이진 데이터(이미지, 사운드)

날짜 및 시간 타입

  • DATE : 날짜(YYYY-MM-DD)
  • TIME : 시간(HH:MM:SS)
  • DATETIME : 날짜와 시간(YYYY-MM-DD HH:MM:SS)
  • TIMESTAMP : 날짜와 시간(YYYY-MM-DD HH:MM:SS)을 저장하고 자동으로 업데이트
  • YEAR : 연도(YYYY 또는 YY)

기타 타입

  • BOOL, BOOLEAN : 불리언(0 또는 1).
  • ENUM : 열거형으로, 주어진 값 중 하나만을 가질 수 있는 타입
  • SET : 값의 집합을 나타내는 타입.

형 변환

💡
데이터의 형식으로 다른 형식으로 변환하는 프로세스로, 데이터를 적절한 형식으로 사용할 수 있도록 조작한다.


@기본 구조

CAST(expression AS type)
CONVERT(expression, type)
  1. CAST() 함수 이용
    • 특정 데이터를 다른 데이터 유형으로 변환
    SELECT CAST(123 AS CHAR); -- 숫자를 문자열로 변환
    SELECT CAST('2024-05-02' AS DATE); -- 문자열을 날짜로 변환
  1. CONVERT() 함수 이용
    • CAST() 함수와 매우 유사
    • 다양한 문자열 인코딩으로 변환도 수행 가능
      • USING : COVERT 함수에서 원본 문자열의 현재 인코딩을 지정하는데 사용
      • USING를 사용하지 않으면 MYSQL은 기본 인코딩 형식을 사용하여 변환 시도
      • 데이터베이스 연결 설정에 따라 기본 인코딩 형식은 다를 수 있기 때문에, 명시적으로
        원본 문자열의 인코딩을 지정하는 것이 좋다.
    SELECT CONVERT('2024-05-05', DATE);  -- 문자열을 날짜로 변환 
    SELECT CONVERT('hello' USING UTF8); -- 문자열의 인코딩을 UTF-8로 변환

728x90

'MYSQL' 카테고리의 다른 글

조인  (0) 2024.05.07
GROUP BY  (0) 2024.05.05
[내장 함수] 집계 함수  (0) 2024.05.05
[내장 함수] 날짜형 함수  (0) 2024.05.05
[내장 함수] 숫자형 함수  (0) 2024.05.05