MySQL列类型
MySQL Column Type概述
mysql列类型共三大类:数值类型、字符类型、日期和时间类型。为优化存储一般都采用最精确的类型,varchar虽方便但仍推荐设计时考虑该列的范围,为其选择最佳的类型。
?
?数值类型? ? ? ?java中数值类型有byte、shot、int、long、float、double。于此即为相似MySQL也提供了一系列严格数值类型,近似数值类型(所谓近似就是带小数的数值,计算机二进制不能严格表示)。TINYINT范围与byte一样,大家可以类比下java数据类型。于此同时FLOAT、REAL和DOUBLE PRECISION?DECIMAL等,其实最常用的就是int和DECIMAL,他们基本满足日常应用,DECIMAL提供了确切的精度,DECIMAL(3,2) 分别表示小数点前几位、后面几位。
?
?
类型字节数最小值最大值(Bytes)(有符号/无符号)有符号/无符号)TINYINT
1-128
127
0
255
SMALLINT
2-
32768
32767
0
65535
MEDIUMINT
3-
8388608
8388607
0
16777215
INT
4-
2147483648
2147483647
0
4294967295
BIGINT
8-
9223372036854775808
9223372036854775807
0
18446744073709551615
字符类型
字符类型共有八种:char、varchar、binary char、binary varchar、blob、text、enum、set 。其中最常用的有:varchar、char。下面比较下最常用的他们之间有何不同。
?
char表示定长字符串,最大长度为255。char(8)占用8个字符,如果我们插入'niumd',数据库存储:'niumd ? '占用8个字符,插入'niumaodong',则会被截断为'niumaodo'。
?
varchar表示变长字符串,最大长度65535。varchar(8)如果插入'niumd',数据库存储'niumd'占用五个字符,同样如果超长插入'niumaodong',则会被截断为'niumaodo'。
?
? ? ? ?blob表示二进制字符串,例如我们将图片保存到数据库,选择此类型,读取程序读取图片二进制字节,存入数据库,text可以视为很长的varchar,enmu则表示在固定的该列必须选择列表值,例如性别列,enmu列值选择:‘女’、‘男’。
?
?
日期和时间类型? ? ? ?所谓日志无非就是年月日时分秒而已,MySQL支持year、date、time、datetime、timestamp类型。
?
year类型:
4位字符、数字年范围1901——2155 ;
2为字符、数字年范围0——99、1——99;
注意:二位字符或者数字以69为临界点,yy<=69,表示20yy,例如1代表2001,而yy>70表示1970.
?
date类型:
表示YYYY-MM-DD格式时间,例如:2011-06-01(儿童节快乐)。
?
time类型:
格式非严格,即HH MM SS代表时分秒,HH MM SS之间间隔可以为- 、:等分割符。建议采用:HH:MM :SS,比较符合习惯。
datetime类型:
格式非严格,任何标点均可表示年月日时分秒之间的分割,例如:yyyy-mm-dd hh:mm:ss,yyyy.mm.dd hh+mm+ss,……。
timestamp类型:
同datetime,格式非严格,但其属性不固定,取决于服务器版本和运行模式。
?
备注:时间不合法,例如:2011-06-01 23:61:24,将视为无效转为0000-00-00 00:00:00.
?
?