mysql数据类型有哪些

MySQL数据类型主要包括以下类型:

数值类型:例如整数类型(TINYINT、SMALLINT、MEDIUMINT、INT或INTEGER)、定点数类型(DECIMAL或NUMERIC)、浮点数类型(FLOAT和DOUBLE)、位值类型(BIT)。
这些数值类型用于存储不同大小和范围的数值。
例如,INT用于存储常规整数,而DECIMAL用于存储精确小数。

日期和时间类型:例如日期类型(DATE)、时间类型(TIME)、日期和时间类型(DATETIME和TIMESTAMP)、年份类型(YEAR)。
这些数据类型用于存储日期和时间信息。
例如,DATE用于存储日期信息,而DATETIME可以同时存储日期和时间信息。
TIMESTAMP类型与DATETIME类似,但它会在记录插入数据库时​​自动记录时间戳。

字符串类型:如字符类型(CHAR)、变长字符类型(VARCHAR)、文本类型(TEXT)、枚举类型(ENUM)和集合类型(SET)等。
这些字符串类型用于存储文本数据。
CHAR和VARCHAR用于存储定长和变长字符串数据,TEXT用于存储较长的文本数据。
ENUM和SET用于存储一组预定义的字符串值。

二进制数据类型:如二进制类型(BINARY)、变长二进制类型(VARBINARY)、BLOB类型以及相关的BLOB数据类型(TINYBLOB、MEDIUMBLOB、LONGBLOB)。
这些数据类型用于存储二进制数据,例如图像、音频和视频等文件内容。
BLOB代表二进制大对象,用于存储大量的二进制数据。

除了上面的数据类型之外,MySQL还支持一些其他特殊的数据类型,例如枚举类型和JSON数据类型。
每种数据类型都有其特定的用途和使用场景,必须根据具体的应用需求选择合适的数据类型来存储和管理数据。
正确使用数据类型可以提高数据库性能和安全性。

mysql中有哪些数据类型

MySQL中的数据类型:

1.数值类型

*整数类型:包括TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT。
这些类型用于存储整数,根据它们的名称,存储值的大小和范围有所不同。

*小数和浮点类型:包括FLOAT、DOUBLE和DECIMAL。
这些类型用于存储十进制数,其中DECIMAL类型允许用户指定小数点前后的位数。

2.字符串类型

*字符类型:包括CHAR和VARCHAR。
CHAR是固定长度字符串,VARCHAR是可变长度字符串。
VARCHAR比CHAR更灵活,因为它只占用所需的空间。

*文本类型:包括TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。
这些类型用于存储大型文本数据,长度和存储容量各不相同。

3.日期和时间类型

*包括DATE、TIME、DATETIME、TIMESTAMP和YEAR类型。
这些类型用于存储日期和时间信息。
其中,TIMESTAMP类型还包含时区信息。

4.二进制数据类型

*包括BINARY、VARBINARY、BLOB、MEDIUMBLOB和LONGBLOB类型。
这些类型用于存储二进制数据,例如图像、音频和视频等文件内容。
BLOB类型的不同变体根据存储容量的不同而有所不同。

除了上述基本数据类型之外,MySQL还提供了枚举、集合等其他复杂数据类型,以及空间数据的地理数据类型。
这些数据类型提供了多种多样的选择,开发者可以根据自己的实际需要选择合适的数据类型来存储和管理数据。
使用合适的数据类型有助于提高查询效率并优化数据库性能。

mysql中常见的数据类型

第一:MySQL数据类型

MySQL中定义的数据字段类型对于数据库优化非常重要。

MySQL支持多种数据类型:它们大致分为三类:数字日期/时间和字符串

2。
数字类型

1.整数类型

值更加准确,建议使用定点数据类型。
MySql中的浮点类型包括float、double和real。
它们定义为FLOAT(M,D)、REAL(M,D)和DOUBLEPRECISION(M,D)。

FLOAT和DOUBLE的M和D值基本都为0。
换句话说,除了最大值和最小值之外,位数没有限制。
理论上允许的值为-1.7976931348623157E+308~-2.2250738585072014E-308、0、2.2250738585072014E-308~1.7976931348623157E+308。
M和D的取值范围如下:

(MySql5.7中的实际测量与下面介绍的IEEE标准中的实际计算有所不同):M的取值范围为0~255。

FLOAT仅保证6位有效数字的精度,因此在FLOAT(M,D)中,当M<=6时,数字通常是准确的。
如果M和D都明确定义,则超出范围后的处理与十进制数相同。

D的取值范围是0到30,并且必须<=M。
由于double只能保证精确到16位有效数字,因此DOUBLE(M,D)一般会保证M<=16时数字准确。
如果M和D都明确定义,则超出范围后的处理与十进制数相同。

CHAR值在右侧用空格填充到指定的长度。
搜索CHAR值会丢弃尾随空格,因此即使存储时字符串右侧有空格,查询后也会被丢弃。
存储或检索期间不执行大小写转换。

3.时间和日期类型(5)

值“0”为:

单击输入图像描述。

4.各类占用的存储空间

单击可输入图像的描述。

定点数很特殊并与特定版本相关联。
这里分别描述它们。

DECIMAL使用二进制格式将9个十进制数字(以10为基数)压缩为4个字节来表示列值。
每个值的整数部分和小数部分的存储是单独确定的。
每个9位数字的倍数需要4个字节,“余数”位需要4个字节的一部分。
下表显示了超出数量的存储要求。

单击输入图像描述。

单击输入图像描述

从版本5.6.4开始,存储要求已根据准确性发生变化。
不确定部分所需存储空间如下。

点击输入图像描述。

示例:TIME(0),TIME(2)、TIME(4)和TIME(6)分别使用3、4、5和6个字节。

3.String

点击输入图像描述。

4.

为了优化存储容量,您应该在所有情况下使用最准确的类型。

例如,如果列值从1到99999并且使用整数,则MEDIUMINTUNSIGNED是一个很好的类型。
此类型使用可表示列值的任何类型中最少的存储空间。

基于10的65位精度的十进制数使用以下命令在DECIMAL列上执行所有基本计算(+、-、*、/)

要计算DECIMAL值,请使用双精度算术。
如果精度不是很重要或者速度最重要,那么DOUBLE类型就足够了。
为了实现高精度,可以转换为存储在BIGINT中的定点类型。
这允许您将所有计算作为64位整数执行,并根据需要将结果转换回浮点值。

5.使用其他数据库的SQL语句

为了使用为其他数据库编写的SQL可执行代码,MySQL映射列类型,如下表所示。
这些映射使您可以轻松地将表定义从其他数据库引擎导入MySQL。

单击以输入图像描述