MySQL_003_基础_数值类型

声明:本文转载自 维C果糖的博客,只是原文的一部分。mysql版本5.5.28,可视化工具 Navicat

前言

mysql数值类型可以分为两大类:正数型、小数型。

整数型

SQL根据所占磁盘空间大小,整数型可 细分为五类:

名称 解释 mysql默认显示长度 无符号数值范围 有符号数值范围
tinyint 迷你,使用1个字节存储数据 4 -128(-2^7) ~ 127(2^7-1) 0 ~ 255
smallint 小,使用2个字节存储数据 6 -32,768(-2^15) ~ 32,767(2^15-1) 0 ~ 65535
mediumint 中,使用3个字节存储数据 9
int 标准,使用4个字节存储数据 11 -2,147,483,648 ~ 2,147,483,647
bigint 大,使用8个字节存储数据 20 -9,223,372,036,854,775,808 ~ 9223372036854775807
use study_mysql;
CREATE table my_int(
  int_tiny TINYINT,
  int_small SMALLINT,
  int_normal int ,
  int_big BIGINT,
  int_medium MEDIUMINT
)

备注:

1. 常用的tinyint(1) 可以作为布尔值存储 0:false,1:true

2. int(11)虽然显示的是11位,但是真的存不下手机号。会产生数值溢出的问题。可以改用bigint / varchar(11) 存储。

3. SQL中数值类型默认是有符号位的,即分正负。如果需要使用无符号的数据,这就需要咱们自己对数据类型进行声明啦,即在声明数据类型时,追加unsigned关键字。或者在Navicat数据可视化工具里面直接勾选“无符号”。

小数型

在 SQL 中,将小数型细分为浮点型和定点型两种,其中:
- 浮点型:小数点浮动,精度有限,容易丢失精度;
- 定点型:小数点固定,精度固定,不会丢失精度。

第 1 种:浮点型

浮点型数据是一种精度型数据,因为超出指定范围之后,其会丢失精度,自动进行四舍五入操作。理论上,浮点型分为两种精度:
- float:单精度,占用 4 个字节存储数据,精度范围大概为 7 位左右;
- double:双精度,占用 8 个字节存储数据,精度范围大概为 15 位左右。

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

第 2 种:定点型

decimal 绝对的保证整数部分不会被四舍五入。
用法与浮点型类似
原文链接

你可能感兴趣的:(mysql)