数值分为两类
- 整数
- 小数
整数类型概述
SQL 的整数类型有5种
有符号就是
正负数都可以存储
,无符号只能存正数
,需要unsigned
修饰。
Tinyint
:占位 1 字节
- 有符号:-128~127
- 无符号: 0~255
Smallint
:占位 2 字节
- 有符号:-32768~32767
- 无符号: 0~65535
Mediumint
:占位 3 字节
- 有符号:-8388608~8388607
- 无符号: 0~1677215
Int
:占位 4 字节
- 有符号:- 2147483648~2147483647
- 无符号:0~4294967295
Bigint
:占位 8 字节
- 有符号:-9223372036854775808~9223372036854775807
- 无符号: 0~9223372036854775807*2+1
使用
只用 int 举个例子,其他也是同理。
创建表
create table t ( t1 int, # 默认有符号 t2 int unsigned, # 无符号 不能插入负数 t3 int(4), /* 数值代表 查询结果显示的长度(不是范围,范围是 int bigdata 使用什么类型确定的),这样单独写是看不出效果的。 */ t4 int(4) unsigned zerofill /* 1. 需要转换成 无符号 添加不足长度 0填充(zerofill)来显示。 2. 如果使用某些软件查询,查询结果可能会把 填充的0 去掉。 */ )
插入数据
insert into t values(-1,1,1,1)
查询
有填充的 0 。
mysql> select * from t; +------+------+------+------+ | t1 | t2 | t3 | t4 | +------+------+------+------+ | -1 | 1 | 1 | 0001 | +------+------+------+------+ 1 row in set (0.00 sec)
小数类型概述
SQL 的小数类型可以分为两大类
小数型,常用于
计算
,浮点的运算在精度上要求不高(了解)。
float(M, D)
:占有4
字节- 范围:±1.75494351E-38~±3.402823466E+38
double(M, D)
:占有8
字节- 范围:±2.2250738585072014E-308~
±1.7976931348623157E+308
- 范围:±2.2250738585072014E-308~
定点型,常用于货币的计算
dec(M, D) 是 decimal(M, D) 的缩写。
- dec(M, D):占有
M + 2
个字节- 范围:
最大取值范围与double相同
,给定dec的有效取值范围由M和D
决定
- 范围:
特点
M & D 详解
- M & D 的作用
- M:
整数位数 + D
- D:
小数的位数
- M:
- M & D 都是可以
省略
的小数类型
省略,就不受位数限制定点数
省略,将会默认dec(10,0)
使用
创建表
create table num.f ( f1 float, # 不带参数 f2 float(5,2), # 带参数,超过范围会报错 f3 dec, # 不带参数默认 dec(10,0) f4 dec(5,4) # 达不到 5 长度,小数后 0 填充 )
查看表的结构
关注表字段的 Type 。
mysql> desc f; +-------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------------+------+-----+---------+-------+ | f1 | float | YES | | NULL | | | f2 | float(5,2) | YES | | NULL | | | f3 | decimal(10,0) | YES | | NULL | | | f4 | decimal(5,4) | YES | | NULL | | +-------+---------------+------+-----+---------+-------+ 4 rows in set (0.01 sec)
插入数据
insert into f values(-1,1.56,1,1.56)
查看结果
dec 类型填充的 0 ,在某些软件查询会被过滤。
mysql> select * from f; +------+------+------+--------+ | f1 | f2 | f3 | f4 | +------+------+------+--------+ | -1 | 1.56 | -1 | 1.5600 | +------+------+------+--------+ 2 rows in set (0.00 sec)
上一篇
SQL 日期和时间类型
SQL 日期和时间类型
下一篇
SQL DDL语言概述
SQL DDL语言概述