mysql bit类型 有效值_MySQL数据类型介绍

【数值类型】

MySQL支持所有标准SQL数值数据类型。

这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。

关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。

BIT数据类型保存位字段值,并且支持MyISAM、MEMORY、InnoDB和BDB表。

作为SQL标准的扩展,MySQL也支持整数类型TINYINT、MEDIUMINT和BIGINT。下面显示了需要的每个整数类型的存储和范围。

TINYINT(小整数值)

大小:1 字节

范围(有符号):(-128,127)

范围(无符号):(0,255):

SMALLINT(大整数值)

大小:2 字节

范围(有符号):(-32 768,32 767)

范围(无符号):(0,65 535)

MEDIUMINT(大整数值)

大小:3 字节

范围(有符号):(-8 388 608,8 388 607)

范围(无符号):(0,16 777 215)

INT或INTEGER(大整数值)

大小:4 字节

范围(有符号):(-2 147 483 648,2 147 483 647)

范围(无符号):(0,4 294 967 295)

BIGINT(极大整数值)

大小:8 字节

范围(有符号):(-9,223,372,036,854,775,808,9 223 372 036 854 775 807)

范围(无符号):(0,18 446 744 073 709 551 615)

FLOAT(单精度-浮点数值)

大小:4 字节

范围(有符号):(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)

范围(无符号):0,(1.175 494 351 E-38,3.402 823 466 E+38)

DOUBLE(双精度-浮点数值)

大小:8 字节

范围(有符号):(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308):

范围(无符号):0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)

DECIMAL(小数值)

大小:对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2

范围(有符号):依赖于M和D的值

范围(无符号):依赖于M和D的值

取值范围如果加了 unsigned,则最大值翻倍,如 tinyint unsigned 的取值范围为(0~255)。

【日期和时间类型】

表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。

每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。

TIMESTAMP类型有专有的自动更新特性,将在后面描述。

DATE(日期值)

大小(字节):3

范围:1000-01-01/9999-12-31

格式:YYYY-MM-DD

TIME(时间值或持续时间)

大小(字节):3

范围:'-838:59:59'/'838:59:59'

格式:HH:MM:SS

YEAR(年份值)

大小(字节):1

范围:1901/2155

格式:YYYY

DATETIME(混合日期和时间值)

大小(字节):8

范围:1000-01-01 00:00:00/9999-12-31 23:59:59

格式:YYYY-MM-DD HH:MM:SS

TIMESTAMP(混合日期和时间值,时间戳)

大小(字节):4

范围:1970-01-01 00:00:00/2038结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07

格式:YYYYMMDD HHMMSS

【字符串类型】

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

CHAR

大小:0-255字节

用途:定长字符串

VARCHAR

大小:0-65535 字节

用途:变长字符串

TINYBLOB

大小:0-255字节

用途:不超过 255 个字符的二进制字符串

TINYTEXT

大小:0-255字节

用途:短文本字符串

BLOB

大小:0-65 535字节

用途:二进制形式的长文本数据

TEXT

大小:0-65 535字节

用途:长文本数据

MEDIUMBLOB

大小:0-16 777 215字节

用途:二进制形式的中等长度文本数据

MEDIUMTEXT

大小:0-16 777 215字节

用途:中等长度文本数据

LONGBLOB

大小:0-4 294 967 295字节

用途:二进制形式的极大文本数据

LONGTEXT

大小:0-4 294 967 295字节

用途:极大文本数据

CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。

char 和 varchar:

1.char(n) 若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。所以 char 类型存储的字符串末尾不能有空格,varchar 不限于此。

2.char(n) 固定长度,char(4) 不管是存入几个字符,都将占用 4 个字节,varchar 是存入的实际字符数 +1 个字节(n<=255)或2个字节(n>255),所以 varchar(4),存入 3 个字符将占用 4 个字节。

3.char 类型的字符串检索速度要比 varchar 类型的快。

varchar 和 text:

1.varchar 可指定 n,text 不能指定,内部存储 varchar 是存入的实际字符数 +1 个字节(n<=255)或 2 个字节(n>255),text 是实际字符数 +2 个字节。

2.text 类型不能有默认值。

3.varchar 可直接创建索引,text 创建索引要指定前多少个字符。varchar 查询速度快于 text, 在都创建索引的情况下,text 的索引似乎不起作用。

BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。

BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们区别在于可容纳存储范围不同。

有 4 种 TEXT 类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值