mysql输出数据类型_mysql的数据类型,列类型,字段类型单精度,float,4个字节
双精度,double,8个字节
在定义浮点数,典型的需要指明其有效位数,和 ⼩数位数
float(M,D)
double(M,D)
M:所有的有效位数
D:其中的⼩数位数
以上两个值,决定⼀个浮点数的有效范围
如果超出了范围就会按照最⼤值来显⽰,并不会报错;
注意,浮点数,近似值,不是精确值!如果⼀个数,很⼤,接近最⼤值,可能出错!
⼀旦出现精确数据(⼩数)需要保存可以使⽤,下⾯的定点数;
定点数,decimal:
mysql创建表数据类型
⼩数点是固定的! decmal,与定义浮点数⼀致,也有 有效位数与⼩数位数的概念:
decimal(M,D)
不是数的形式存储,类似于字符串的形式!
create table type_cermal(
num decimal(30,2)
);
insert into type_cermal values(222222.24);
insert into type_cermal values(222222.254); -- 如果⼩数点超出范围之后,就⽀取前两位
关于⼩数:
1.是⽀持科学计数法的
2.同样⽀持unsigned类型 、
3.同样⽀持zerofill
TIP:⼩数的M,即表⽰有效范围,也表⽰显⽰宽度!(⽽整数的M只表⽰显⽰宽度)
字符串类型:
char:
最基本(定长)的字符串类型!
⽤于保存,长度固定的内容!
速度快,但是保存变长数据,会浪费空间!
varchar:
可变长度的字符串!
⽤于保存长度可变的数据!
保存变长数据时,节省空间,处理起来⿇烦些!
char(L),varchar(L)
L,表⽰每个数据的最⼤长度!单位是 字符数(不是字节数)
create table type_char(
str char(10)
);
insert into type_char values(13546346);insert into type_char values(135463245646);超过了指定的字符串就会只显⽰前制定的个数,后⾯就不会显⽰;
L 表⽰最⼤长度!
L的值不是多⼤都可以!
有最⼤值:
1,mysql⼀条记录最⼤不能超过65535个字节!(字段的长度加起来,不能超过这个值) 2,长度单位是字符数,与编码是相关的!
采⽤单字节编码测试下:
Latin1
测试发现只有⼀个字段,⽽且是单字节字符集,还是不能是65535,原因是?
为什么是 65532呢,少了三个字节:
3,由于varchar是变长,需要记录下真实的数据到底有多长!每个varchar类型的数据,还需要额外的1个或2个字节保存真实数据的长度!(取决于真实数据的长度)
4,整条记录,还需要⼀个字节来保存那些字段为null ·
但是在使⽤的时候,如果varchar超过了255就需要⽤text来保存;
.
text:
⽂本,不限长度的字符串!
该字段,不需要指定长度,⽽且也不会算⼊到记录的总长度内!
枚举 enum  单选:
需要在定义枚举类型时,列出哪些是可能的!
create table type_enmu(
num enum('male', 'remale', 'serect')
);
在处理时,类似字符串型进⾏操作!
意义在于:
1, 限定值的可能性!(只能是选项⾥⾯的值)
2.速度快,⽐普通的字符串速度快!
原因是枚举型 是利⽤ 整数进⾏管理的,能够2个字节进⾏管理!
每个值,都是⼀个整数标识,从第⼀个选项开始为1,逐⼀递增!
管理时整数的形式,速度⽐字符串快!
这个下标是从1开始的 ⽽不是从0,如果输⼊的是不是这个范围内的值得话,就会和下⾯⼀样虽然不报错但是都是0,前⾯的值也为空;
2 个字节,0-65535,因此可以有 65535个选项可以使⽤!
集合,set,复选:
类似于 enum枚举,在定义时,也需要指定其已有值!
与字符串相⽐,优势是:
1, 也是采⽤ 整数进⾏管理的!采⽤位运算,从第⼀位开始为1,逐⼀x2!create table type_set(
hobby set('male','remale','select','other')
);
insert into type_set values('male');
insert into type_set values('male','reamale');
insert into type_set values('male','remale','other');
insert into type_set values(1);
insert into type_set values('1,2'); -- 显⽰没有数据
1, 每个集合类型8个字节,64位,因此可以表⽰64个元素!
注意:站在 mysql的⾓度,尽量多⽤枚举和集合!
但是站在php操作mysql的⾓度,尽量少⽤!(兼容性差);
⽇期时间:
datetime:
⽇期时间,⽤于保存⼤范围的⽇期时间!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。