MySQL数据类型

熟悉掌握mysql数据类型,开发过程选择最合适的数据类型,对数据库优化,节省内存等有极大的作用。


整型:

这里写图片描述

例如存储年龄的时候可以使用字节为1的TINYINT而不是长度为4个字节的INT更不是长度为8个字节的BIGINT,这样当记录条数很多很多的时候,TINYINT的优势就可以体现出来,节省了服务器很多内存。


浮点型:

这里写图片描述

若是FLOAT(7,2),最大的存储浮点数为:99999.99


日期型:

这里写图片描述

范围与格式(除了TIMESTAMP外,其他的格式都与其给出范围的格式相同):
YEAR 1901/2155
TIME -838:59:59/838:59:59
DATE 1000-01-01/9999-12-31
DATETIME 1000-01-01 00:00:00/9999-12-31 23:59:59
TIMESTAMP 1970-01-01 00:00:00/2037 年某时 格式:时间戳(时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数。)


字符型:

CHAR(n) 固定长度,最多255个字符
VARCHAR(n) 可变长度,最多65535个字符
TINYTEXT 可变长度,最多255个字符
TEXT 可变长度,最多65535个字符
MEDIUMTEXT 可变长度,最多2的24次方-1个字符
LONGTEXT 可变长度,最多2的32次方-1个字符

  1. CHAR(n)和VARCHAR(n)中括号中n代表字符的个数,并不代表字节个数,所以当使用了中文的时候(UTF8)意味着可以插入m个中文,但是实际会占用m*3个字节。
  2. 同时CHAR和VARCHAR最大的区别就在于CHAR不管实际value都会占用n个字符的空间,而VARCHAR只会占用实际字符应该占用的空间+1,并且实际空间+1<=n。
  3. 超过CHAR和VARCHAR的n设置后,字符串会被截断。
  4. CHAR的上限为255字节,VARCHAR的上限65535字节,TEXT的上限为65535。
  5. CHAR在存储的时候会截断尾部的空格,VARCHAR和TEXT不会。
  6. VARCHAR会使用1-3个字节来存储长度,TEXT不会。
  7. 字符是指计算机中使用的字母、数字、字和符号,包括:1、2、3、A、B、C、~!·#¥%……—*()——+等等。在 ASCII 编码中,一个英文字母字符存储需要1个字节。在 GB 2312 编码或 GBK 编码中,一个汉字字符存储需要2个字节。在UTF-8编码中,一个英文字母字符存储需要1个字节,一个汉字字符储存需要3到4个字节。在UTF-16编码中,一个英文字母字符或一个汉字字符存储都需要2个字节(Unicode扩展区的一些汉字存储需要4个字节)。在UTF-32编码中,世界上任何字符的存储都需要4个字节。

其它类型:

  1. ENUM(“member1″, “member2″, … “member65535″),1或2个字节。enum数据类型就是定义了一种枚举,最多包含65535个不同的成员。当定义了一个ENUM的列时,该列的值限制为列定义中声明的值。如果列声明包含NULL属性,则NULL将被认为是一个有效值,并且是默认值。如果声明了NOT NULL,则列表的第一个成员是默认值。
  2. SET(“member”, “member2″, … “member64″),1,2,3,4或8个字节。SET数据类型为指定一组预定义值中的零个或多个值提供了一种方法,这组值最多包括64个成员。值的选择限制为列定义中声明的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值