一, 整型
1. 有符号整型
类型 字节 范围
- TINYINT 1 -27~27-1
- SMALLINT 2
- MEDIUMINT 3
- INT 4
- BIGINT 5
2. 无符号整型: unsigned
3. 支持显示宽度 int(5), 必须结合 zerofill 使用
二, 浮点型
1. 类型
float(单精度) 4 字节
double(双精度) 8 字节
2. 浮点数声明: float(M, D), double(M, D), 总位数是 M, 小数位数是 D, 整数位数为 M-D, 如果精度超出了小数范围, 会四舍五入
3. 浮点数存的是近似数, 精度可能丢失.
三, 定点数
1. 类型
decimal(M, D), 总位数是 M, 小数位数是 D, 整数位数是 M-D
2. 定点数是变长的
3. 浮点数和定点数都支持显示宽度和无符号数.
四, 字符型
1. 类型
char(长度) 定长 最大 255
varchar(长度) 变长 最大 65535
tinytext 大段文本 255
text 大段文本 65535
mediumtext 大段文本 224 - 1
longtext 大段文本 232 - 1
2. char 和 varchar 的区别
相同点: 它们最多能保留 10 个字符
不同点: char 不回收富余字节, varchar 会回收富余字节. char 效率高, 浪费内存, varchar 节省空间, 效率比 char 低.
3. char 的最大长度为 255,varchar 最大长度为 65535, 实际根本达不到, 具体长度和字符编码有关.
4. 一个记录总长度不能超过 65535 个字节
5. 大块文本不计算在总长度中, 一个大块文本只占用 10 个字节来保存文本的地址.
五, 枚举
1. 从集合中选择一个数据 (单选)
2. MySQL 的枚举类型是通过整数来管理的, 第一个值是 1, 第二个值是 2, 以此类推. 既然枚举类型是数字, 那么可以直接插入数字.
3. 枚举的优点:
a. 运行速度快 (数字比字符串运行速度快)
b. 限制数据, 保证数据完整性
c. 节省空间
六, 集合
1. 从集合中选择一些数据 (多选)
2. 插入的顺序不一样, 但显示的顺序是一样的
3. 插入集合中没有的选项会报错
4. 每个集合的元素都分配一个固定的值, 分配的方式从左往右按 2 的 0,1,2 ... 次方
5. 如果是多选, 它们的关系是按位或
七, 日期类型
1. 类型
datetime 日期时间, 占用 8 个字节
date 日期, 占用 3 个字节
time 时间, 占用 3 个字节
timestamp 时间戳, 占用 4 个字节
year 年份, 占用一个字节
2. datetime 格式: 年 - 月 - 日 小时: 分钟: 秒
八, boolean 类型
1. MySQL 不支持 bool 类型, true 和 false 在数据库中对应 1 和 0
来源: http://www.bubuko.com/infodetail-3016106.html