(5)数值类型:整数类型、小数类型

一、数值类型—-整数类型
tinyint:1个字节 有符号:-128-127 无符号:0-255
smallint :2个字节
mediumint:3个字节
int/intege:4个字节
bigint:8个字节
①是否有符号,可在定义时,使用unsigned,没有符号,不写则有符号
②通过规定数据的显示宽度,达到统一显示的目的类型(M),M表示显示的最小宽度是多少并没规定最大宽度,直接显示其大宽度。需要使用前导零填充达到目的,称为zerofill
下面以tinyint来举例,其他整型用法和此相同

create table tb1_int(a tinyint unsigned,b tinyint);
insert into tb1_int values(255,127);

alter table tb1_int add c tinyint(2)zerofill;(只是在这一列填充,所以不影响其他列)
insert into tb1_int values(0,100,1);
insert into tb1_int values(0,100,20);
insert into tb1_int values(0,100,123);
(5)数值类型:整数类型、小数类型_第1张图片

③sql中表示真假,也存在bool类型,就是tinyint(1)的别名,0表示假,其他表示真

二、小数类型

①浮点:小数点位数可以变化
float :单精度 4个字节 默认精度位数为6位左右
double:双精度 8个字节 默认精度位数为16位左右
②支持控制数值的范围:数据类型(M,D)
M代表所有的数值位数,不包括小数点和正负号(包含小数部分)
D:允许的小数位数

create table num_3(a float(5,2),b double(8,3));
b double(8,3):已经规定了小数点前最多5位,小数点后最多3位
insert into num_3 values (561.12,1234.547);//满足条件
insert into num_3 values(1567.12,123456.5);//这两个数均不合法

③浮点数支持科学计数法
insert into num_3 values(0.23E3,456.7E2);
0.23E3=0.23*10^3=230.00
456.7E2=456.7*10^2=45670.000

④定点数
浮点数,可能丢失精度
decimal(M,D):M总位数,D小数位数(范围存在),不会丢失精度。
若不写范围,则默认M:10,D:0

⑤也支持zerofill,unsigned(但是不常用)

(5)数值类型:整数类型、小数类型_第2张图片
(5)数值类型:整数类型、小数类型_第3张图片

你可能感兴趣的:(mysql)