最好的资料是 官方文档 !!!
Data Type Storage Requirements

Numeric Types | 数值型

  • 官方说明文档: https://dev.mysql.com/doc/refman/5.6/en/integer-types.html

    TINYINT, 1Bytes
    SMALLINT, 2Bytes
    MEDIUMINT, 3Bytes
    INT, 4Bytes
    BIGINT, 8Bytes
    FLOAT | DOUBLE | DECIMAL ,指定精度 FLOAT(5,3)可以显示 12.345,超过这个范围进行四舍五入。不指定精度时,FLOAT和DOUBLE按照实际的精度显示,而DECIMAL默认整数位为10小数位为0。FLOAT为4Bytes, DOUBLE为8Bytes, DECIMAL最大支持位数65. 可以参照这篇介绍这一篇

String Types | 字符串

  • 官方说明文档:https://dev.mysql.com/doc/refman/5.6/en/string-types.html

    CHAR(L) 与 VARCHAR(L),L表示L个字符个,而非L个字节,UTF8编码中,一个汉字字符占3Bytes
    CHAR 定长,长度0~255,例如CHAR(4),可以存储4个字符,不足4个字符时在后面补空格后存储,超过则截断,取出该字段时将自动过滤掉后边的空格,除非 PAD_CHAR_TO_FULL_LENGTH 模式已启用
    VARCHAR 可变长,长度0~65535,例如VARCHAR(4),英文下存储2个字符时占用3bytes,存储4个字符时占用5bytes,超过则截断
    BLOB 类的用于存储二进制,TEXT 类的用于存储字符串。均不能有默认值
    ENUM , gender ENUM('0', '1'), 表示gender字段只能存放 ‘0’, ‘1’其中的一个值, 官方文档
    SET , major SET('computer', 'network'), 表示major字段可存放 ‘’, ‘computer’, ‘network’, ‘computer,network’其中四个中的一个值, 官方文档

Date and Time Types | 日期和时间

  • 官方说明文档:https://dev.mysql.com/doc/refman/5.0/en/date-and-time-types.html

    DATE, 3Bytes, ‘1000-01-01’ ~ ‘9999-12-31’
    DATETIME, 8Bytes, ‘1000-01-01 00:00:00’ ~ ‘9999-12-31 23:59:59’
    TIMESTAMP, 4Bytes, ‘1970-01-01 00:00:01’ UTC ~ ‘2038-01-19 03:14:07’ UTC, Automatic Initialization and Updating
    TIME, 3Bytes, ‘-838:59:59’ ~ ‘838:59:59’
    YEAR, 1Bytes, YEAR(2) 1-69 2001-2069, 70-99 1970-1999. YEAR(4) 1901-2155

Data Type Default Values | 数据类型默认值