八、mysql数据库中数据表的数据类型——数值类型

所谓的数据类型,即是对数据进行统一的分类,从系统的角度出发,为了能够使用统一的方式进行管理,更好的利用有限的空间。
SQL中将数据大体分为三种类型:数值类型、时间日期类型和字符串类型。

1、整型

在SQL中要更多的节省磁盘空间,所以又将整型细分为了5个类型,分别如下:

  1. tinyint:使用1个字节存储,范围为-128~127
  2. smallint:使用2个字节存储,范围为-32768-32767
  3. mediumint:使用3个字节存储,范围为-8388608~8388607
  4. int:使用4个字节存储,范围为-2147483648~21474836647
  5. bigint:使用8个字节存储,范围为-9223372036854775808~-9223372036854775807

实例(创建一个整型表):

create table if not exists int_table(
      num1 tinyint,
      num2 smallint,
      num3 unsigned mediumint,
      num4 int,
      num5 bigint
     );

解析: SQL中的数据类型全部默认有符号,如果想要无符号数据,只需要在前面加入unsigned即可,如本例中num3的定义。
注: 在查看表的字段信息时,会发现每个类型后面都加了一个括号,括号里有数字,这个数字代表的是显式宽度,其意义是在当数据显示宽度不够时,通常需要搭配一个前导0来增加宽度,不改变值的大小;serofill(零填充)会导致数值自动变成无符号(此时会形成一个字符串0——数值),零填充的意义就在于保证数据格式。
零填充实例:alter table int_table add num6 smallint(8) serofill;

2、实型(小数)数据

SQL中将小数分为浮点型和定点型两种具体的小数类型,其特点如下:

  1. 浮点型:小数点浮动,精度有限,浮点型又可分为单精度浮点型和双精度浮点型,具体如下:
    1. float(单精度浮点型):占用4个字节,精度范围为7位左右;
    2. double(双精度浮点型):占用8个字节,精度范围为8位左右;
    3. 创建浮点数的方式:直接float或double表示没有小数部分(精度最少为整数部分);基本语法:float(M,D); --M代表总长度,D代表小数部分的长度
    4. 实例
      创建实型表格
      查看创建的表字段信息
      向其中插入数据,此时,由于num3的整数位应该只能有1位,因为其小数位为2位,而总长度为3位,所以整数位为1位,如下:
      插入数据
      在这里插入图片描述
      注: 浮点数一定会进行四舍五入(超出精度范围),浮点数如果是因为系统进位而导致整数部分超出指定的长度,那么系统也允许成立。
  2. 定点型:小数点固定,精度固定,不会丢失精度
    1. decimal(定点型):绝对的保证整数部分不会被四舍五入(不会丢失精度),小数部分则有可能丢失精度(理论上小数部分也不会丢失精度)。
    2. 创建定点数的实例:
      create table de_table(id decimal(10,2));
    3. 插入数据时,定点数的整数部分一定不能超出长度,而小数部分则可以随意长度,因为系统会自动四舍五入;浮点数进位导致长度溢出可以,但是定点数不行。

注: 查看warnings(警告)的基本语法:show warnings;

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值