char与varchar区别

  • char (13)长度固定, 如'1234567890' 存储需要空间 10个字符;
  • varchar(13) 可变长 如'1234567890' 需要存储空间 11字符;

从上面可以看得出来char 长度是固定的,不管你存储的数据是多少他都会都固定的长度。而varchar则处可变长度但他要在总长度上加1字符,这个用来存储位置。所以实际应用中用户可以根据自己的数据类型来做。
再看看char,与varchar在速度上的区别:由于某种原因char 固定长度,所以在处理速度上要比varchar快速很多,但是对费存储空间,所以对存储不大,但在速度上有要求的可以使用char类型,反之可以用varchar类型来实例。

注明:
在用char字符类型时内容后面有空间时必须作相关处理,要不就会把空格自动删除。
建议:
myisam 存储引擎 建议使用固定长度,数据列代替可变长度的数据列。
memory存储引擎 目前都使用固定数据行存储,因此无论使用char varchar列都没关系,
innodb 存储引擎 建意使用varchar 类型

varchar(50)能存多少?

mysql 4.0版本以下varchar(50), 指的是50字节,如果存放utf8汉字时,只能存放16个(每个汉字3字节)。

mysql 5.0版本以上,varchar(50), 指的是50字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放50个。

示例(mysql5.5):

CREATE TABLE `test` (
`id` int(11) NOT NULL,
`name` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入测试数据(1和2刚好50,3和4超过50被截取):

INSERT INTO test VALUES(1,'');
INSERT INTO test VALUES(2,'我是中国人我是中国人我是中国人我是中国人我是中国人我是中国人我是中国人我是中国人我是中国人我是中国人'); INSERT INTO test VALUES(3,'');
INSERT INTO test VALUES(4,'我是中国人我是中国人我是中国人我是中国人我是中国人我是中国人我是中国人我是中国人我是中国人我是中国人12');

结果:

SELECT *,LENGTH(NAME) AS namesize FROM test;

mysql没有varchar2类型。

最新文章

  1. ASP.NET MVC 5 - 开始MVC5之旅
  2. C/C++的开发环境安装
  3. [已解决] git 重命名文件夹
  4. JavaScript的学习5
  5. 学生各门课程成绩统计SQL语句大全
  6. Ink – 帮助你快速创建响应式邮件(Email)的框架
  7. UVALive 7274 Canvas Painting (优先队列)
  8. 查看 MySQL 数据库中每个表占用的空间大小
  9. #ifndef #define #endif 防止头文件被重复引用
  10. CCBValue
  11. Qt 快捷键
  12. 使用电脑ODBC测试数据库连接方法
  13. JS全局变量与局部变量
  14. [转] MySql 数据类型
  15. 使用Pandas_UDF快速改造Pandas代码
  16. EasyUI Dialog 对话框默认不弹出和关闭清空对话框内容
  17. python中安装pandas
  18. java第六天
  19. 平衡二叉树之AVL树
  20. LIS最长上升子序列模板

热门文章

  1. python-安装 pip
  2. 又一次发现Oracle太美之awr相关脚本简介
  3. Java基础教程:反射基础
  4. web前端框架之自定义form表单验证
  5. 第一篇 先用socket模拟web服务器
  6. 20165101 学习基础和C语言基础调查
  7. RabbitMQ事务确认机制(生产者)
  8. 图解MFC基本框架(深入消息映射机制)
  9. jquery获取点击标签内的子标签内容和值实例
  10. GW知识点