MySQl数据类型的应用于简介
整数类型
数据类型的选择依据有两条:
- 用占用字节数少的整数类型可以节省存储空间
- 确保数据不会超过取值范围
浮点数类型
使用前提:浮点数类型有个缺陷,就是不精准
定点数类型
MySQL 用 DECIMAL(M,D)的方式表示高精度小数。其中,M 表示整数部分加小数部分,一共有多少位,M<=65。D 表示小数部分位数,D<M
文本类型
- CHAR(M):固定长度字符串。CHAR(M) 类型必须预先定义字符串长度。如果太短,数据可能会超出范围;如果太长,又浪费存储空间。
- VARCHAR(M): 可变长度字符串。VARCHAR(M) 也需要预先知道字符串的最大长度,不过只要不超过这个最大长度,具体存储的时候,是按照实际字符串长度存储的。
- TEXT:字符串。系统自动按照实际长度存储,不需要预先定义长度。
- ENUM: 枚举类型,取值必须是预先设定的一组字符串值范围之内的一个,必须要知道字符串所有可能的取值。
- SET:是一个字符串对象,取值必须是在预先设定的字符串值范围之内的 0 个或多个,也必须知道字符串所有可能的取值。
TEXT有四种类型
- TINYTEXT:255 字符(这里假设字符是 ASCII 码,一个字符占用一个字节,下同)。
- TEXT: 65535 字符。
- MEDIUMTEXT:16777215 字符。
- LONGTEXT: 4294967295 字符(相当于 4GB)。
不过,需要注意的是,TEXT 也有一个问题:由于实际存储的长度不确定,MySQL 不允许 TEXT 类型的字段做主键。遇到这种情况,你只能采用 CHAR(M),或者 VARCHAR(M)。
所以只要不是主键字段,就可以按照数据可能的最大长度,选择这几种 TEXT 类型中的的一种,作为存储字符串的数据类型。
日期与时间类型
为了确保数据的完整性和系统的稳定性,优先考虑使用 DATETIME 类型。