字符类型
CHAR(size):存储定长字符串,最大长度为255个字节(在mysql中,长度设置超过3的char类型会自动转为varchar类型,而长度不超过4个字符的varchar会自动转化为char类型)
VARCHAR(size):存储变长字符串,最大长度为65535个字节
TEXT:小文本串,最大长度为65535
TINYTEXT:非常小的文本串,最大长度为255
MEDIUMTEXT:中等文本串,最大长度为2^24-1
LONGTEXT:大文本串,最大长度为4G
数值类型
TINYINT[(M)]:1个字节,有符号的范围是-128到127,无符号的范围是0到255
SMALLINT[(M)]:2个字节…
MEDIUMINT[(M)]:3个字节…
INT[(M)]:4个字节
BIGINT[(m)]:8个字节
FLOAT[(M,D)]:4字节单精度
DOUBLE[(M,D)]:8字节双精度
REAL[(M,D)]:DOUBLE同义词
DOUBLE PRECISION[(M,D)]:DOUBLE同义词
DECIMAL(M[,D])(NUMERIC)(mysql中numeri会自动转化为decimal类型)
BIT(M):允许存储M位值。M范围为1到64。
日期时间类型
DATETIME:支持的范围是’1000-01-01 00:00:00′到’9999-12-31 23:59:59′。MySQL以’YYYY-MM-DD HH:MM:SS’格式来显示DATETIME值
DATE:只存储日期,支持的范围是’1000-01-01′到’9999-12-31′。MySQL以’YYYY-MM-DD’格式来显示DATE值
TIME:只存储时间,范围是’-838:59:59′到’838:59:59′。MySQL以’HH:MM:SS’格式来显示TIME
YEAR[(2|4)] :一个2或4位数字格式的年(缺省是4位)。允许的值是1901到2155,和0000(4位年格式),如果你使用2位,1970-2069( 70-69)。MySQL以YYYY格式来显示YEAR值,但是允许你把使用字符串或数字值赋给YEAR列。
TIMESTAMP[(M)]:一个时间戳记。范围是‘1970-01-01 00:00:00’到2037年的某时。MySQL以YYYYMMDDHHMMSS、 YYMMDDHHMMSS、YYYYMMDD或YYMMDD格式来显示TIMESTAMP值,取决于是否M的值,它必须是2-14之间的偶数,如果不是会被强制转换。一个TIMESTAMP列对于记录一个INSERT或UPDATE操作的日期和时间是有用的,因为如果你不自己给它赋值,它自动地被设置为最近操作的日期和时间。你以可以通过赋给它一个NULL值设置它为当前的日期和时间。
二进制类型
BINARY(与char同,mysql会根据指定的长度自动转换binary和varbinary类型)
VARBINARY
TINYBLOB
BLOB
MEDIUMBLOB
LONGBLOB
-------------------------------------------------------------
与java.sql.types的对应
MySQL java.sql.Types
bigint bigint
tinyblob binary
bit bit
enum,set,char char
date,year date
decimal,numeric decimal
double,real double
mediumint,int integer
blob,mediumblob blob
longblob
float real
smallint smallint
time time
timestamp,datetime timestamp
tinyint tinyint
varbinary,binary varbinay
varchar,tinytext,text varchar