微信公众号
扫描关注微信公众号
博客大厅

MySQL数据库常用数据类型详解

原创 来源:博客站 阅读 0 01月17日 14:50 听全文

MySQL数据库支持多种数据类型,每种类型都有其特定的用途和限制。以下是MySQL数据库中一些常用的数据类型及其详解:

一、数值类型

1. 整数类型

  • TINYINT:1字节,范围为-128~127(有符号)或0~255(无符号)。
  • SMALLINT:2字节,范围为-32768~32767(有符号)或0~65535(无符号)。
  • MEDIUMINT:3字节,范围为-8388608~8388607(有符号)或0~16777215(无符号)。
  • INT/INTEGER:4字节,范围为-2147483648~2147483647(有符号)或0~4294967295(无符号)。
  • BIGINT:8字节,范围为-9223372036854775808~9223372036854775807(有符号)或0~18446744073709551615(无符号)。

整数类型默认是有符号的,如果需要无符号类型,可以添加UNSIGNED关键字。此外,整数类型还可以指定显示宽度(如INT(5)),但这并不影响实际存储的数据范围,只是影响显示时的填充方式。从MySQL 8.0.17开始,整数数据类型不推荐使用显示宽度属性。

2. 浮点类型

  • FLOAT:4字节,用于存储单精度浮点数。
  • DOUBLE:8字节,用于存储双精度浮点数。

浮点类型在数据库中存放的是近似值,因此不适合存储需要高精度的数据(如货币)。

3. 定点类型

  • DECIMAL:存储为字符串的精确小数,可以指定小数点前后的位数(如DECIMAL(10,2)表示总共10位数字,其中2位是小数)。

定点类型适合存储高精度需求的数据,如货币。

二、字符串类型

1. 短文本类型

  • CHAR(M):固定长度字符数据,M为字符数。如果存储的字符数少于M,则会用空格填充至M个字符长度。检索时会去掉填充的空格。CHAR类型存储的字符串末尾不能有空格。
  • VARCHAR(M):可变长度字符数据,M为最大字符数。VARCHAR类型根据实际存储的字符数来分配空间,并会额外存储一个字节来表示字符串的长度(如果M<=255)或两个字节(如果M>255)。VARCHAR类型不会填充空格,因此存储效率更高,但检索速度可能稍慢于CHAR类型。

2. 长文本类型

  • TEXT:用于存储长文本数据,根据存储需求的不同,还有TINYTEXT(最多255字符)、MEDIUMTEXT(最多16777215字符)和LONGTEXT(最多4294967295字符)等类型。

3. 二进制类型

  • BINARY(M):固定长度二进制数据,M为字节数。
  • VARBINARY(M):可变长度二进制数据,M为最大字节数。

此外,还有BLOB类型用于存储较大的二进制数据,包括TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB等类型。

三、日期和时间类型

  • DATE:存储日期值,格式为YYYY-MM-DD。
  • TIME:存储时间值,格式为HH:MM:SS。
  • YEAR:存储年份值,格式为YYYY。
  • DATETIME:存储日期和时间值,格式为YYYY-MM-DD HH:MM:SS。DATETIME类型不受1970-2035年范围的限制,可以存储从1000年到9999年的日期和时间。
  • TIMESTAMP:存储时间戳值,格式与DATETIME相同。TIMESTAMP类型会自动记录数据行的最后修改时间,并且受时区影响。

四、其他类型

  • BOOLEAN:布尔类型,可以存储TRUE或FALSE值。在MySQL中,BOOLEAN类型实际上是TINYINT(1)的别名。
  • ENUM:枚举类型,用于存储一个预定义集合中的值。在创建表时,可以指定该列可以接受的值列表。
  • SET:集合类型,用于存储一个预定义集合中的多个值。与ENUM类型不同,SET类型允许存储集合中的多个值(以逗号分隔)。
  • JSON:用于存储JSON格式的数据,包括JSON对象和JSON数组。

五、空间数据类型

MySQL还支持空间数据类型,用于存储地理空间数据,如点(POINT)、线(LINESTRING)、多边形(POLYGON)等。这些数据类型可以帮助用户根据需要选择合适的类型来存储地理空间数据。

综上所述,MySQL数据库提供了丰富的数据类型供用户选择。在选择数据类型时,应根据数据的特性和存储需求来选择合适的类型,以提高数据库的性能和效率。

学在每日,进无止境!更多精彩内容请关注微信公众号。
原文出处: 内容由AI生成仅供参考,请勿使用于商业用途。如若转载请注明原文及出处。
出处地址:http://www.07sucai.com/tech/52.html
版权声明:本文来源地址若非本站均为转载,若侵害到您的权利,请及时联系我们,我们会在第一时间进行处理。
>