【Hello mysql】 mysql数据类型(上)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 【Hello mysql】 mysql数据类型

数据类型分类

为什么要存在数据类型呢?

mysql中存在数据类型主要是为了以下两点

  • 数据类型决定了自己需要多少的空间以及系统会给你分配多少的空间 数据库作为一个要使用磁盘空间的工具 数据类型的存在是必要的
  • 类型是一种约束 只允许向数据库插入合法的数据

mysql中常见的数据类型如下图:

数值类型

类型 字节 最小值 最大值
TINYINT(无符号) 1 0 255
TINYINT(有符号) 1 -128 127
INT(无符号) 4 0 4294967295
INT(有符号) 4 -2147483648 2147483647
BIGINT(无符号) 8 0 18446744073709551615
BIGINT(有符号) 8 -9223372036854775808 9223372036854775807

tinyint类型越界测试

我们首先创建一张表 里面有tinyint数据类型的一列

之后我们往这一列中插入数据

我们发现 数据如果在tinyint的最小值与最大值之间则可以插入 如果不在这个范围则mysql直接报错

通过上面的现象我们也能很好的解释约束这一概念 即只允许插入合法的数据

bit类型

语法

bit[(M)] : 位字段类型。M表示每个值的位数,范围从1到64。如果M被忽略,默认为1。

实例:

我们尝试向t1这个表中插入两个数据

观察插入后的现象我们可以发现 int类型的数据可以正常插入 但是bit类型的数据显示的却十分奇怪

其实这些数据就是对应的ascll码值

也就是说对应bit类型的数据 在数据库表中会显示的是ascll码

使用场景

当我们只需要使用0和1来标志一个值的时候我们可以定义bit(1)

小数类型

float类型

语法

float[(m, d)] [unsigned] : M指定显示长度,d指定小数位数,占用空间4个字节

实例

float(4,2)表示的范围是-99.99 ~ 99.99 MySQL在保存值时会进行四舍五入 即 99.994为99.99 99.995为100.00

下面的试验会验证上面所说的话

我们首先创建一个员工工资表 里面有员工的编号还有他们的薪水

接着我们往表中插入几组数据

我们可以发现salary的数据被限制在了-99.99 ~ 99.99之间 更准确的说是-99.994 ~ 99.994之间

如果我们将float限制为无符号数数据的范围会发生什么变化呢?

插入数据后我们可以发现

此时我们插入正值 0 ~ 99.994仍然可以成功 但是插入负值便会报错了

decimal类型

decimal类型与float类型的用法和特性基本相同

唯一一点需要我们注意的是decimal的精度要比float类型的精度高(float类型的精度大概为小数点后七位)

下面是试验证明

我们可以发现 当我们存储12.12345678这个数字的时候 decimal的数据能够正常储存 而floact类型的数据却失真了

所以说当我们想要存储小数点后更加精确的数字时我们可以使用decimal类型的数据

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
29天前
|
关系型数据库 MySQL 数据库
MySQL数据库基础(数据库操作,常用数据类型,表的操作)
MySQL数据库基础(数据库操作,常用数据类型,表的操作)
33 5
|
1月前
|
存储 关系型数据库 MySQL
MySQL支持多种数据类型
MySQL支持多种数据类型
87 3
|
1月前
|
存储 关系型数据库 MySQL
什么是mysql的数据类型?
什么是mysql的数据类型?
44 2
|
1月前
|
存储 关系型数据库 MySQL
MySQL数据类型
MySQL数据类型
50 2
|
3月前
|
关系型数据库 MySQL Linux
数据类型和运算符(MySQL服务器的安装,MySQL客户端,数据类型,运算符,MySQL的语法规范)
无论是对于初学者还是有经验的开发者,了解MySQL的安装、客户端使用、数据类型、运算符和语法规范都是至关重要的。这不仅有助于高效地管理和查询数据,而且对于设计和实现数据库解决方案来说是基础工作。通过深入学习和实践这些知识,您可以更好地发挥MySQL数据库的强大功能。
32 2
|
3月前
|
存储 关系型数据库 MySQL
MySQL 中的 BLOB 数据类型深入解析
【8月更文挑战第31天】
359 0
|
3月前
|
存储 关系型数据库 MySQL
|
3月前
|
存储 XML 关系型数据库
深入理解MySQL中的BLOB和TEXT数据类型
【8月更文挑战第31天】
500 0
|
3月前
|
SQL 关系型数据库 MySQL
SQL Server、MySQL、PostgreSQL:主流数据库SQL语法异同比较——深入探讨数据类型、分页查询、表创建与数据插入、函数和索引等关键语法差异,为跨数据库开发提供实用指导
【8月更文挑战第31天】SQL Server、MySQL和PostgreSQL是当今最流行的关系型数据库管理系统,均使用SQL作为查询语言,但在语法和功能实现上存在差异。本文将比较它们在数据类型、分页查询、创建和插入数据以及函数和索引等方面的异同,帮助开发者更好地理解和使用这些数据库。尽管它们共用SQL语言,但每个系统都有独特的语法规则,了解这些差异有助于提升开发效率和项目成功率。
317 0
|
4月前
|
存储 SQL 关系型数据库
MySQL设计规约问题之存储状态、性别等信息时,应该使用哪种数据类型
MySQL设计规约问题之存储状态、性别等信息时,应该使用哪种数据类型