欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Mysql学习笔记5-----字段的数据类型

程序员文章站 2022-05-12 17:38:45
...

一、数值型

整形:

tinyint 1字节

smallint 2字节

mediumint 3字节

int/intege 4字节

bigint 8字节

可以用unsigned控制是否有正负

可以用zerofill来进行前导零填充

存在bool 类型,其实就是tinyint(1)的别名

create table tb1_int(

a tinyint unsigned,

b tinyint

);

alter table tb1_int add c tinyint(2) zerofill; // 显示宽度必须配上zerofill才能看到效果。

类型(M) ,M是显示最小宽度的意思并不是取值范围。如果插入宽度超过M位,不会有任何影响,会直接显示。

zerofill 是前导零填充。显示位数不足最小宽度的时候会自动添加前导零。

是男是女 可用tinyint(1) 不建议用bool。

小数(浮点数):

单精度:float : 4个字节

双精度:double : 8个字节

123.456 在磁盘上的存储方式: 0.123456 * 10^3

需要保存的是 0.123456 和 3 就是精度,和幂数

create table num_2(

a float,

b double

);

intsert into num_2 values(1234567890.0123456789, 1234567890.0123456789);

select * from num_2;

结果可以看出:

单精度的默认精度为6位左右,双精度默认的精度为16位左右。

小数支持这中写法

Type (M,D)

M表示一共M位

D表示小数占的位数

create table num_3(

a float(5,3),

b double(7,3)

);

insert into num_3 values(0.12345E3,0.1234567E3); // 支持科学计数法的插入,单数受(M,D)的限制。

小数(定点数)

decimal(M,D)

默认值是decimal(10,2),M最大值是65,D最大值是30。

如果存入的定点数小数位数大于2位,会四舍五入。

支持zerofill。支持unsigned,但基本不用。