整数型
tinyint:迷你整形,一个字节保存数据,能表示的数字数量为256个,(-128,127)
smallint:小整形,两个字节保存数据,能保存65536个
mediumint:中整形,三个字节保存数据
int:标准整形,四个字节保存数据
bigint:大整形,五个字节保存数据
create database practice;
use practice;
create table my_int(
int_1 tinyint,
int_2 smallint,
int_3 mediumint,
int_4 int,
int_5 bigint
)charset gbk;
insert into myint values(10,10000,100000,1000000,10000000);
insert into myint values(-128,255,255,255,255);
无符号设定
存储的数据在当前字段中,没有负数
在列类型之后加上 unsigned
alter table myint add int_6 tinyint unsigned first;
insert into myint values (255,127,255,255,255,255);
显示长度
数据(整形)在数据显示的时候,到底可以显示多少位
tinyint(3):表示最长可以显示3位,unsigned说明只能是正数,从0-255,位数不会超过三
tinyint(4):表示最长可以显示4位,(-128,127),符号也算一位
zerofill
使字段显示从左侧开始填充0,直到达到指定长度。所有负数的时候不能使用zerofill,一旦使用默认字段为unsigned
alter table myint add int_7 tinyint zerofill first;
insert into myint values (1,1,1,1,1,1,1);
补零的长度可以设定,超出长度的不操作,未达到的补0到指定长度
可用于显示月份、时间
alter table myint add int_8 tinyint(2) zerofill first;
insert into myint values (1,1,1,1,1,1,1,1);
小数类型
MySQL中将小数分为浮点型和定点型
浮点型:
又称之为精度类型,是一种有可能丢失精度的数据类型,数据有可能不准确,尤其是在超出范围的时候
浮点型之所以能存储较大的数值,就是利用存储数据的位来存储指数
float:
又称之为单精度类型,系统提供4个字节用来存储数据,但是能表示的数据范围比整形大得多,大概是10^38,缺点是只能保证大概7个左右的精度(如果数据超过7位数,那么就不准确)
基本语法:
float:不指定小数位的浮点数
float(M,D):表示一共存储M个有效数字,其中小数部分占D位
例如:float(10,2):共10个有效数字,小数部分占2位,整数部分占8位
double:
又称之为双精度:系统用8个字节来存储数据,表示的范围为10^308次方,但是精度只有15位左右
定点型:
能保证数据精确的小数。小数部分可能不精确,超出长度会四舍五入,整数部分一定精确。
应用:涉及到钱的时候可能使用定点数,保证精确
decimal:
系统自动根据存储的数据来分配存储空间,每大概9个数就会分配四个字节来进行储存,同时小数和整数部分是分开的。
decimal(M,D):M表示总长度,最大值不能超过65,D代表小数部分长度,最长不能超过30。