【MySQL】常见数据类型

整数类型

根据数值取值范围的不同MySQL中的整数类型可分为5种,分别是TINYINT、SMALUNT、MEDIUMINT、INT和 BIGINT。

数据类型 字节数 无符号的取值范围 有符号的取值范围
TINYINT 1 0~255 -128~127
SMALLINT 2 0~65535 -32768~32768
MEDIUMINT 3 0~16777215 -8388608~8388608
INT 4 0~4294967295 -2147483648~ 2147483648
BIGINT 8 0~18446744073709551615 -9223372036854775808~9223372036854775808

浮点数类型和定点数类型

数据类型 字节数 无符号的取值范围 有符号的取值范围
FLOAT 4 0和1.175494351E-38~3.402823466E+38 -3.402823466E+38~-1.175494351E-38
DOUBLE 8 0和2.2250738585072014E-308~1.7976931348623157E+308 -1.7976931348623157E+308~2.2250738585072014E-308
DECIMAL(M,D) M+2 0和2.2250738585072014E-308~1.7976931348623157E+308 -1.7976931348623157E+308~2.2250738585072014E-308

从上图中可以看出:DECIMAL类型的取值范围与DOUBLE类型相同。但是,请注意:DECIMAL类型的有效取值范围是由M和D决定的。其中,M表示的是数据的长度,D表示的是小数点后的长度。比如,将数据类型为DECIMAL(6,2)的数据6.5243 插人数据库后显示的结果为6.52

字符串类型

在MySQL中常用CHAR 和 VARCHAR 表示字符串。两者不同的是:VARCHAR存储可变长度的字符串。

插入值 CHAR(3) 存储需求 VARCHAR(3) 存储需求
‘’ ‘’ 3个字节 ‘’ 1个字节
‘a’ ‘a’ 3个字节 ‘a’ 2个字节
‘ab’ ‘ab’ 3个字节 ‘ab’ 3个字节
‘abc’ ‘ab’ 3个字节 ‘abc’ 4个字节
‘abcd’ ‘ab’ 3个字节 ‘abc’ 4个字节

文本类型

用于表示大文本数据,例如,文章内容、评论、详情等,它的类型分为如下4种:

数据类型 储存范围
TINYTEXT 0~255字节
TEXT 0~65535字节
MEDIUMTEXT 0~16777215字节
LONGTEXT 0~4294967295字节

日期与时间类型

MySQL提供的表示日期和时间的数据类型分别是 :YEAR、DATE、TIME、DATETIME 和 TIMESTAMP。

数据类型 字节数 取值范围 日期格式 零值
YEAR 1 1901~2155 YYYY 0000
DATE 4 1000-01-01~9999-12-31 YYYY-MM-DD 0000-00-00
TIME 3 -838:59:59~838:59:59 HH:MM:SS 00:00:00
DATETIME 8 1000-01-01 00:00:00~9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 0000-00-00 00:00:00
TIMESTAMP 4 1970-01-01 00:00:01~2038-01-19 03:14:07 YYYY-MM-DD HH:MM:SS 0000-00-00 00:00:00

YEAR类型

YEAR类型用于表示年份,在MySQL中,可以使用以下三种格式指定YEAR类型的值。

注意:当使用YEAR类型时,一定要区分’0’和0。因为字符串格式的’0’表示的YEAR值是2000而数字格式的0表示的YEAR值是0000。

  • YEAR类型用于表示年份,在MySQL中,可以使用以下三种格式指定YEAR类型的值。
  • 使用两位字符串表示,范围为’00’—‘99’。其中,‘00’—'69’范围的值会被转换为 2000—2069范围的YEAR值,‘70’—'99’范围的值会被转换为1970—1999范围的YEAR 值。例如,输人’19’插人到数据库中的值为2019。
  • 使用两位数字表示,范围为1—99。其中,1—69范围的值会被转换为2001— 2069范围的YEAR值,70—99范围的值会被转换为1970—1999范围的YEAR值。例 如,输人19插入到数据库中的值为2019。

TIME类型

TIME类型用于表示时间值,它的显示形式一般为HH:MM:SS,其中,HH表示小时, MM表示分,SS表示秒。在MySQL中,可以使用以下3种格式指定TIME类型的值。

  • 以’D HH:MM:SS’字符串格式表示。其中,D表示日可取0—34之间的值, 插人数据时,小时的值等于(DX24+HH)。例如,输入’2 11:30:50’插人数据库中的日期为59:30:50。
  • 以’HHMMSS’字符串格式或者HHMMSS数字格式表示。 例如,输人’115454’或115454,插入数据库中的日期为11:54:54
  • 使用CURRENT_TIME或NOW()输人当前系统时间。

DATETIME类型

DATETIME类型用于表示日期和时间,它的显示形式为’YYYY-MM-DD HH: MM:SS’

在MySQL中,可以使用以下4种格式指定DATETIME类型的值。

  • ’YYYY-MM-DD HH:MM:SS’或者’YYYYMMDDHHMMSS’

    取值范围为’1000-01-01 00:00:00’—‘9999-12-3 23:59:59’。例如,输人’2019-01-22 09:01:23’或 ‘20140122_0_90123’插人数据库中的 DATETIME 值都为 2019-01-22 09:01:23。

  • ’YY-MM-DD HH:MM:SS’或者’YYMMDDHHMMSS’

    YY表示年,取值范围为’00’—‘99’。与DATE类型中的YY相同,‘00’— '69’范围的值会被转换为2000—2069范围的值,‘70’—'99’范围的值会被转换为1970—1999范围的值。

  • YYYYMMDDHHMMSS或者YYMMDDHHMMSS数字格式

    20190122090123或者190122090123,插人数据库中的DATETIME值都 为 2019-01-22 09:01:23。

  • 使用NOW来输人当前系统的日期和时间。

TIMESTAMP类型

TIMESTAMP类型用于表示日期和时间,它的显示形式与DATETIME相同但取值范围比DATETIME小。在此,介绍几种TIMESTAMP类型与DATATIME类型不同的形式:

  • 使用CURRENT_TIMESTAMP输人系统当前日期和时间。
  • 输人NULL时系统会输人系统当前日期和时间。
  • 无任何输人时系统会输入系统当前日期和时间。

二进制类型

在MySQL中常用BLOB存储二进制类型的数据,例如:图片、PDF文档等。BLOB类型分为如下四种:

数据类型 储存范围
TINYBLOB 0~255字节
BLOB 0~65535字节
MEDIUMBLOB 0~16777215字节
LONGBLOB 0~4294967295字节

猜你喜欢

转载自blog.csdn.net/al6nlee/article/details/131115893