728x90
데이터 타입을 바꾸고 싶을 때 :
CAST(변수 이름 AS 원하는 타입)
SELECT cast(content_price as decimal)
[타입 종류]
숫자 데이터 형식
데이터 형식 | 바이트 수 | 숫자 범위 | 설명 |
BIT(N) | N/8 | 1~64Bit 표현, b'0000'형식으로 표현 | |
TINYINT | 1 | -128 ~ 127 | 정수 |
SMALLINT | 2 | -32,768 ~ 32,767 | 정수 |
MEDIUMINT | 3 | -8,388,608 ~ 8,388,607 | 정수 |
INT INTEGER |
4 | 약-21억 ~ +21억 | 정수 |
BIGINT | 8 | 약 -900경 ~ +900경 | 정수 |
FLOAT | 4 | -3.40E+38 ~ -1.17E-38 | 소수점 아래 7자리까지 표현 |
DOUBLE REAL |
8 | -1.22E-308 ~ 1.79E+308 | 소수점 아래 15자리까지 표현 |
DECIMAL(m,[d]) NUMBER(m,[d]) |
5~17 | -10^38+1 ~ 10^38-1 | 전체 자릿수(m)와 소수점 이하 자릿수(d)를 가진 숫자형 예) decimal(5,2)는 전체 자릿수를 5자리로 하되, 그 중 소수점 이하를 2자리로 하겠다. |
- DECIMAL과 FLOAT,DOUBLE의 차이
* DECIMAL은 정확한 수치를 저장(소수점이 들어간 실수를 저장하려면 DECIMAL 사용) 하지만 FLOAT와 DOUBLE은 근사치의 숫자를 저장한다. 대신 FLOAT와 DOUBLE은 상당히 큰 숫자를 저장할 수 있다.
* 부호없는 정수(양수)만 데이터 타입을 지정할 수 있는데 선언 시 UNSIGNED 예약어만 뒤에 붙여주면 된다.
문자 데이터 형식
데이터 형식 | 바이트 수 | 설명 | |
CHAR(n) | 1 ~ 255 | 고정길이 문자형 n을 1부터 255까지 지정 그냥 CHAR만 쓰면 CHAR(1)과 동일 |
|
VARCHAR(n) | 1 ~ 65535 | 가변길이 문자형 n을 사용하면 1부터 65535까지 지정 |
|
BINARY(n) | 1 ~ 255 | 고정길이의 이진 데이터 값 | |
VARBINARY(n) | 1 ~ 255 | 가변길이의 이진 데이터 값 | |
TEXT 형식 | TINYTEXT | 1 ~ 255 | 255 크기의 TEXT 데이터 값 |
TEXT | 1 ~ 65535 | N 크기의 TEXT 데이터 값 | |
MEDIUMTEXT | 1 ~ 16777215 | 16777215 크기의 TEXT 데이터 값 | |
LONGTEXT | 1 ~ 4294967295 | 최대 4GB 크기의 TEXT 데이터 값 | |
BLOB 형식 | TINYBLOB | 1 ~ 255 | 255 크기의 BLOB 데이터 값 |
BLOB | 1 ~ 65535 | N 크기의 BLOB 데이터 값 | |
MEDIUMBLOB | 1 ~ 16777215 | 16777215 크기의 BLOB 데이터 값 | |
LONGBLOB | 1 ~ 4294967295 | 최대 4GB 크기의 BLOB 데이터 값 | |
ENUM(값들...) | 1 또는 2 | 최대 65535개의 열거형 데이터 값 | |
SET(값들...) | 1, 2, 3, 4, 8 | 최대 64개의 서로 다른 데이터 값 |
* CHAR 형식은 고정길이 문자형으로 자릿수가 고정되어 있다. 예를 들어, CHAR(100)에 'ABC' 3글자만 저장해도 100자리를 모두 확보한 후에 앞에 3자리 사용하고 97자리는 낭비한다. 때문에 가변길이 문자형인 VARCHAR를 사용하는게 좋아보이지만 되도록 CHAR로 설정하는 것이 INSRET/UPDATE 시 일반적으로 더 좋은 성능을 발휘한다.
* TEXT는 대용량 글자를 저장하기 위한 형식
* BLOB은 사진파일, 동영상 파일 등의 대용량의 이진 데이터를 저장하는데 사용
날짜와 시간 데이터 형식
데이터 형식 | 바이트 수 | 설명 |
DATE | 3 | 날짜는 1001-01-01 ~ 9999-12-31 까지 저장되며 날짜 형식만 사용 'YYYY-MM-DD' 형식으로 사용됨 |
TIME | 3 | -838:59:59.000000 ~ 838:59:59.000000 까지 저장되며 'HH:MM:SS' 형식으로 사용 |
DATETIME | 8 | 날짜는 1001-01-01 00:00:00 ~ 9999-12-31 23:59:59 까지 저장되며 형식은 'YYYY-MM-DD HH:MM:SS' 형식으로 사용 |
TIMESTAMP | 4 | 날짜는 1001-01-01 00:00:00 ~ 9999-12-31 23:59:59 까지 저장되며 형식은 'YYYY-MM-DD HH:MM:SS' 형식으로 사용 time_zone 시스템 변수와 관련이 있고 UTC 시간대 변환하여 저장 |
YEAR | 1 | 1901 ~ 2155까지 저장 'YYYY' 형식으로 사용 |
참고 사이트)
728x90
'𝙎𝙌𝙇' 카테고리의 다른 글
[Solvesql] 작품이 없는 작가 찾기 (0) | 2023.03.23 |
---|---|
UNION과 UNION ALL의 차이 (1) | 2023.03.21 |
[Solvesql] 멘토링 짝꿍 리스트 (0) | 2023.02.25 |
[MySQL] 문자열 소문자/대문자 변경 : lower, upper, concat (0) | 2023.02.02 |
[MySQL] 집계함수 : count, sum, avg, max, min, std, stdev_pop, variance, var_pop (0) | 2023.02.01 |