1.列类型
1. 整形
- tinyint :迷你整形
系统采用1个字节来保存的整形:1个字节 = 8位,最大能表示的数值为0 ~255,实际区间:-128 ~127 - smallint:小整形
系统采用2个字节来保存的整形:2个字节 = 16位,最大能表示的数值为0~65535 - mediumint:中整形
系统采用3个字节来保存的整形:3个字节 = 24位 - int:标准整形
系统采用4个字节来保存的整形:4个字节 = 32位 - bigint:大整形
系统采用8个字节来保存的整形:8个字节 = 64位
实际应用中,应根据对应数据范围选择对应的整形类型,通常使用的比较多的是:tinyint和int
2. 无符号标识设定
表示存储的数据在当前字段中无负数(只有正数)
基本语法:在类型在之后加上一个 unsigned
3. 显示长度
指数据(整形)在数据显示的时候,到底可以显示多少位
tinyint(3):表示最长可以显示3位,unsigned说明只能为正数,0~255最多只有3位
tinyint(4):表示最长可以显示4位,比上面多出一位符号位
显示长度只是代表数据是否可以达到指定的长度,但是不会自动满足到指定长度:如果想要数据显示时,保持最高位(显示长度),还需要给字段增加一个zerofill
的属性
注:负数不能使用zerofill
zerofill //从左侧开始填充0
一旦使用zerofill
就相当于确定该字段为unsigned
2. 小数类型
1.浮点型:精度类型,是一种有可能丢失精度的数据类型
浮点数的应用:通常是用于保存一些数量特别大,大到不用那么精确的数据
浮点型之所以能够存储较大的数值,原因就是利用数据的位来存储指数
丢失精度:丢失精确度,数据可能不准确(尤其是在超出范围(精度长度)时)
- float:单精度类型,系统提供4个字节用于存储数据,但是能表示的数据范围比整形大得多,大概是1e38,缺陷为只能保证大概7个左右的精度(如果说数据在7位以内基本准确,超出后不准确)
基本语法:
float:表示不指定小数位的浮点数
float(M,D):表示一共存储M个有效数字其中小数部分占D位
注:如果数据丢失,那么浮点型是按照四舍五入的方式进行计算
- double:双精度类型,系统用8个字节用于存储数据,范围大概是1e38,但是精度只有15位左右
2. 定点型:能够保证数据精确的小数类型(小数部分可能不精确,超出长度会四舍五入,但是整数部分会一定准确)
定点数的应用:如果涉及到钱的时候可能会用定点数
decimal:定点数,系统自动根据存储的数据来分配存储空间,每大概9位数就会分配4个字节来进行存储,且小数部分和整数部分是分开的
基本语法:decimal(M,D)
M:总长度,最大值不能超过65
D:小数部分长度,最大值不能超过30
定点与浮点区别:
3. 日期时间类型
- data:日期类型,系统使用三个字节来存储数据,对应格式:YYYY-mm-dd
范围:1000-01-01 ~ 9999-12-12
初始值为0000-00-00 - time:时间类型,能够表示某个指定时间,系统使用三个字节来存储数据,对应格式:HH:ii:ss
范围:-838:59:59 ~ 838:59:59
在mysql中具体用处为表示时间段 - datatime:日期时间类型,将前面data和time合并表示的时间,使用八个字节存储数据
格式:YYYY-mm-dd HH-ii-ss
范围:1000-01-01 00:00:00 ~ 9999-12-12 23:59:59
初始值:0000-00-00 00:00:00 - timestamp:时间戳类型,mysql中的时间戳只是表示从格林威治时间开始,格式与tadatime相同
- year:年类型,占用一个字节来保存,能表示1900 - 2155年
year有两种插入方式:- 0-99
- 四位数的具体年