开发学院

您的位置:首页>教程>正文

教程正文

MySQL 数据类型

MySQL 数据类型

  正确地定义表中的字段对数据库的整体优化至关重要。您应只使用真正需要使用的字段的类型和大小,如果您知道您只需要使用2个字符,请不要将字段定义为10个字符,这些类型的字段(或列)被称为数据类型。

  MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。

数值数据类型:

  MySQL支持所有标准的ANSI SQL数字数据类型。以下列表显示常见的数字数据类型及其描述:

  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)的数目。

日期和时间类型:

  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点将存储为1973-12-30 15:30:00。

  TIMESTAMP:介于1970年1月1日午夜和2037年某时之间的时间戳。这看起来像以前的datetime格式,只是在数字之间没有连字符;1973年12月30日下午3点30分将存储为19731230153000 (YYYYMMDDHHMMSS).

  TIME:以HH:MM:SS格式存储时间。

  YEAR(M)-以2位或4位数的格式存储年份。如果长度指定为2(例如YEAR(2)) ,则年份可以是1970年至2069 (70至69)。如果长度为4,则可为1901至2155。默认长度为4。

字符串类型:

  字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。该节描述了这些类型如何工作以及如何在查询中使用这些类型。

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

  VARCHAR(M):长度为1到255个字符之间的变长字符串;例如varchar(25)。在创建varchar字段时,必须定义长度。

  BLOB or TEXT:最大长度为65535个字符的字段。blob是“二进制大对象”,用于存储大量的二进制数据,例如图像或其他类型的文件。定义为TEXT的字段也包含大量数据;两者之间的区别在于,对存储数据的排序和比较是对blob敏感的,在文本字段中不是区分大小写的。您不需要为blob或文本指定长度。

  TINYBLOB or TINYTEXT:最大长度为255个字符的blob或文本列。您不指定长度为tinyblob或tinytext的长度。

  MEDIUMBLOB or MEDIUMTEXT:最大长度为16777215字符的blob或文本列。您不指定长度为mediumblob或mediumtext的长度。

  LONGBLOB or LONGTEXT:最大长度为4294967295字符的blob或文本列。您不指定长度为longblob或longtext的长度。

  ENUM 枚举是一个有趣的类型。在定义枚举时,您将创建必须从中选择值的项目列表(或它也可以为NULL)。例如,如果您希望您的字段包含“a”或“b”或“c”,则您将定义您的枚举作为枚举(“a”、“b”、“c”) ,并且只有这些值(或null)可能会填充该字段。