MyQSL值类型
【数值型-整数类型】1字节=8位
类型 | 存储空间(字节) | 最小值(有符号/无符号) | 最大值(有符号/无符号) |
tinyint | 1 | -128/0 | 127/255 |
smallint | 2 | -23768/0 | 32767/65535 |
mediumint | 3 | -8388608/0 | 8388607/16777215 |
int/intege | 4 | -2147483648/0 | 2147483647/4294967295 |
bigint | 8 | -9223372036854770000/0 | 9223372036854775807/18446744073709551615 |
可使用unsigned控制正负
create table tb_int( a tinyint unsigned, b tinyint ); insert into tb_int values (255,127);
可使用zerofill来进行前导零填充(最小宽度为2)
alter table tb_int add c tinyint(2) zerofill; insert into tb_int values (6); #06 insert into tb_int values (126); #126
也存在布尔bool类型,但是一般只用tinyint(1),例如:男女、有无、开关。。。
【数值型-小数类型】 浮点/定点
单精度float(4字节)/双精度double(8字节)
存储空间=精度空间+幂空间(如:123.456=0.123456 * 10^3,即123456和3)
类型 | 存储空间(字节) | 最小值 | 最大值(有符号/无符号) |
float | 4 | 3.402823466E+38 | 3.402823466E+38 |
double | 8 | 1.7976931348623157E+308 | 1.7976931348623157E+308 |
decimal | 最长 | -65个9 | +65个9 |
【浮点数】float默认精度位数为6位数字左右;double默认为16位数字左右:
create table tb_default_num( a float, b double ); insert into tb_num values (1234567890.0123456789,1234567890.0123456789); #1234570000 1234567890.0123458
单/双精度规定位数范围:
create table tb_num( a float(5,2); #整数位必须<=3 b double(8,3); #整数位必须<=5 ); insert into tb_num values (123.45,12345.67); #123.45 12345.670
浮点数支持科学计数法,如:0.234 * 10^3 :0.123E3
insert into tb_num values (0.123E3,123.4E2); #123 12340
【定点数】decimal确保精度不丢失,存储方式:9位数4个字节存储(有利于资金精确显示)
create table tb_decimal( money decimal(10,2); ); insert into tb_decimal values(1234.55); #1234.55 insert into tb_decimal values(1234.558); #1234.56
【时间类型】=================================
年月日时分秒(8字节存储):datetime (YYYY-MM-DD HH:MM:SS)
时间戳(4字节存储):datestamp (YYYY-MM-DD HH:MM:SS)
datestamp检索列时+0,若插入数据为'2014-05-11 01:33:24',得:20140511013324
年月日(3字节存储):date (YYYY-MM-DD)
create table tb_time ( a datetime, #支持任意分隔符,但导致逻辑不清晰,不建议使用 b datestamp #限制在2038年,可存储时间小 ); insert into tb_time values ('2014-05-11 01:33:22', '2014-05-11 01:33:24');
时间(3字节存储):time 意义:1.一天中的时间;2.表示时间间隔,可以用天表示(格式:'D HH:MM:SS')
年(1字节存储):year range:1901-2155
【字符串类型】=====================================
char 固定字符数
varchar 可变字符数(总体长度用2个字节做计算+1个字节存储null,即65532+2+1=65535)
text 总长度:2^16+2字节
enum
set 以二进制位相加
binary