러닝 SQL-(2-1) MySQL 자료형

김동환·2021년 5월 12일
0

들어가기

MariaDB 10.4 이상에서 root 패스워드 최초 설정

MariaDB 10.4+에서는 기존의 UPDATE user SET password = password('new-password') WHERE user = 'root';방식으로는 패스워드 설정이 되지 않습니다. 이는 해당 글의 답변 내용처럼 mysql.user가 더 이상 테이블이 아니라 뷰가 되었기 때문입니다. 따라서 아래와 같은 방식으로 root 패스워드를 설정할 수 있습니다.

$ mysql # 접속
MariaDB [(none)]> use mysql # mysql DB 사용
set password for 'root'@'localhost' = PASSWORD('new-password');

MySQL 자료형

문자 데이터(Character Data)

문자 데이터는 고정 길이 또는 가변 길이 문자열로 저장될 수 있습니다. 고정 길이 문자열은 최대 길이보다 짧은 문자열에 대해서 공백으로 오른쪽을 채워 항상 동일한 수의 바이트를 사용하지만, 가변 길이 문자열은 공백으로 채우는 방법을 사용하지 않아 가변적인 바이트를 사용한다는 차이가 있습니다.

고정 길이 문자열

  • char(20) 과 같은 방식으로 정의
  • 최대 255 바이트까지 사용 가능
  • 열에 저장할 모든 문자열의 길이가 동일할 때 사용

가변 길이 문자열

  • varchar(20) 과 같은 방식으로 정의
  • 최대 65,355 바이트까지 사용 가능
  • 열에 저장할 문자열의 길이가 서로 다를 때 사용

텍스트 데이터

varchar 열에 64KB 제한을 초과하는 데이터를 저장하려면 텍스트 자료형 중 하나를 사용해야 합니다. 텍스트 자료형의 예시는 아래와 같습니다.

자료형최대 바이트 크기
tinytext255
text65,535
mediumtext16,777,215
longtext4,294,967,295

숫자 데이터(Numeric Data)

정수 자료형

정수 자료형은 signed 또는 unsigned의 부호 키워드를 붙여 부호의 여부를 포함하여 생성 할 수 있습니다. 아래는 정수 저장 시 사용되는 5가지 자료형의 예시입니다.

자료형부호 있는 정수 저장값의 범위부호 없는 정수 저장값의 범위
tinyint-128 ~ 1270 ~ 255
smallint-32,768 ~ 32,7670 ~ 65,535
mediumint-8,388,608 ~ 8,388,6070 ~ 16,777,215
int-2,147,483,648 ~ 2,147,483,6470 ~ 4,294,967,295
long-2E+63 ~ 2E+63 - 10 ~ 2E+64 - 1

부동소수점 자료형

부동소수점 자료형에서는 필요에 따라 정밀도와 척도를 설정할 수 있습니다.

  • 정밀도(precision): 소수점 왼쪽과 오른쪽 모두에 허용되는 자릿 수
  • 척도(scale): 소수점 오른쪽의 허용 자릿수

부동소수점 저장 시 사용되는 자료형은 아래와 같습니다.

자료형숫자 범위
float(p,s)음수 범위: -3.402823466E+38 ~ -1.175494351E-38
양수 범위: 1.175494351E-38 ~ 3.402823466E+38
double(p,s)음수 범위: -1.7976931348623157E+308 ~ -2.2250738585072014E-308
양수 범위: 2.2250738585072014E-308 ~ 1.7976931348623157E+308

부동소수점 열에도 unsigned 키워드를 정의할 수 있지만, 이는 데이터 범위를 변경하지는 않고 단지 음수가 저장되지 않도록 방지하는 역할만 합니다.

시간 데이터(Temporal Data)

MySQL에서 지원하는 시간 자료형은 아래와 같습니다. 각 자료형은 기본 형식을 가지고 있으며, 검색 결과는 이 형식에 맞춰 제공됩니다. (삽입이나 업데이트 시에도 해당 형식을 활용해야 합니다.) 특별히 datetime, timestamp, time 자료형에서는 소수점 이하 6자리까지 사용할 수 있는데, 이 때 datetime(2) 와 같이 표기하여 사용할 소수점 범위를 정할 수 있습니다.

자료형기본 형식허용값
dateYYYY-MM-DD1000-01-01 ~ 9999-12-31
datetimeYYYY-MM-DD HH:MI:SS1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.999999
timestampYYYY-MM-DD HH:MI:SS1970-01-01 00:00:00.000000 ~ 2038-01-18 22:14:07.999999
yearYYYY1901 ~ 2155
timeHHH:MI:SS-838:59.59.000000 ~ 838:59:59.000000

참고

이 글 및 이와 관련된 앞으로의 글의 모든 내용은 한빛미디어의 러닝 SQL의 내용을 공부하며 요약한 것입니다.

profile
개발을 통해 다양한 세상을 경험하는 것을 즐기는 개발자입니다.

0개의 댓글