一、整数型
根据字节数的不同(取值范围不同),整数型可以分为以下几类:
1、INT
INT是最常用的数值类型,分为有符号和无符号。有符号的取值范围为-2147483648到2147483647,无符号的取值范围为0到4294967295。最大显示宽度为11。
2、TINYINT
分为有符号和无符号。有符号的取值范围为-128-127,无符号的范围是 从 0 到 255 。最大显示宽度为4。
3、MEDIUMINT
分为有符号和无符号。有符号的取值范围为-8388608到8388607,无符号的范围是0到16777215,最大显示宽度为9。
4、BIGINT
取值范围最大。分为有符号和无符号。最大显示宽度为20。
5、SMALLINT
分为有符号和无符号。有符号的取值范围为-32768-32767,无符号的范围是0到65535,最大显示宽度为6。
6、注意事项
- 以int(5)为例:括号里面的数值只代表显示宽度,并不能限制这个数据类型实际的取值范围和占用空间。
- 在指定字段的数据类型时,如果在数据类型后面加上UNSIGNED可以禁止负数。
二、小数型
1、FLOAT
- 只能为有符号的,占4个字节。
- FLOAT(M,D): M表示数据的显示宽度,D表示小数位数。默认为(10,2)
2、DOUBLE
- 只能为有符号的,占8个字节。
- DOUBLE(M,D): M表示数据的显示宽度,D表示小数位数。默认为(16,4)
3、DECIMAL
只能为有符号的。
三、日期时间型
1、DATE
- 例子:1999-6-25
- 范围:1000-01-01到 9999-12-31
2、DATETIME
- 例子:1999-6-25 14:30:00(1999年6月25日下午2点半)
- 范围:1000-01-01 00:00:00到9999-12-31 23:59:59
3、TIME
- 例子:1:20:30(时分秒)
- 范围:-838:59:59到838:59:59
4、TIMESTAMP
- 时间戳。
- 例子:1999年6月25日下午2点半,在数据库中存储为:19990625143000
- 范围:1970-01-01 00:00:00 到 2037-12-31 23:59:59
5、YEAR
- 以2位或4位存储年份值
- 若为2位,范围为:1970-2069;若为4位,范围为1901-2155
四、字符串
前两种常用:
1、CHAR
- 固定长度字符串,长度为1-255。若内容小于指定长度,右边填充空格,默认长度为1。
- 如果要存储5位长度的字符串,就要指定char的长度为6,这样才能完整地存储5位的字符。同理对于其他类型也是如此。
2、VARCHAR
- 可变长度字符串。长度为1-255,有1位要来存储长度信息。定义该类型时必须指定长度。
- char 和 varchar的选择原则:
(1)如果长度固定,选择char,如果长度不固定则选择varchar ,字符串是几位就数据库就会存储几位,可以节省占用空间。
(2)若长度不大,选择char,处理固定长度的字符的效率比处理非固定长度字符的效率更高
3、其他
- BLOB或TEXT
- TINYBLOB
- MEDIUMBLOB
- LONGBLOB
- ENUM