千家信息网

MySQL列类型中的数值型详细教程

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,下文主要给大家带来MySQL列类型中的数值型详细教程,希望这些内容能够带给大家实际用处,这也是我编辑MySQL列类型中的数值型详细教程这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。列类型(数
千家信息网最后更新 2025年01月20日MySQL列类型中的数值型详细教程

下文主要给大家带来MySQL列类型中的数值型详细教程,希望这些内容能够带给大家实际用处,这也是我编辑MySQL列类型中的数值型详细教程这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。

列类型(数据类型)

所谓的列类型,其实就是指数据类型,即对数据进行统一的分类,从系统的角度出发是为了能够使用统一的方式进行管理,更好的利用有限的空间。

在 SQL 中,将数据类型分成了三大类,分别为:数值型、字符串型和日期时间型。

对于数值型数据,可以进一步将其划分为整数型和小数型。

整数型

在 SQL 中,由于要考虑节省磁盘空间的问题,因此系统又将整型细分成五类,分别为:

  • tinyint:迷你整型,使用 1 个字节存储数据(常用);

  • smallint:小整型,使用 2 个字节存储数据;

  • mediumint:中整型,使用 3 个字节存储数据;

  • int:标准整型,使用 4 个字节存储数据(常用);

  • bigint:大整型,使用 8 个字节存储数据。

接下来,输入如下 SQL 语句进行测试:

-- 创建整型表create table my_int(    int_1 tinyint,    int_2 smallint,    int_3 int,    int_4 bigint)charset utf8;

如上图所示,咱们已经成功创建my_int表,再插入数据:

-- 插入数据insert into my_int values (1,2,3,4);insert into my_int values ('a','b','c','d');insert into my_int values (255,2,3,4);

如上图所示,通过列类型,咱们可以限定插入数据的类型以及长度范围。

至于为什么在对int_1赋值时,报出超出范围的错误,则是因为在 SQL 中数值类型默认是有符号位的,即分正负。如果需要使用无符号的数据,这就需要咱们自己对数据类型进行声明啦,即在声明数据类型时,追加unsigned关键字。例如:

-- 在 my_int 表中,添加 int_5 字段,设置其数据类型为 tinyint unsignedalter table my_int add int_5 tinyint unsigned;

如上图所示,添加int_5字段成功,继续插入数据:

-- 插入数据insert into my_int values (1,2,3,4,255);

如上图所示,当咱们将tinyint限定为unsigned之后,已经可以插入0~255之间的任何整数啦!但是,回过头来,让咱们仔细看看下面这张图:

通过观察上面这张图,咱们会发现:每个字段的数据类型后面都会跟着一对括号,并且里面含有数字。这些数字啊,其实并没有什么特别的含义,只是表示数据的显示宽度。实际上,咱们可以修改显示的宽度,但是这种修改并不会改变数据本身的大小。

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

下面,执行如下 SQL 语句:

-- 在 my_int 表中,添加 int_6 字段,设置其数据类型为 tinyint zerofillalter table my_int add int_6(3) tinyint zerofill;

再插入数据,进行测试:

-- 插入数据insert into my_int values (1,2,3,4,5,6);

如上图所示,零填充的意义:在于保证数据的格式。

小数型

小数型,即带有小数点或者范围超出整型的数值类型。

在 SQL 中,将小数型细分为浮点型和定点型两种,其中:

  • 浮点型:小数点浮动,精度有限,容易丢失精度;

  • 定点型:小数点固定,精度固定,不会丢失精度。

第 1 种:浮点型

浮点型数据是一种精度型数据,因为超出指定范围之后,其会丢失精度,自动进行四舍五入操作。理论上,浮点型分为两种精度:

  • float:单精度,占用 4 个字节存储数据,精度范围大概为 7 位左右;

  • double:双精度,占用 8 个字节存储数据,精度范围大概为 15 位左右。

浮点型的使用方式:如果直接用float,则表示没有小数部分;如果用float(M,D),其中M代表总长度,D代表小数部分长度,M-D则为整数部分长度。

执行如下 SQL 语句创建浮点数表,进行测试:

-- 创建浮点数表create table my_float(    f1 float,    f2 float(10,2),    f3 float(6,2))charset utf8;

在咱们向浮点数表my_float插入数据的时候,可以直接插入小数,也可以插入用科学计数法表示的数据。此外,插入浮点型数据时,整数部分是不能超出长度范围的,但是小数部分是可以超出长度范围的,系统会自动进行四舍五入的操作。特别是,如果浮点数是因为系统进位(四舍五入)导致整数部分超出指定的长度,那么系统是允许成立的。

-- 插入测试数据insert into my_float values (2.15e4,20.15,9999.99);insert into my_float values (20151120,123456789.99,9999.99);insert into my_float values (5211314,123456.99,99.99999);

如上图所示,咱们的结论得到了验证。

第 2 种:定点型

定点型数据,绝对的保证整数部分不会被四舍五入,也就是说不会丢失精度,但小数部分有可能丢失精度,虽然理论上小数部分也不会丢失精度。

执行如下 SQL 语句创建定点数表,以浮点数做对比,进行测试:

-- 创建定点数表create table my_decimal(    f1 float(10,2),    d1 decimal(10,2))charset utf8;

当咱们插入数据的时候,定点数的整数部分一定不能超出长度范围(进位也不可以),小数部分的长度则可以随意超出,没有限制,系统会自动进行四舍五入的操作:

-- 插入测试数据insert into my_decimal values (99999999.99,99999999.99);insert into my_decimal values (123456789.99,2015.1314);insert into my_decimal values (123456.99,2015.1314);

如上图所示,咱们的结论同样得到了验证。

对于以上关于MySQL列类型中的数值型详细教程,大家是不是觉得非常有帮助。如果需要了解更多内容,请继续关注我们的行业资讯,相信你会喜欢上这些内容的。

数据 类型 小数 精度 部分 范围 数值 整数 点数 长度 上图 字节 浮点 存储 宽度 系统 测试 四舍五入 四舍 字段 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全攻击溯源 近两年出现的互联网黑科技 2008服务器怎么保存数据库 个人户缴税有数据库没 沧州企业微服务架构数据库 汕头数字软件开发价格走势 西安市雁塔区涛博网络技术服务部 天融信网络安全自律公约 广东触点互联网科技有限公司 为什么ftp不能登录服务器 一心互联网科技 上海惠普服务器续保哪家便宜 工业级无线串口服务器 服务器平台架构 开电竞酒店要服务器吗 计算机网络技术与应用网线 数据库删除某个值为1的语句 服务器内存被非持久化的消息堆积 acess数据库对象的视图 南京银行软件开发岗年终奖 证券软件开发概念股 软件开发人才驻点开发方案 龙珠超宇宙2服务器在哪里 视频储存服务器和硬盘录像机区别 苏州阿里云服务器扩容设置 网络安全行业的社会分析 view会影响数据库性能吗 计算机网络技术类 公务员 数据库如何给应用程序连接 南阳网络安全工程师机构
0