本篇将介绍在 MySql 中的所有数据类型,其中主要分为四类:数值类型、文本和二进制类型、时间日期、String 类型。如下(图片来源:MySQL数据库):
目录如下:
目录
数值类型
数值类型的数据又主要分为两类,整数类型和浮点数类型还有 bit 类型,对于整数类型来说,占多少位就可以表示多少位数的大小,若不在定义变量的后面带上 unsigned 关键字修饰,则为有符号整数,其表示范围为:-2 ^ (n-1) ~ 2 ^ (n - 1) - 1,若带上 unsigned 关键字修饰,则表示的范围为 :2 ^ n - 1,其中 n 代表的是数据类型的位数。
1. 整数类型
对于整数类型,tinyint 数据类型占一个字节、smallint 占用两个字节、mediumint 占三个字节、int 占四个字节、bigint 占八个字节。
我们以 tinyint 类型为例讲解,其余所有的整数类型的操作均和 tinyint 的一致,只是能表示的数据范围不同而已,(tinyint 数据类型为 8 位bit位,一个字节)如下:
当我们向一个类型为 tinyint 类型的变量插入元素的时候,超过对应的范围就会导致我们插入失败,当我们定义一共 tinyint unsigned 元素的变量的时候,当范围超255的时候也会导致报错,如下:
对于如上的操作我们就可得出结论:
1. mysql 中插入数据不合法的数据,会被 mysql 直接给拦截掉,只要我们插入的数据,就一定是合法的数据。
2. mysql 的中数据类型本身就是一种约束,这种约束会倒逼我们去遵守数据类型的使用,保证数据可预期的,完整的。
2. bit 类型
对于 bit 类型来说,定义的时候为 bit(m),其中 m 表示该 bit 类型的数据有多少位,默认值为 1,最大为64,所以 bit 类型的数据的位数范围为:1 ~ 64 位,如下:
如上所示,当我们插入对应的元素的时候,超过 bit 位的位数的时候,就会导致插入失败,同时查看的时候,显示方法和整型类型的数据有所区别(若是其他版本的mysql,可能显示不出对应的 bit 类型的数据,因为可能是按照asc码值显示的时候,整个使用我们就可可以将数据转化位十六进制来显示,如下)。