Mysql char(10) 与 varchar(10)的区别
DROP TABLE test_string; CREATE TABLE test_string (col_char CHAR(10),
col_varchar VARCHAR(10)); INSERT INTO `test_string` VALUES ('mysql', 'mysql');
在创建数据库表时,为了给一个string类型的数据定义一个数据库中的数据类型,一般参考的都是char或varchar,但这两者的选择有时候让人很纠结,现总结一下两者的区别:
(1)CHAR的长度是固定的,而VARCHAR的长度是可以变化的。
比如,存储字符串“mysql",对于CHAR(10),表示你存储的字符串将占10个字节(包括5个空字符)。
而同样的VARCHAR (10)则只占用5个字节的长度,10只是其最大值限制,当你存储的字符小于10时,按实际长度存储。
(2)CHAR的效率比VARCHAR的效率稍高。
取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的。
尽管如此,char的存取数度还是要比varchar要快得多,因为其长度固定,方便程序的存储与查找;
但是,char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率,而varchar是以空间效率为首位的。
(3)CHAR(10)若输入数据的字符数小于10,则系统自动在其后添加空格来填满设定好的空间。若输入的数据过长,将会截掉其超出部分。VARCHAR(10)数据类型的存储长度为实际数值长度。
(4)char的存储方式是,对英文字符(ASCII)占用1个字节,对一个汉字占用两个字节;而varchar的存储方式是,对每个英文字符占用2个字节,汉字也占用2个字节,两者的存储数据都非unicode的字符数据。
Good Good Study, Day Day Up.
顺序 选择 循环 总结
Mysql char(10) 与 varchar(10)的区别的更多相关文章
- 关于char(M)和varchar(N)的区别
1.int(10)的10表示显示的数据的长度,不是存储数据的大小:chart(10)和varchar(10)的10表示存储数据的大小,即表示存储多少个字符. int(10) 10位的数据长度 9999 ...
- MySql中varchar(10)和varchar(100)的区别
背景 许多使用MySQL的同学都会使用到varchar这个数据类型.初学者刚开始学习varchar时,一定记得varchar是个变长的类型这个知识点,所以很多初学者在设计表时,就会把varchar(X ...
- char(10)、varchar(10)、nchar(10)、nvarchar(10)的区别
CHAR CHAR是定长的,当输入的字符小于10时,会在后面补空值,如果长度大于10,则会截取超出的字符 CHAR字段上的索引效率级高 VARCHAR 存储边长数据,但存储效率没有CHAR高 从空间上 ...
- char(10)和VARCHAR(10)主要的区别是什么?
区别: 1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 如: 存储字符串“abc", 对于CHAR (10),表示你存储的字符将占10个字节(包括7个空字符), 而同样的 ...
- 数据库建表char(10)和VARCHAR(10)
1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc",对于CHAR (10),表示你存储的字符将占10个字节(包括7个空字符),而同样的VARCHA ...
- mysql中字符串类型char(n)和varchar(n)的区别
n的含义 根据网络上找到的结果(不能保证准确),在5.0.3以后版本中,n均代表字符数,而不是字节数:我用来测试的版本是5.7.20,该版本中,n表示字符数. 验证过程如下 建表 CREATE TAB ...
- MySQL中数据类型(char(n)、varchar(n)、nchar(n)、nvarchar(n)的区别)(转)
一.第一种 char(n)和varchar(n)的区别: 在这里我们可以清楚的看到他们表面的区别就是前面是否有var,在这里解释一下var是什么意思,var代表“可变的”的意思 下面看个例子: )// ...
- char varchar varchar2 的区别 (转)
char varchar varchar2 的区别 http://blog.csdn.net/honglei_zh/article/details/7172538区别:1.CHAR的长度是 ...
- char、varchar、varchar2区别
char varchar varchar2 的区别 区别:1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc",对于CHAR (20),表示你存储的 ...
随机推荐
- rabbitmq 实现多个消费队列
1.将消费程序复制重新生成一个. 2.channel.BasicQos(0, 1, false); 空闲的先消费
- EntityFramework优化:SQL语句日志
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Te ...
- Vue新手入门教程
谈谈我对Vue的理解 vue就是前端上的Java,前端上的C#.有个前端的虚拟DOM引擎,设计理念和Java,C#类似.我们只需要告诉DOM应该显示什么,而不用去操作DOM元素. 如何引用? 下面是一 ...
- 解决eclipse打开文件乱码
解决办法 需要设置的几处地方为: Window->Preferences->General ->Content Type->Text->JSP 最下面设置为UTF-8 W ...
- 英语NanyangJade南阳玉NanyangJade独山玉
南阳玉NanyangJade又叫做独山玉,独山玉,因产于河南南阳的独山而得名,亦称“南阳玉”. 独山玉是中国四大名玉之一,有南阳翡翠之称,独山玉是一种黝帘石化斜长岩,由多种矿物组成,属多色玉器. 据文 ...
- 去除数组空格 php
public function trimArray($params){ if (!is_array($params)) return trim($params); return array_map([ ...
- 201871010102-常龙龙《面向对象程序设计(java)》第七周学习总结
二.博文正文开头格式: 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/ ...
- SysML——CSE 599W: Systems for ML
CSE 599W: Systems for ML Assignments Materials Projects Schedule Schedule The schedule is tentative ...
- Linux学习笔记-第3天 - 勤能补拙
学一门技术,基础一定要打牢,多练习是关键,还要尽可能理解其背后的知识.并时刻提醒自己,求知若饥,虚心若愚.
- ESP8266 LUA脚本语言开发: 准备工作-为方便学习(统一使用本人编译的固件)
前言 注:为了咱后期统一起来,所以统一使用我编译的LUA固件 一,固件打开了SmartConfig / AirKiss 配网功能 二,打开了SSL 三,其它模块化程序 刷空固件 一,为了保证固件是干净 ...