开发者社区> 科技小能手> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

MySQL 数字类型的思考

简介:
+关注继续查看

1. 整数类型:

类型 存储 正负数范围 全正数范围 全正长度 备注
tinyint 1字节 -128~127 0~255 3
smallint 2字节 -32768~32767 0~65535 5
mediumint 3字节 -8388608~8388607 0~16777215 8 可用于邮编号
int 4字节 -2147483648~2147483647 0~4294967295 10 可用拼接1的方式存手机号
bigint 8个字节 ±9223372036854775808-1 18------- 20位 可存储手机号

注意:
1.在类型后面加unsigned,可向服务器声明全正数。可使正数最大值x2
一般喜欢使用int作为主键类型,若在表定义时加上int unsigned。可使主键范围扩到原来的两倍,不用担心主键值用尽的尴尬情况
2.手机号可以用int也可以用bigint。但即使是bigint也比varchar(11)占用更少的空间,从而在这一点上性能更高。
3.但是:任何数字列与unsigned定义的列进行计算后,若出现负数结果,则会返回 UNSIGNED的最大值。这个问题是继承C语言的。若考虑到会产生列与列直接的计算,需要避免UNSIGNED的定义。只在主键列上UNSIGNED设置即可,因为主键列一般设置为业务无关自增列。
4.留空

2.数值型(DEMICAL,NUMERIC)
DEMICAL,NUMERIC都是用来存储精确的数值,一般金额使用这个参数,DEMICAL是基本类型,NUMERIC按DEMICAL进行计算。DEMICAL按照二进制的格式存储 
例如:我们公司使用DEMICAL(18,4)来存储金额数值
小数位为4位,整数位位18-4=14位
DEMICAL(0),无法存数据,DEMICAL(X)不指定小数位数时,默认为0,理论上DEMICAL最长可以容纳65位数字

3.位值型(bit)
用于存储位值,最长可达64位,mysql命令行客户端无法查看位值数据。导出时也可能显示乱码,不要担心。
应用:bit(1) 用于判断是否
bit(32) 用于存储IP地址,只占4字节,应该是最省空间的选择
例如:bit(6) 存入 b'101',其实是按照00101来存储,不足的会在左边补零,读取出来视不同客户端也会补零
4.浮点类型
float与double
其小数点位数和总位数的关系与DEMICAL相似。浮点类型的数值是不精确的,需要精确计算的数值不建议设置为浮点型
例如:float(7,4) 存入9999.00009,小数位超出1位,其他的类型都会报错,
但是浮点型会自动四舍五入,再次取出后就会变成999.0001


 本文转自 angry_frog 51CTO博客,原文链接:http://blog.51cto.com/l0vesql/2046544


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
MySQL的安装手册
指导如何在centos环境下安装MySQL
0 0
MySQL 在 Mac 下的安装|学习笔记
快速学习MySQL 在 Mac 下的安装
0 0
MySQL 在 windows 下的安装|学习笔记
快速学习MySQL 在 windows 下的安装
0 0
冬季实战营第一期 之 安装并配置MySQL
MySQL是最流行的RDBMS(Relational Database Management System:关系数据库管理系统)之一,原开发者为瑞典的MySQL AB公司,该公司于2008年被昇阳微系统(Sun Microsystems)收购。2009年,甲骨文公司(Oracle)收购昇阳微系统公司,MySQL成为Oracle旗下产品。
0 0
从零到一上手玩转云服务器-- mysql安装体验
第一期,主要是熟悉一下ecs的创建与管理 ,mysql的安装及服务启动,yum源的配置,快速搭建门户网站。
0 0
安装Apache和MySQL
安装Apache和MySQL
0 0
springboot+redis+rabbitmq实现模拟秒杀系统(附带docker安装mysql,rabbitmq,redis教程)
在项目开发中,难免会遇到高并发问题,本文借助秒杀系统的模拟场景,旨在解决高并发问题。
0 0
Linux Ubuntu中安装MySQL(傻瓜式教程)
Linux Ubuntu中安装MySQL(傻瓜式教程)
0 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
好的 MySQL 兼容可以做到什么程度
立即下载
PostgresChina2018_张启程_为什么我们抛弃MongoDB和MySQL,选择PgSQL
立即下载
从理论到实践,深度解析MySQL Group Replication
立即下载