一、整数类型
常用整数类型:tinyint,int,bigint
二、浮点类型
MySQL支持的浮点数类型,分别是 FLOAT、DOUBLE、REAL。其中,FLOAT 表示单精度浮点数;DOUBLE 表示双精度浮点数;REAL默认就是DOUBLE。如果将SQL 模式设定为启用“ REAL_AS_FLOAT ”,MySQL 认为
REAL 是 FLOAT。启用“REAL_AS_FLOAT”,可以通过以下 SQL 语句实现:
SET sql_mode = “REAL_AS_FLOAT”;
三、定点数类型
MySQL中的定点数类型只有 DECIMAL 一种类型
使用 DECIMAL(M,D) 的方式表示高精度小数。其中,M被称为精度,D被称为标度。
四、位类型
五、日期与时间类型
MySQL8.0版本支持的日期和时间类型主要有:YEAR类型、TIME类型、DATE类型、DATETIME类型和TIMESTAMP类型。
(1)YEAR 类型通常用来表示年
(2)DATE 类型通常用来表示年、月、日
(3)TIME 类型通常用来表示时、分、秒
(4)DATETIME 类型通常用来表示年、月、日、时、分、秒
(5)TIMESTAMP 类型通常用来表示带时区的年、月、日、时、分、秒
六、文本字符串类型
MySQL中,文本字符串总体上分为 CHAR 、 VARCHAR 、 TINYTEXT 、 TEXT 、MEDIUMTEXT 、 LONGTEXT 、 ENUM 、 SET 等类型
七、ENUM类型
ENUM类型也叫作枚举类型,ENUM类型的取值范围需要在定义字段时进行指定。设置字段值时,ENUM类型只允许从成员中选取单个值,不能一次选取多个值。
1、当ENUM类型包含1~255个成员时,需要1个字节的存储空间。
2、当ENUM类型包含256~65535个成员时,需要2个字节的存储空间。
3、ENUM类型的成员个数的上限为65535个
八、SET类型
(1)SET表示一个字符串对象,可以包含0个或多个成员,但成员个数的上限为64。设置字段值时,可以取取值范围内的0个或多个值。
(2)当SET类型包含的成员个数不同时,其所占用的存储空间也是不同的,具体如下:
九、二进制字符串类型
(1)MySQL中的二进制字符串类型主要存储一些二进制数据,比如可以存储图片、音频和视频等二进制数据。
(2)MySQL中支持的二进制字符串类型主要包括BINARY、VARBINARY、 TINYBLOB、 BLOB、MEDIUMBLOB 和LONGBLOB类型。
十、JSON类型
(1)JSON(JavaScript Object Notation)是一种轻量级的 数据交换格式 。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。它易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在网络或者程序之间轻
松地传递这个字符串,并在需要的时候将它还原为各编程语言所支持的数据格式。
(2)在MySQL 5.7中,就已经支持JSON数据类型。在MySQL 8.x版本中,JSON类型提供了可以进行自动验证的JSON文档和优化的存储结构,使得在MySQL中存储和读取JSON类型的数据更加方便和高效。 创建数据表,表中包含一个JSON类型的字段 js 。
十一、空间类型
1)MySQL 空间类型扩展支持地理特征的生成、存储和分析。这里的地理特征表示世界上具有位置的任何东西,可以是一个实体,例如一座山;可以是空间,例如一座办公楼;也可以是一个可定义的位置,例如一个十字路口等等。MySQL中使用 Geometry(几何) 来表示所有地理特征。Geometry指一个点或点的集合,代表世界上任何具有位置的事物。
(2)MySQL的空间数据类型(Spatial Data Type)对应于OpenGIS类,包括单值类型:GEOMETRY、POINT、 LINESTRING、POLYGON以及集合类型:MULTIPOINT、MULTILINESTRING、MULTIPOLYGON、 GEOMETRYCOLLECTION 。