文档章节

MySQL 字符类型

明月知心
 明月知心
发布于 2017/02/20 01:13
字数 497
阅读 9
收藏 0

字符类型 char 和 varchar

char(M)       定长  M代表可容纳字符长度 ,宽度固定

varchar(M)  变长 M代表可容纳字符长度,宽度可变 0 < M <最大支持65535 字节(ASCII码 ,UTF-8编码为22000)

注意:「字符」「字节」长度不同

varchar存储规则:

4.0版本以下:varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 
5.0版本以上:varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节 

类型 宽度 单位 实存字符(i<=m) 占用空间 利用率
char M 字符 I <=255 M I/M = 100%
varchar M 字符 I <=65535 I字符+(1-2)字节 I/(I+(1-2)) <= 100%

不同编码的字符

编码 英文字母 中文汉字
ASCII码 1字节 2字节
UTF-8编码 1字节 3字节
Unicode编码 1字节 2字节

定长 char 和 变长 varchar 的区别:

  1. 储存速度上,定长 char > 变长 varchar
  2. varchar 多的 1-2 个字节用于记录实际持长度
  3. char  如果存放的宽度不足M 个字符,内部用空格补齐,取的时候再去掉空格
  4. 如果存放值「末尾」有空格,char 会自动去掉 , varchar 则会记录保存
--创建一张学生表
create table student(
name char(8) not null default '',         --char 类型
waihao varchar(10) not null default ''    --vhar 类型
);

--添加数据
insert into student
(name ,waihao)
values
('李四  ','钢炮  ' );                     --注意值故意往值里面加了空格,以便区分

--添加 ! 便于更好的查看数据
select concat(name,'!'),concat(waihao,'!') from student;

如上图所示, varchar 会保存空格,char 则会自动去掉

char 和 varchar 的使用原则:

  1. 空间利用效率
    如:四字成语: --> char
           微博内容,qq空间心情: --> varchar
  2. 速度
    如: 用户名密码: --> char

text :

搜索速度较慢,没有默认值 default.

© 著作权归作者所有

明月知心
粉丝 7
博文 158
码字总数 71882
作品 0
武汉
程序员
私信 提问
细说 Java 中的字符和字符串( 二 )

原文出处:BuquTianya 我们上次在《细说Java中的字符和字符串(一)》说了Java中char和中文字符之间的关系,说明了char能不能存储一个中文字符,以及如何判断Java的字符串是否包含中文字符。...

BuquTianya
2018/06/30
0
0
MySQL数据表类型 数据类型

MySQL数据表类型 数据类型 发表于: 2008-11-27,修改于: 2008-12-02 22:12 已浏览1968次,有评论0条 推荐 投诉

九爷
2011/05/30
98
2
MySQL修改字符集

mysql将表的字符编码转换成utf-8 复制代码代码如下: alter table tb_anniversary convert to character set utf8; 修改数据库mysql字符编码为UTF8 步骤1:查看当前的字符编码方法 复制代码代...

蓝叶子Sheep
2017/11/23
0
0
数据库:深入浅出mysql学习笔记【超级详细(一)】

版权声明:合作交流邮箱:keeprealself@qq.com https://blog.csdn.net/weixin_42842069/article/details/86523077 1.安装mysql 1.先查看有没有安装过mysql 2.安装后可以执行删除 3.使用yum安...

拨云见日。
01/17
0
0
MySQL数据类型选择优化

选择正确的数据类型对于获得高性能至关重要,数据类型选择可以有以下原则: 1,更小的通常更好;更小的数据类型通常更快,因为它们占用更少的磁盘,内存,CPU缓存,处理时需要的 CPU周期也少...

克温s
2016/03/17
106
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 年迈渔夫遭黑帮袭抢

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享Elvis Presley的单曲《White Christmas》: 《White Christmas》- Elvis Presley 手机党少年们想听歌,请使劲...

小小编辑
今天
1K
20
CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
昨天
5
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
昨天
9
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
昨天
17
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部