Mysql学习历程基本语法(6)--数据类型

来源:互联网 发布:刀锋铁骑 知乎 编辑:程序博客网 时间:2024/06/03 10:29

数据类型:对数据进行统一的分类,从系统的角度出发为了能够使用统一的方式进行管理,更好地利用有限的空间

数据类型分为三大类:数值类型  字符类型  日期类型


数值类型分为整数型和小数型

整数型:tinyint   一个字节   0-255

      smallint 两个字节  

      mediumint   三个字节

      int    四个字节  

          bigint   八个字节存储

SQL中数值类型全部都是默认的有符号数,分正负

给数据类型限定为无符号数:int unsigned;    --  无符号数从0开始


显示宽度:默认告诉用户可以显示的形式而已,实际上用户可以控制,控制不会改变数据本身大小

显示宽度意义:在于当数据不够显示宽度的时候,会自动让数据变成对应的显示宽度,通常需要搭配一个前导0增加宽度,不改变值的大小,zerofill  零填充:会导致数值自动变成无符号数;

例如:alter table  my_int  add int_7  tinyint(2)  zerofill;当时用zerofill时默认为无符号数

零填充的意义:保证数据格式  如年月日


小数型

SQL中将小数型细分为浮点型和定点型

浮点型:小数点浮动,精度有限,而且会丢失精度    定点行:小数点固定,精度固定,不会丢失精度


浮点型

浮点型数据是一种精度型数据,超出指定范围后,会丢失精度(自动四舍五入)

Float单精度  四字节存储  精度范围7位左右

Double双精度  八字节存储  精度范围15位左右

使用方式:float表示没有小数部分; float(M,D)    M代表总长度  D代表小数部分,整数部分长度M-D;


浮点型数据插入,整数部分位数不能超出长度,但是小数部分可以超出超度(系统会自动四舍五入)

浮点数如果超出精度范围一定会进行四舍五入,浮点数如果是因为系统进位导致整数部分超出长度,那么系统也允许成立



定点型

Decimal:变长,整数和小数分开计算,M最大是65,D最大是30;

查看警告指令  show warnings;


浮点型小数因为超出长度导致整数进位 OK,定点型因小数超出范围长度导致整数部分进位超出长度会报错;

原创粉丝点击