char(10)和VARCHAR(10)主要的区别是什么?

区别:
1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的,

如:

存储字符串“abc",

对于CHAR
(10),表示你存储的字符将占10个字节(包括7个空字符),

而同样的VARCHAR2
(10)则只占用3个字节的长度,10只是最大值,当你存储的字符小于10时,按实际长度存储。

何时该用CHAR,何时该用varchar2?
CHAR与VARCHAR2是一对矛盾的统一体,两者是互补的关系.
VARCHAR2比CHAR节省空间,在效率上比CHAR会稍微差一些,即要想获得效率,就必须牺牲一定的空间,这也就是我们在数据库设计上常说的‘以空间换效率’。
VARCHAR2
虽然比CHAR节省空间,但是如果一个VARCHAR2列经常被修改,而且每次被修改的数据的长度不同,这会引起‘行迁移’(Row
Migration)现象,而这造成多余的I/O,是数据库设计和调整中要尽力避免的,在这种情况下用CHAR代替VARCHAR2会更好一些。

时间: 2024-11-06 19:42:07

char(10)和VARCHAR(10)主要的区别是什么?的相关文章

MySql中varchar(10)和varchar(100)的区别==>>以及char的利弊

一般初学会认为,二者占用的空间是一样的.比如说我存储5个char,二者都是实际占用了5个char了[勘误:varchar在实际存储的时候会多一个byte用来存放长度].但是深入一下,设计数据库的时候,二者一样吗?答案是否定的[至少varchar类型需要在数据之前利用一个或者两个字节来存储数据的长度][二者在内存中的操作方式也是不同的,下面的例子中有体现].看下面的例子.如现在用户需要存储一个地址信息.根据评估,只要使用100个字符就可以了.但是有些数据库管理员会认为,反正Varchar数据类型是

CONVERT(varchar(10), getdate(), 120 )中数字参数用法

这是一个mssql数据库的函数,Convert函数的作用,是进行数据类型的转换.而您所问的这个convert(char(20),openDate,120)则是对日期字段,进行格式化转换成字符格式的函数.接下来,对您函数中的三个参数,分别进行说明:1.char(20),是要转换成的目标数据类型及长度,这里您还可以使用varchar(20),也可以使用varchar(10),如果使用20,则转换后的字符串可以是20的长度,如果是10,则只取前10 位了.后面的省掉.2.openDate,是一个日期字

sql 时间转换格式 convert(varchar(10),字段名,转换格式)

convert(varchar(10),字段名,转换格式) CONVERT(nvarchar(10),count_time,121)CONVERT为日期转换函数,一般就是在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候才用到的函数的3个参数,第1个参数为,转换后的大小,第2个为转换日期的字段或函数,第3个为转换的格式. 具体如下:0 | 0 or 100 | mon dd yyyy hh:miAM(或P

转 sql 时间转换格式 convert(varchar(10),字段名,转换格式)

convert(varchar(10),字段名,转换格式) CONVERT(nvarchar(10),count_time,121)CONVERT为日期转换函数,一般就是在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候才用到的函数的3个参数,第1个参数为,转换后的大小,第2个为转换日期的字段或函数,第3个为转换的格式. 具体如下:0 | 0 or 100 | mon dd yyyy hh:miAM(或P

SELECT CAST(GETDATE() AS VARCHAR(10)) 显示不同格式的原因

开发人员测试时,发现生产服务器与测试服务器执行SELECT CAST(GETDATE() AS VARCHAR(10))语句显示的格式不一样.如下所示 Server A Server B 其实出现这个问题,是因为登录名(login)的语言不一致所致,如下所示 可以使用下面SQL语句来检查对应的默认语言 SELECT @@LANGUAGE   或   SELECT loginname,name, language FROM sys.syslogins 上面出现不一致是因为同一登录名的默认语言在服务

sql server char nchar nvarchar varchar之間的區別

char存储固定长度的字符串,最大长度为8000个字节. varchar存储可变长度的字符串,最大长度为8000个字节. nchar存储固定长度的Unicode字符串,最大长度为4000个字符. nvarchar存储可变唱的的Unicode字符串,最大长度为4000值字符. 注意的是: 在分配存储空间上会有不同,如varchar(10)分配10个字节 nvarchar(10)则可以分配20个字节.也就是说nvarchar(10)要不varchar(10)存储较多的信息.因为一个为字节存储,一个为

【149】ArcGIS Desktop 10.0 & Engine 10.0 安装及破解

目录: ArcGIS Desktop 10.0 安装 ArcGIS Desktop 10.0 破解 ArcGIS Engine 10.0 安装 ArcGIS Engine 10.0 破解 ArcGIS Desktop 10.0 安装 首先安装ArcGIS License,一路安装下去:然后安装ArcGIS Desktop,也是一路安装下去,最后关掉许可. ArcGIS Desktop 10.0 破解 1. 选择ArcGIS Administrator. 2. 如下面红色方框的选择(若是无法修改l

分支-10. 计算个人所得税(10)

#include<iostream>#include<iomanip>using namespace std;int main(){    float x;    cin>>x;    cout<<setiosflags(ios::fixed)<<setprecision(2);    if(x<=1600)        cout<<0.00<<endl;    else if(x<=2500)      

发布 Victor 串口控件, 版本 1.5.0.6 VCL/FMX for C++ Builder 10.2 Tokyo, 10.1 Berlin, 10.0 Seattle, XE8, XE7, XE6 包括源码、演示程序

本次发布的 Victor 串口控件 1.5.0.6 包括 VCL 和 FMX (Firemonkey), 支持 C++ Builder 10.2 Tokyo, 10.1 Berlin, 10.0 Seattle, XE8, XE7, XE6 - Win32/Win64 支持其他版本 C++ Builder 的控件的发布和更新进度请关注网站主页的内容. Victor 串口控件 1.5.0.6 VCL/FMX 更新内容: ? 增加支持 FMX (Firemonkey) Win32/Win64,控件包