msyql5.7数据类型和运算符

简介: mysql数据类型介绍msyql介绍支持多种数据库,主要有数值类型,日期时间类型和字符串类型。1.数值数据类型:包括整数类型 tinyint smallint mediumint int bigint 浮点小数据类型float和double,定小数类型desimal。

mysql数据类型介绍


msyql介绍支持多种数据库,主要有数值类型,日期时间类型和字符串类型。


1.数值数据类型:包括整数类型 tinyint smallint mediumint int bigint 浮点小数据类型float和double,定小数类型desimal。

2.日期时间类型:包括year time date datetime和timestamp。

3.字符串类型:包括char varchar binary varbinary blog text enum和set等 字符串又分为文本字符串和二进制字符串。


整数类型


数值型数值类型主要用来存储数字,mysql提供了多种数值数据类型,不同的数据类型提供笔值的取值范围,可以存储范围越大,其所需要的存储空间也会越大。mysql主要提供的整数类型有 tinyint smallint mediumint int bigint 整数类型的属性字符段可以添加auto_increment 自增约束条件。


eec1c02d253179e541569d2f6d2e0ae2.png-wh_


从表中可以看到,不同类型整数存储所需的字节数是不同的,占用字节数最近小的是TINYINT类型,占用字节最大的是BIGINT类型,相应的占字节越来越多的类型所能表示的数值范围越大。


82b7740038ba5df5402807bf7e774b46.png-wh_


id字段的数据类型为int(11),注意到后面的数字11,这表示的是该数据类型指定显示宽度,指定能够显示的数值中数字的个数。假设声明一个int类型的字段:

year int(4)

该声明指明,在year字段中的数据一般显示4位数字的宽度。


29a64b3d068c10fb7389836f69b843a1.png-wh_


创建表tmp1,其中字段x y z m n数据类型依次为tinyint smallint mediumint int bigint sql语句如下:

d32fd30c39f76f2282a301eda5e0cb99.png-wh_

可以看到,系统将添加不同默认显示宽度。这些显示宽度保证每一种数据类型可以取到取值范围内的所有值。

列如: tinyint有个符号数和无符号数的取值范围分别为可以取值到取值范围分别-128~127 和 0~255,由于负号占了一个数字位,因此tinyint默认的显示宽度为4.同理其他数据类型的默认显示宽度与其他默认显示宽度与其有符号数的最小值的宽度相同。


浮点数类型和定点数类型


mysql中使用浮点数和定点数来表示小数。浮点数类型有两种:单精度浮点类型和双精度浮点类型。定点类型只有一种:decimal。浮点类型和定点类型都用(M,N)来表示,其中M称为精度,表示总共的位数;N称为标度,是表示小数位数如图所示:


5e84f3e2c254c98793059438fcd35727.png-wh_

decimal类型不同于FLOAT和DOUBLE DECIMAL实际是以串存放的,DECIMAL可能的最大取值范围与DOUBLE一样,但是其有效的取值范围由M和D的取值范围。如果改变M而固定D,则其取值范围将随M的变大而变大。

提示!不论是定点还是浮点类型,如果用户指定的精度超出精度范围,则会四舍五入进行处理。


创建表tmp2 其中x y z 数据类型依次为FLOAT(5,1),DOUBLE(5,1)和DECIMAL(5,1)向表中插入数据5.12 5.15和5.123,sql语句如下:


dd56d8e8d605b6d229d52364903fdd18.png-wh_


可以看到在插入数据时,Mysql给出一个警告信息,使用show warnings;语句查看报警信息:


446903dc11457f63ae442f93c6ba0d58.png-wh_


可以看到FLOAT和DOUBLE在进行四舍五入时没有给出警告,给出z字段数值被截断的报告。

查看结果:


2ddcdbff26ef39a8c90e9b90592d5bbd.png-wh_

FLOAT和DOUBLE在不指定精度时,默认会按照实际的精度,DECIMAL如不指定精度,默认(10,00)。

浮点数相对点数的优点是长度一定的情况下,浮点数能够表示更大的数据范围;它的缺点会引起精度问题。


提示!在mysql中定点数以字符串形式存储,在对精度要求比较高的时候(如货币,科学数据等)使用decimal的数据类型比较好,另外两个浮点数进行减法和比较运算时也容易出问题,所以在使用浮点型时需要注意,并尽量避免做浮点数比较!


总结!数据库很重要我每天都坚持学习一些!


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
存储 关系型数据库 MySQL
MySQL 5.7 - 常见数据类型
MySQL 5.7 - 常见数据类型
1131 1
|
Java Linux iOS开发
又一款 IDEA 全家桶 神器 ja-netfilter-all 插件
又一款 IDEA 全家桶 神器 ja-netfilter-all 插件
10575 121
又一款 IDEA 全家桶 神器 ja-netfilter-all 插件
|
10月前
|
JSON fastjson 数据格式
JSON转List
该方法将JSON字符串转换为指定类型的对象列表,利用FastJSON的parseArray实现,适用于处理JSON数组格式数据,返回泛型List,提升代码复用性与可读性。
|
机器学习/深度学习 数据采集 传感器
考虑时空相关性的风电功率预测误差建模与分析(Matlab代码实现)
考虑时空相关性的风电功率预测误差建模与分析(Matlab代码实现)
213 0
|
XML JSON Java
springboot文件上传,单文件上传和多文件上传,以及数据遍历和回显
本文介绍了在Spring Boot中如何实现文件上传,包括单文件和多文件上传的实现,文件上传的表单页面创建,接收上传文件的Controller层代码编写,以及上传成功后如何在页面上遍历并显示上传的文件。同时,还涉及了`MultipartFile`类的使用和`@RequestPart`注解,以及在`application.properties`中配置文件上传的相关参数。
springboot文件上传,单文件上传和多文件上传,以及数据遍历和回显
|
存储 安全 Java
Spring Boot中的文件下载实现
Spring Boot中的文件下载实现
1101 0
|
SQL 关系型数据库 MySQL
Mysql 给每行数据生成行号
Mysql 给每行数据生成行号
375 0
|
前端开发 Java Spring
Spring MVC 上传文件(upload files)
上传功能是一个web应用很常用的一个功能,比如在一些社交网站上传些图片、视频等。本篇文章主要研究了spring mvc是如何实现文件上传功能的,在具体讲解spring mvc如何实现处理文件上传之前,必须弄明白与文件上传相关的multipart请求。 一、关于multipart 请求 我们传统的表单提交的一般都是文本类型的数据,比如我们的注册表单,当提交表单时,表单中
2455 0
|
15天前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
8155 15
|
14天前
|
人工智能 并行计算 PyTorch
秋叶 ComfyUI 2026 整合包 v3.2 完整部署教程:Python 3.13 + Torch 2.13 全栈升级
秋叶aaaki ComfyUI 2026年8月整合包v3.2正式发布!全面升级Python 3.13.11、PyTorch 2.13.0+cu130及ComfyUI v0.30.2,原生支持MiniMax H3、Wan 2.2、Qwen-Image-2.1等2026主流音视频/图像模型,解压即用,无需环境配置。
2328 13

热门文章

最新文章