27岁,山西运城人,职业电商经理人,前端开发工作者,从事过网站建设、网络推广、SEO、SEM、信息流推广、二类电商、网络运维、软件开发,等相关电商工作,经验较为丰富,小米技术社区致力于为广大从事Web前端开发的人员提供一些力所能及的引导和帮助 ...[更多]
E-mail:mzze@163.com
Q Q:32362389
W X:xiaomi168527
27岁,山西运城人,职业电商经理人,网络工程师兼运维,从事过运营商网络建设,企业网络建设、优化。数据中心网络维护等通过,经验丰富,座右铭:当自己休息的时候,别忘了别人还在奔跑。 ...[更多]
大于花一样的年龄,河南郑州是我家,2010年在北京接触团购网,2011年进入天猫淘宝一待就是四年,如今已经将设计走向国际化(ps:误打误撞开始进入阿里巴巴国际站的设计,嘿嘿)五年电商设计,丰富经验,从事过天猫淘宝阿里各项设计,店铺运营,产品拍摄;我将我的经历与您分享是我的快乐!座右铭:越努力越幸运! ...[更多]
E-mail:97157726@qq.com
Q Q:97157726
知识点:
(1)MySQL中的数据类型是强类型
(2)MySQL 中定义数据字段的类型对你数据库的优化是非常重要的。
(3)数据类型选择的范围尽可能小,范围越小占用资源越少
(4)MySQL 支持多种类型,大致可以分为三类:
1.数值(整数型 浮点数 定点数)
2.日期/时间
3.字符串(字符)类型。
数值-整数类型:BIT、BOOL、TINY INT、SMALL INT、MEDIUM INT、 INT、 BIG INT
数值-浮点数类型:FLOAT、DOUBLE
数值-定点数型:DECIMAL
字符串类型:CHAR、VARCHAR、TINY TEXT、TEXT、MEDIUM TEXT、LONGTEXT、TINY BLOB、BLOB、MEDIUM BLOB、LONG BLOB
日期类型:Date、DateTime、TimeStamp、Time、Year
还有一些其他数据类型:BINARY、VARBINARY、ENUM、SET、Geometry、Point、MultiPoint、LineString、MultiLineString、Polygon、GeometryCollection等
本篇文章主要介绍字符串类型的数据:
(1)在mysql中,字符或字符串要用单引号包裹
(2)char(n) 和 varchar(n) 中括号中 n 代表字符的个数,char(4)存放4个字符,中英文一样
(3)varchar(L)实现变长机制,需要额外的空间来记录数据真实的长度。
类型 | 大小 | 用途 |
---|---|---|
char | 0-255 字节 | 定长字符串 |
varchar | 0-65535 字节 | 变长字符串 |
tinytext | 0-255 字节 2的8次方-1 | 短文本字符串 |
text | 0-65 535 字节 2的16次方-1 | 长文本数据 |
mediumtext | 0-16 777 215 字节 2的24次方-1 | 中等长度文本数据 |
longtext | 0-4 294 967 295 字节 2的32次方-1 | 极大文本数据 |
tinyblob | 0-255 字节 | 不超过 255 个字符的二进制字符串 |
blob | 0-65 535 字节 | 二进制形式的长文本数据 |
mediumblob | 0-16 777 215 字节 | 二进制形式的中等长度文本数据 |
longblob | 0-4 294 967 295 字节 | 二进制形式的极大文本数据 |
注意:
(1)char是定长,var是变长;char最大值是255,varchar最大值是65535,具体存多少字要看字符编码
(2)VARCHAR的L的理论长度是65535字节,但事实上达不到这么多字符,因为有的字符是多字节,所以L达不到65535。
如,在UTF8编码下,一个字符占3个字节,最大字符只有21845,而GBK下因为一个只占2个字节,所以可以达到32767个
(3)char(n) 固定长度,char(4)不管是存入几个字符,都将占用4个字节,varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),
所以varchar(4),存入3个字符将占用4个字节。
(4)char类型的字符串检索速度要比varchar类型的快。缺点是浪费存储空间。char的平均占用空间多于varchar
mysaim存储引擎:建议使用char
innodb存储引擎:建议使用varchar,因为innodb内部的行存储格式没有区分长度和可变长度。
(5)结尾是txt的系列类型,在表中存储的是地址,占用大小大约10个字节
(6)一个表中的的所有字段的总长度也不能超过65535个字节。
(7)varchar和text的区别:
1.varchar可指定n,text不能指定,内部存储varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),text是实际字符数+2个字
节。
2.text类型不能有默认值。
3.varchar可直接创建索引,text创建索引要指定前多少个字符。
4.varchar查询速度快于text,在都创建索引的情况下,text的索引似乎不起作用。
本站内容均为小米原创,转载请注明出处:小米技术社区>> mysql数据类型之字符串型,char和varchar;text以及longtext等