MYSQL基础笔记(六)- 数据类型一
数据类型(列类型)
所谓数据烈性,就是对数据进行统一的分类。从系统角度出发时为了能够使用统一的方式进行管理,更好的利用有限的空间。
SQL中讲数据类型分成三大类:1、数值类型,2、字符串类型和时间日期类型。
一、数值型
数值型数据,都是数值。
系统讲数值型分为整数型和小数型。
整数型:存放整数型数据,在SQL中考虑为了节约磁盘空间,系统将整形又细分成了5类。
Tinyint:迷你整型,使用一个字节存储, 表示状态最多为256种。(常用)
Smallint :小整型,使用2个字节存储,表示状态最对为65536种。
Mediumint:中整型,使用3个字节存储。
Int:标准型,使用4个字节存储。(常用)
Bigint:大整型,使用8个字节存储。
整型数据插入只能插入范围内的整型。
使用无符号数据,给数据类型限定 unsigned;
小数型:带小数点或则范围超出整型的数值类型。
SQL将小数型细分为两种:浮点型和定点型
浮点型:是一种精度型数据,应为超出指定范围后,会丢失精度(自动四舍五入)。
理论上分为两种精度:float,单精度,占用4个字节存储,精度范围大概为7位左右。double,双精度,占用8个字节存储。
浮点数一定会四舍五入(超出精度范围),浮点数如果因为系统仅为导致整数部分超出指定的长度,那么系统也是允许成立的。
定点型:绝对的保证整数部分不会被四舍五入,小数部分有可能(理论上也不会丢失精度,理论上?)
时间日期类型
Datetime: 时间日期,格式是YYYY-mm-dd HH:ii:ss,表示返回从1000到9999,有0值:0000-00-00 00:00 :00
Date:日期,就是datetime中的date部分。
Time:时间(段),指定的莫个区间之间,-时间到+时间。
Timestamp:时间戳,其实并不是时间戳。只是从1970年开始的YYYY-mm-dd HH:ii:ss,格式和datetime完全一致。只要当前所在记录被更新,该字段一定会自动更新成当前时间。
Year:年份,两种形式,year(2)和year(4).
以PHP为实现主要操作对象,PHP中有非常强大的时间日期处理函数,date,只需要一个时间戳就可以转成任意类型的时间,以PHP为主的时候,都是在数据库中使用时间戳(整型)来存储时间。