M为最大值,D为精度值
整型
tinyint |
有符号值:-128到127(-27到27-1) 无符号值:0到255(0到28-1) |
1 |
smallint |
有符号值:-32768到32767(-215到215>-1) 无符号值:0到65535(0到216-1) |
2 |
mediuming |
有符号值:-8388608到8288607(-223到223-1) 无符号值:0到16777215(0到224-1) |
3 |
int |
有符号值:-2147483648到2147483647(-231到231-1) 无符号值:0到4294967295(0到232-1) |
4 |
bigint |
有符号值:-9223372036854775808到9223373036854775807(-263到263-1) 无符号值:0到18446744073709551615(0到264-1) |
8 |
浮点型
float[(M,D)] |
有符号值:-3.402823466e+38到-1.175494351e38 无符号值:0到1.175494351e-38到3.402823466e+38 |
4 |
double[(M,D)] |
有符号值:-1.797693134862315+308到-2.2250738585072014e-308 无符号值:0到2.2250738585072014e-308到1.797693134862315+308 |
8 |
定点数类型
M范围是0-65
D范围是0-30
日期时间型
year |
1901到2155 |
YYYY |
1 |
time |
-838:59:59到838:59:59 |
HH:MM:SS |
3 |
date |
1000-01-01到9999-12-31 |
YYYY-MMM-DD |
4 |
datetime |
1000-01-01 00:00:00到9999-12-31 23:59:59 |
YYY-MM-DD HH:MM:SS |
8 |
timestamp |
1970-01-01 08:00:01到2038-01-19 11:14:07 |
YYY-MM-DD HH:MM:SS |
4 |
字符型
cahr(M) |
0<=M<=255 |
M个字节 |
varchar(M) |
L<=M且0<=M<=65535 |
L+1个字节 |
tinyblob,tinytext |
0-255(28-1) |
L+1 |
blob,text |
0-65535(216-1) |
L+2 |
mebdiumblob,mediumtext |
0-224-1 |
L+3 |
longblob,longtexy |
0-232-1 |
L+5 |
enum(‘valude1’,'valude2',……) |
取决于枚举值个数(最多65,535个值),例如:性别 enum(‘男’,'女') |
0 |
set(‘valude1’,'valude2',……) |
取决set成员的数目(最多64个成员) |
0 |
text与blob的区别在于:text不能存储图片。blob是二进制流,text是非二进制。
mysql 的二进制数据类型 BINARY, VARBINARY, BLOB 都没有字符集的概念。在存取blob数据时,要入库时base64,出库时再base64。
ZEROFILL属性(零值)适用于所有数值类数据列类型,作用是,如果数值的宽度小于定义的显示宽度,则在数值前填充0。
UNSIGNED属性不允许数据列出现负数。
AUTO_INCREMENT属性可生成独一无二的数字序列。只对整数类的数据列有效。
NULL和NOT NULL属性设置数据列是否可为空。
DEFAULT属性可为数据列指定默认值。