MySql数据类型分析(字符类型) Part4

一.字符类型包括:

char

varchar

text

二.字符类型详细介绍表

类型
说明 典型声明 范围 M值说明
char 定长字符串 gender char(1) char(M)
0=<M<=255
M代表可容纳的字符数,并非字节数
varchar 变长字符串 email varchar(20) varchar(M)
0<=M<=65535
约2万到6万个字符,受字符集影响
M代表可容纳的字符数,并非字节数
text 文本串 content text 约2万到6万个字符,受字符集影响 M代表可容纳的字符数,并非字节数
三.举例

1.创建学生表

create table stu

(

name char(8) not null default '',

waihao varchar(10) not null default ''

)charset utf8;

执行结果:


2.插入数据

insert into stu

(name,waihao)

values

('穆罕默德阿帕奇','小三')

结果:


由插入的name值可以看出M值代表的是字符。而不是字节。


四.char与varchar的区别

1.char(M) 是定长, 如果存入数据小于M个字符,实占M个字符。

2.varchar(M)是变长,如果存入的数据小于M个字符,假如输入N个字符(N<=M),则实战N个字符。

3.char 与varchar 实占空间分析表

类型 宽度 可存字符 实存字符(i<=M) 实占空间 利用率
char M M i M <=100%
varchar M M i i字符+(1-2)字节 <100%

由空间分析表可得:

varchar类型有一定的资源浪费,

以公交车 举例,

char类型好比 短途 市区 公交 ,每次只需投币1元,不论你做几站,都是定长的1元。

varchar类型好比市区到郊区的 长途公交,可根据乘车距离定站 收费,但是需要浪费 一个乘务员收费,需要占据一定的空间,

4.char类型如空间有剩余,则 以空格填充。

5.速度比较,定长的速度 比变长 高,

   变长的空间利用率比定长高。

五.text类型

主要存放比较大的内容时使用。

搜索比较慢,

不能用默认值,写了默认值也不起作用。



posted @ 2014-04-09 17:04  小张的学习之旅  阅读(171)  评论(0编辑  收藏  举报