MySQL 列类型-数值型

                          列的类型
主要分成三大类:
1 数值型
2 日期时间型
3 字符串型


数值型:


1-整数类型。


类型-字节-有符号-无符号;
TINYINT / 1 / (-128)~127 / 0~255; (人的年龄,BOOL用tinyint(1) )
SMALLINT / 2 /  (-32768)~32767 / 0~65535;
MEDIUMINT / 3 / (-8388608)~8388607 / 0~16777215;
INT(INTEGE) / 4 / -2147483648~2147483647 / 0~4294967295;
BIGINT / 8 / -99223372036854775808~9223372036854775807 / 0~18446744073709551615;


*是否有符号,可以在定义时规定,默认为有符号,可以用unsigned标识来表示无符号。


*可以定义当前的显示宽度:
通过规定数据的显示宽度,达到统一显示的目的。注意定义格式:
alter table tbl_int add c tinyint(2) zerofill;
需要使用前导零来填充以达到目的:zerofill;
其中若数大于显示宽度,则直接显示原数字。


*BOOL 类型:整型 0 表示 False,其他数字 表示 True.



2-小数类型(单,双精度)


float-单精度:4字节 理论值 -3.402823466E+38~3.402823466E+38;
double-双精度:8字节 理论值 -1.7976931348623157E+308~1.7976931318623157E+308;


123.456;
在磁盘上存储时:
0.123456 * 10^3;
即只存了123456 / 3 ;   


*支持控制数值的范围
create table num_3(
a float(5,2),
b double(8,3)
);


*支持科学记数法;


/*
浮点数:小数点的位置可以变化;(flaot 4,double 8) 
定点数:小数点的位置不可以变化;(字节是变动的,精确表示输入的值的大小)
decimal(M,D)
M 表示总的数值位数
D 表示小数位数(范围存在)
M 默认为10,D默认为0;


以上两种均支持zerofill;
也支持无符号unsign。
*/



1字节=8个bit;


注意: 如果输入的小数超过了flaot或者double的范围,默认数据显示会出现异常。

而用定点数 decimal 则不存在这种问题,因为它是根据需要来进行空间开辟;

use php_one;
create table tbl_int(
a tinyint unsigned,                 //注意如何定义
b tinyint
);

insert tbl_int values (255,127);
select * from tbl_int;              //插入成功
insert tbl_int values (256,127);    //提示 a 超过范围
insert tbl_int values (255,128);    //提示 b 超过范围
insert tbl_int values (256,128);    //提示 a 超过范围

alter table tbl_int add c tinyint(2) zerofill; //增加字段,并定义显示宽度,注意需要前导零
insert into tbl_int values (255,127,1);        //显示01
insert into tbl_int values (255,127,9);        //显示09
insert into tbl_int values (255,127,15);       //显示15 
insert into tbl_int values (255,127,123);      //仍然显示123  显示宽度不决定存储范围
select * from tbl_int; 

create table num_2(
a float,
b double);

insert into num_2 values(1234567890.0123456789,1234567890.0123456789);
select * from num_2;   

create table num_3(                   //支持控制数值范围。(表示一共多少位,表示小数点后多少位)
a float(5,2),                         
b double(8,3)
);

insert into num_3 values(567.12,1234.498);
insert into num_3 values(167.12,123449.8);
insert into num_3 values(1567.12,123456.5);  //可以少不可以多
select * from num_3;
insert into num_3 values(0.16E3,129.8);      //支持科学记数法;
select * from num_3;


create table num_4(                  
send_money decimal(10,2)                         
);
insert into num_4 values (1234.56);
select * from num_4;
insert into num_4 values (1234.567);  //显示1234.57  四舍五入
select * from num_4;
insert into num_4 values (12345678.56);
select * from num_4;
insert into num_4 values (123456789.56);  //显示超出数的范围
select * from num_4;
alter table num_4 add money decimal(10,2)zerofill;
insert into num_4 values (1234.56,1234.56);
select * from num_4;
insert into num_4 values (1234.567,1234.567);  
select * from num_4;
insert into num_4 values (12345678.56,12345678.56);
select * from num_4;
insert into num_4 values (123456789.56,123456789.56);  
select * from num_4;	





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值