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) 分别表示小数点前几位、后面几位。
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.