MySQL的数据类型(三)上

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: MySQL的数据类型(三)上

一. MySQL的数据类型

在Java 中,有八个基本的数据类型和其他的引用类型, 如 int, double, char, String 等。 其中, int 修饰的属性类型是 整数,表示某个对象的这个属性值只能是整数, 不能是小数类型, double表示这个属性值只能是小数类型,不能是字符串类型, String表示 这个属性值只能是字符串类型,不能是整数或者是小数类型。 而 MySQL 是专门用来存储和管理数据的,当然也定义了很多数据的类型,如数值型,字符串型,日期型。 由于存储时需要占用内存相应的容量,为了尽可能的节省资源(数据量小时是没有多大事的,就像老蝴蝶平时学习和工作时数据量小,所以数据库的数据类型都是建立常用的,可在大数据时代,就不好说了),又将某种类型,如数值型,进行更细的划分。 对于这些数据类型,我们只需要了解即可, 不需要在实际业务中很准确的使用。 就像整数类型年龄, 你用int 定义,还是用 smallint 定义,没有多大的区别。 相反,为了与实体保持一致,还推荐使用 int 定义呢, 还有关于年份 year, 老蝴蝶都是 用int 整数型定义,而不是用mysql 的日期类型的 year 定义。 所以,这一章节老蝴蝶只讲解常用的数据类型。


MySQL的数据类型分类:


  • 数值类型
  • 整数类型
  • tinyint
  • smallint
  • mediumint
  • int
  • bigint
  • 浮点小数类型
  • float
  • double
  • 定点小数类型
  • decimal
  • 日期时间类型
  • 日期
  • Year
  • Date
  • 时间
  • Time
  • 日期和时间
  • Datetime
  • timestamp
  • 字符串类型
  • 文本字符串
  • char
  • varchar
  • binary
  • varbinary
  • text
  • set
  • enum
  • 二进制字符串
  • blob


二 数值类型


二.一 整数类型


整数类型有 tinyint,smallint,mediumint,int,bigint 五种类型。 均可以用 AUTO_INCREMENT 来自动增长。


1 . 所占的字节数


20191114134332376.png


与java 一样,所占的字节数越小,能表示的取值范围越小, 所占的字节数越大,取值范围越大。


2 . 取值范围


20191114134338171.png


3 . 定义表中的属性 类型时, 常用的是 int(4) , 其中(4) 指的是显示的文本宽度,并不是能插入的整数最大的宽度,也不是指的字节数。 其中,只要不超过int的最大范围 即 2147483647的话均可以正常的插入, 它的字节数仍然是 4个字节。 1可以正常插入,9999也可以正常插入,10000也可以正常插入, 1000000000 也可以正常的插入。


如将 user 表中的 age 长度设置成 2.


2019111413434666.png


插入数据,


20191114134351995.png


可以正常的插入,不报错。


查询时: (select * from user; 后面会讲查询语句)


20191114134358684.png


也可以正常的显示。


4 . int 类型默认的长度是 11 位。 最大值 2147483647.length() +1


5 . 通常直接使用 int 类型即可。


二.二 浮点数


1 . 浮点类型有两种, 单精度浮点数(float) 和双精度浮点数(double)


2 .浮点数可以用 (M,N) 来表示, 其中 M称为精度, 是总共的位数, N是标度, 是小数的位数。 小数点不算位。 如 double(4,2) 能存入的最大值是 99.99, 并不是9.99 . 即: 整数部分是 M-N, 小数部分是N.


3 . float 和double 所占的字节数


20191114134406377.png


4 . float 和double 所表示的取值范围


20191114134410974.png


5 . 如果插入的数字的精度范围超出了标度范围,会进行四舍五入的处理。


如 double(4,2) 如果插入的值是99.123 , 小数点位数是3位,超过了规定的2位,是能够正确的插入的,但要进行四舍五入的处理,实际存储到数据库中的值 是 99.12, 如果插入的值是 99.129, 那么存储到数据库中的就是99.13


二.二 定点数

1 . 定点数只有一种, Decimal


2 .定点数也可以用 (M,N) 来表示。 其中,M表示精度,是总共的位数,N是标度,是小数的位数。


3 . 所占的字节数


20191114134416185.png


4 . Decimal 实际是以字符串进行存放的


5 . Decimal 如果不指定精度,默认是 (10,0)


二.二 浮点数与定点数的比较


1 . 在长度一定的情况下, 浮点数比定点数表示的范围大, 但会引起精度问题。


2 . 在对数据精度要求较高时,如 财务,科学数据等, 会Decimal ,其他情况下,一般都用浮点数。


3 . 浮点数在进行加,减运算时, 所得出的结果不一定是正确的结果, 就像JS 中的浮点数运算一样。 如 1+0.9999999, 不一定是 1.9999999,可能是 1.9999999000000002


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
关系型数据库 MySQL 存储
【MySQL】——数据类型及字符集
【MySQL】——数据类型及字符集
169 0
【MySQL】——数据类型及字符集
|
3月前
|
机器学习/深度学习 存储 关系型数据库
MySQL数据库:常用数据类型
【2月更文挑战第7天】
35 0
|
4月前
|
SQL 关系型数据库 MySQL
学习MySQL,创建表,数据类型
学习MySQL,创建表,数据类型
|
2月前
|
SQL 关系型数据库 MySQL
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
110 1
|
1月前
|
存储 关系型数据库 MySQL
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
|
4月前
|
存储 SQL 关系型数据库
MySql中有哪些数据类型(数据库学习——三)
MySql中有哪些数据类型(数据库学习——三)
37 1
|
11天前
|
SQL 存储 关系型数据库
【MySQL-6】DDL的表结构的数据类型盘点&案例演示
【MySQL-6】DDL的表结构的数据类型盘点&案例演示
|
13天前
|
存储 SQL 关系型数据库
【mysql】mysql中的数据类型知多少?
【mysql】mysql中的数据类型知多少?
|
15天前
|
关系型数据库 MySQL
MySQL基础(二:常用数据类型及MySQL创建过程实例)
MySQL基础(二:常用数据类型及MySQL创建过程实例)
MySQL基础(二:常用数据类型及MySQL创建过程实例)
|
17天前
|
存储 缓存 关系型数据库
【Mysql】Schema与数据类型优化
【Mysql】Schema与数据类型优化
16 0

推荐镜像

更多