SQL数据类型详解

来源:互联网 发布:js实现加载等待效果 编辑:程序博客网 时间:2024/05/15 00:54

1. 整数类型

整数类型有一下几种:TINYINT(8), SMALLINT(16), MEDIUMINT(24), INT(32), BIGINT(64)

2. 实数类型

实数是带小数的数字,MySQL既支持精确类型,也支持不精确类型 FLOAT使用4个字节,DOUBLE使用8个字节。

3. 字符串类型

VARCHAR类型 :用于存储可变长字符串,是最常见的字符串数据类型,比定长类型更节省空间,它仅适用必要的空间(越短的字符使用越少的空间)。VARCHAR需要使用1或2个额外字节记录字符串的长度,如果列的最大长度小于或等于255字节,则只需要1个字节表示。否则使用2个字节。

CHAR类型: 是定长的,MySQL总是根据定义的字符串长度分配足够的空间。存储CHAR值时,MySQL会删除所有的末尾空格。

CHAR适合存储很短的字符串,或者所有值都接近同一个长度。

BOLB和TEXT都是为存储很大的数据而设计的字符串数据类型,分别采用二进制和字符形式存储。BLOB是二进制数据,没有排序规则或字符集,而TEXT类型有字符集和排序规则。

4. 日期和时间类型

DATETIME类型:保存大范围的值,从1001年到9999年,精度为秒。把日期和时间封装到格式为YYYYMMDDHHMMSS的整数中,使用8个字节的存储空间。

TIMESTAMP类型:使用4个字节的存储空间,表示从1970到2038年,如果插入时没有指定第一个TIMESTAMP列的值,MySQL则设置这个列的值为当前时间。在插入一行记录时,MySQL默认也会更新第一个TIMESTAMP列的值,且TIMESTAMP列默认为NOT NULL。

除了特殊行为之外,通常应该尽量使用TIMESTAMP,因为它比DATETIME空间效率高。

5. 位数据类型

BIT(1)定义一个包含单个位的字段,BIT(2)存储2个位。MySQL把BIT当作字符串类型,而不是数字类型。在数字上下文的场景中检索时,结果将是位字符串转换成的数字。

0 0