MySQL 5.7常见数据类型

这篇文章主要介绍了MySQL 5.7数据类型详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

――《深入浅出MySQL(第二版)》笔记

数值类型

整数类型字节最小值最大值
TINYINT1有符号 -128;无符号 0有符号 127;无符号 255
SMALLINT2有符号 -2^16;无符号 0有符号 2^16-1;无符号 2^17-1
MEDIUMINT3有符号 -2^24;无符号 0有符号 2^24-1;无符号 2^25-1
INT\INTEGER4有符号 -2^32;无符号 0有符号 2^32-1;无符号 2^33-1
BIGINT8有符号 -2^64;无符号 0有符号 2^64-1;无符号 2^65-1

浮点类型字节最大值最小值
FLOAT4
DOUBLE8

定点数类型字节描述
DEC(M,D)\DECIMAL(M,D)M+2最大值取值范围与DOUBLE相同,给定DECIMAL的有效取值范围由M和D决定

位类型字节最小值最大值
BIT(M)1~8BIT(1)BIT(8)

整数类型

对于整数类型,MySQL支持在类型名称后面使用(n)的方式指定显示宽度,例如int(5)表示当数值宽度小于5位时,在数字前面填满宽度,如果不显示指定宽度则默认为int(11)。一般配合zerofill使用,就是用'0'填充。

示例:

 --创建表t1,有id1和id2两个字段,指定数值宽度分别为int和int(5) mysql> create table t1 (id1 int,id2 int(5)); mysql> desc t1;

 --在id1和id2中都插入数值1 mysql> insert into t1 values (1,1); mysql> select * from t1;

 --分别给id1和id2字段增加zerofill参数 mysql> alter table t1 modify id1 int zerofill; mysql> alter table t1 modify id2 int(5) zerofill;

设置了宽度限制后,如果插入大于宽度限制的值,不会对插入的数据有任何影响,还是按照类型的书记精度进行保存。这时,宽度格式实际已经没有意义,左边不会再填充任何的“0”字符。

 --向表t1的id1中插入1,id2中插入12345678 mysql> insert into t1 values(1,12345678); mysql> select * from t1;

所有的整数类型都有一个可选属性UNSIGNED(无符号),如果需要在字段里面保存非负数或者需要较大的上限值,可以用此选项。而当一个列指定为zerofill,则MySQL自动为该列添加UNSIGNED属性。

另外,整数类型还有一个独有的AUTO_INCREMENT属性,表示该列的值是自增型。AUTO_INCREMENT值一般从1开始,每行增加1。在插入NULL到一个AUTO_INCREMENT列时,MySQL插入一个比该列当前最大值大1的值。一个表中最多只能有一个列是AUTO_INCREMENT的。

对于任何想要使用AUTO_INCREMENT的列,应该定义为NOT NULL,并定义为UNIQUE。

浮点类型

对于小数的表示,MySQL分为浮点数和定点数两种。浮点数包括float(单精度)和double(双精度),而定点数只有decimal一种。定点数在MySQL内部以字符串形式存放,比浮点数更精确,适合用来表示货币等精度高的数据。

浮点数和定点数都可以用类型名称后加"(M,D)"的方式来进行表示,"(M,D)"表示该值一共显示M位,小数有D位。MySQL保存浮点值时对超出位采用的是四舍五入的方式。因此如果在float(5,3)中插入123.006,则保存的值为123.01。float和double在不指定精度时,默认按照实际硬件和操作系统来决定;而decimal不指定时,默认整数位为10,小数位为0。

示例:

 --创建表tf,分别将id1,id2,id3字段设置为float(5,2),double(5,2),decimal(5,2) mysql> create table tf( id1 float(5,2),id2 double(5,2),id3 decimal(5,2));

 --向表中三个字段分别插入数据1.23 mysql> insert into tf values(1.23,1.23,1.23);

 --向表中分别插入数据1234.005 mysql> insert into tf values(1234.005,1234.005,1234.005);

 --向表中分别插入数据123.005 mysql> insert into tf values(123.005,123.005,123.005);

 --向表中分别插入数据123.006,123.006,123.004 mysql> insert into tf values(123.006,123.006,123.004);

 --去掉表tf字段的精度,并重新插入1.23 mysql> alter table tf modify id1 float; mysql> alter table tf modify id2 double; mysql> alter table tf modify id3 decimal; mysql> insert into tf values(1.2

以上就是MySQL 5.7常见数据类型的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » 数据库