MySQL基本数据类型
常用的字段类型大致可以分为数值类型
、字符串类型
、日期时间类型
三大类
1. 数值类型
数值类型可以分为整型、浮点型、定点型三小类。
1.1 整型
(tiny:极小的, small:小的,medium:中等的,big:大的)
tinyInt : 1字节
smallInt: 2字节
mediunInt : 3字节
int: 4字节
bigInt: 8字节
注:int(M)中的 M 代表最大显示宽度,并不是说 int(1) 就不能存储数值10了,不管设定了显示宽度是多少个字符,int 都是占用4个字节,即int(5)和int(10)可存储的范围一样。
1.2 浮点数
- float:4字节
- double:8字节
float(6,3),即6位,整数部分最大是3位。如果插入一个数123.45678,实际数据库里存的是123.457
1.3 定点型 decimal
DECIMAL(M,D)
- M是最大位数(精度),范围是1到65。可不指定,默认值是10。
- D是小数点右边的位数(小数位)。范围是0到30,并且不能大于M,可不指定,默认值是0。
例如字段 salary DECIMAL(5,2),能够存储具有五位数字和两位小数的任何值,因此可以存储在salary列中的值的范围是从-999.99到999.99。
2. 字符串类型
- char: 最多255个字符,定长字符串
- varchar: 可变长度,最多65535个字符
- tinytext:可变长度,最多255个字符
- text:可变长度,最多65535个字符
- mediuntext: 可变长度,最多2的24次方-1个字符
- longtext: 可变长度,最多2的32次方-1个字符
1.char(n)和varchar(n)中括号中n代表字符的个数,并不代表字节个数,所以当使用了中文的时候(UTF8)意味着可以插入m个中文,但是实际会占用m*3个字节。
2.char和varchar最大的区别就在于char不管实际value都会占用n个字符的空间,而varchar只会占用实际字符应该占用的空间+1,并且实际空间+1<=n。
3.超过char和varchar的n设置后,字符串会被截断。
5.char在存储的时候会截断尾部的空格,varchar和text不会。
6.varchar会使用1-3个字节来存储长度,text不会。
3. 日期时间类型
MySQL支持的日期和时间类型有:YEAR
、TIME
、DATE
、DATETIME
、TIMESTAMP
TIMESTAMP 字段数据会随着系统时区而改变但 DATETIME 字段数据不会