MySQL 数据类型

MySQL 数据类型

对表中的字段进行适当的定义对于数据库的整体优化很重要。您应该只使用您实际需要使用的字段类型和大小。例如,如果您知道您只会使用2个字符,就不要定义一个10个字符宽的字段。这些类型的字段(或列)也被称为数据类型,根据您将存储在这些字段中的数据的类型。

MySQL使用许多不同的数据类型,分为三类 –

  • 数值
  • 日期和时间
  • 字符串类型。

现在让我们详细讨论它们。

数值数据类型

MySQL使用所有标准ANSI SQL数值数据类型,因此如果您从其他数据库系统转到MySQL,这些定义对您来说看起来很熟悉。

以下列表显示了常见的数值数据类型及其描述 –

  • INT - 一个可以有符号或无符号的普通大小整数。如果有符号,可取范围为-2147483648到2147483647。如果无符号,可取范围为0到4294967295。您可以指定最大宽度为11位数字。

  • TINYINT - 一个非常小的整数,可以有符号或无符号。如果有符号,可取范围为-128到127。如果无符号,可取范围为0到255。您可以指定最大宽度为4位数字。

  • SMALLINT - 一个小整数,可以有符号或无符号。如果有符号,可取范围为-32768到32767。如果无符号,可取范围为0到65535。您可以指定最大宽度为5位数字。

  • MEDIUMINT - 一个中等大小的整数,可以有符号或无符号。如果有符号,可取范围为-8388608到8388607。如果无符号,可取范围为0到16777215。您可以指定最大宽度为9位数字。

  • BIGINT - 一个大整数,可以有符号或无符号。如果有符号,可取范围为-9223372036854775808到9223372036854775807。如果无符号,可取范围为0到18446744073709551615。您可以指定最大宽度为20位数字。

  • FLOAT(M,D) - 一个浮点数,不能为无符号。您可以定义显示长度(M)和小数位数(D)。这是可选的,默认为10,2,其中2是小数位数,10是总位数(包括小数)。浮点的小数精度可达到24位。

  • DOUBLE(M,D) - 一个双精度浮点数,不能为无符号。您可以定义显示长度(M)和小数位数(D)。这是可选的,默认为16,4,其中4是小数位数。双精度浮点的小数精度可达到53位。REAL是DOUBLE的同义词。

  • DECIMAL(M,D) - 一个非压缩的浮点数,不能为无符号。在非压缩的十进制数中,每个十进制数对应一个字节。定义显示长度(M)和小数位数(D)是必需的。NUMERIC是DECIMAL的同义词。

日期和时间类型

MySQL的日期和时间数据类型如下:

  • 日期(DATE) − 以YYYY-MM-DD格式存储的日期,范围在1000-01-01到9999-12-31之间。例如,1973年12月30日是以1973-12-30存储的。

  • 日期时间(DATETIME) − 以YYYY-MM-DD HH:MM:SS格式存储的日期和时间组合,范围在1000-01-01 00:00:00到9999-12-31 23:59:59之间。例如,1973年12月30日下午3点30分被存储为1973-12-30 15:30:00。

  • 时间戳(TIMESTAMP) − 在1970年1月1日午夜至2037年之间的时间戳。它与前面的DATETIME格式相似,只是数字之间没有连字符;例如,1973年12月30日下午3点30分被存储为19731230153000( YYYYMMDDHHMMSS )。

  • 时间(TIME) − 以HH:MM:SS格式存储的时间。

  • 年份(YEAR) − 以两位或四位数字形式存储的年份。如果长度指定为2(例如YEAR(2)),年份可在1970到2069之间(70到69)。如果长度指定为4,则年份可在1901到2155之间。默认长度为4。

字符串类型

尽管数字和日期类型很有趣,但您存储的大部分数据将以字符串格式存在。以下列表描述了MySQL中常见的字符串数据类型。

  • CHAR(M) − 固定长度字符串,长度介于1到255个字符之间(例如CHAR(5)),在存储时会用空格填充到指定的长度。不需要定义长度,但默认为1。

  • VARCHAR(M) − 可变长度字符串,长度介于1到255个字符之间。例如,VARCHAR(25)。创建VARCHAR字段时必须定义长度。

  • BLOB或TEXT − 最大长度为65535个字符的字段。BLOB是“二进制大对象”,用于存储大量的二进制数据,例如图像或其他类型的文件。被定义为TEXT的字段也可以存储大量的数据。两者之间的区别在于,BLOB上存储的数据的排序和比较是 区分大小写的 ,而在TEXT字段中不是 区分大小写的 。在BLOB或TEXT中不需要指定长度。

  • TINYBLOB或TINYTEXT − 最大长度为255个字符的BLOB或TEXT列。在TINYBLOB或TINYTEXT中不需要指定长度。

  • MEDIUMBLOB或MEDIUMTEXT − 最大长度为16777215个字符的BLOB或TEXT列。在MEDIUMBLOB或MEDIUMTEXT中不需要指定长度。

  • LONGBLOB或LONGTEXT − 最大长度为4294967295个字符的BLOB或TEXT列。在LONGBLOB或LONGTEXT中不需要指定长度。

  • ENUM − 枚举类型,即列表类型。定义ENUM时,您创建了一个值必须从中选择的项目列表(或者可以为空值)。例如,如果您希望字段包含“A”或“B”或“C”,则可以将ENUM定义为ENUM(’A’,’B’,’C’),并且只有这些值(或为空值)可以在该字段中填充。

在下一章中,我们将讨论如何在MySQL中创建表格。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程