MySQL-基础篇-数据类型

MySQL基本功-数据类型

  • 数据类型作用
    • 数值类型
    • 字符串类型
    • 日期和时间类型

数据类型作用

给表字段指定存储格式、约束、有效范围,MySQL主要有以下几种数据类型:

  • 数值类型
  • 字符串类型
  • 日期和时间类型

数值类型

类型 关键字 字节 无符号最小值 无符号最大值
整数 TINYINT 1 0 28-1
整数 SMALLINT 2 0 216-1
整数 MEDIUMINT 3 0 224-1
整数 INT 4 0 232-1
整数 BIGINT 8 0 264-1
浮点数 FLOAT 4 ± 1.175494351 E − 38 \pm1.175494351E-38 ±1.175494351E38 ± 3.402823466 E + 38 \pm3.402823466E+38 ±3.402823466E+38
浮点数 DOUBLE 4 ± 2.2250738585072014 E − 308 \pm2.2250738585072014E-308 ±2.2250738585072014E308 ± 1.7976931348623157 E + 308 \pm1.7976931348623157E+308 ±1.7976931348623157E+308
定点数 DECIMAL(M,D) M+2 和Double一致 和Double一致
位类型 BIT 1~8 BIT(1) BIT(64)
  1. 有符号情况下,由于需要一位表示符号,因此数值范围为 -2M*8-1~+2M*8-1-1 ,其中M表示字节数。
    • 单精度 符号位1 + 指数位8 + 尾数位23
    • 双精度 符号位1 + 指数位11 + 尾数位52
  2. 宽度定义,类似INT(8)表示宽度为8位,表示如果数值宽度小于8位时在数字前面填满宽度,和zerofill搭配使用。

字符串类型

字符串类型 字节 备注
CHAR(M) M M为0~255之间整数
VARCHAR(M) M为0~65535之间整数
BLOB 允许长度0~65535字节
TEXT 允许长度0~65535字节
LONGTEXT 允许长度0~4294967295字节
  1. CHAR和VARCHAR的区别
    • CHAR的长度固定为声明的长度,而VARCHAR中的值为可变长字符串
    • 检索的时候,CHAR列删除了尾部的空格,而VARCHAR会保留空格

日期和时间类型

数据类型 字节 最小值 最大值
DATETIME 8 1000-01-01 00:00:00 9999-12:31 23:59:59
TIMESTAMP 4 19700101080001 2038年某个时刻
DATE 4 1000-01-01 9999-12-31
TIME 3 -838:59:59 838:59:59
YEAR 1 1901 2155
  1. DATETIME和TIMESTAMP的区别是什么?
    • TIMESTAMP的时间范围较小,不适合存放比较久远的数据
    • 表中第一个TIMESTAMP列默认值自动设置为current_timestamp,其他TIMESTAMP的列默认值为’0000-00-00 00:00:00’
    • TIMESTAMP类型和时区相关,不同时区的人看到的时间是不一样的,而DATETIME只能反映插入时的本地时区。

你可能感兴趣的:(MySQL)