char(n)和varchar2(n)区别 (转)

、varchar2(n):该数据类型用于定义可变长度的字符串,其中n用于指定字符串的长度,其最大值为32767个字节。当使用该数据类型定义变量时,必须指定长度。需要注意的是:当在pl/SQL中使用该数据类型操纵varchar2表列时,其最大长度不超过4000字节。Dbms_output.put_line输出字符串时,允许输出的最大长度为2000个字节。

2、 2、 char(n):用于定义固定长度的字符串。其中n用于指定字符串的长度,其最大值为32767字节。当使用该数据类型定义变量时,如果没有指定n则其默认为1,;当在pl/SQL块中使用该数据类型操作char表列时,其数值的长度不超过2000字节。

以下为在网上搜索资料:

区别:

1、char的长度是固定的,varchar2的长度是变化的。例如char(20)和varchar2(20),同样存储’abc’,对于char(20)存储字符串用3个字节,剩下17个字节用空格补上;但是varchar2(20)则实际占用3个字节,20只是最大长度,当存储字符串小于20个字节时,按实际字符串字节数进行存储。

2、CHAR的效率比VARCHAR2的效率稍高。

3、目前VARCHAR是VARCHAR2的同义词。工业标准的VARCHAR类型可以存储空字符串,但是oracle不这样做,尽管它保留以后这样做的权利。Oracle自己开发了一个数据类型VARCHAR2,这个类型不是一个标准的VARCHAR,它将在数据库中varchar列可以存储空字符串的特性改为存储NULL值。如果你想有向后兼容的能力,Oracle建议使用VARCHAR2而不是VARCHAR。

何时使用CHAR或VARCHAR2:

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

时间: 2024-10-14 09:31:57

char(n)和varchar2(n)区别 (转)的相关文章

char varchar varchar2 的区别 (转)

char varchar varchar2 的区别       http://blog.csdn.net/honglei_zh/article/details/7172538区别:1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc",对于CHAR (20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2 (20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储. 2.CHAR的效率比VARCH

TEXT、TINYTEXT、MEDIUMTEXT、LONGTEXT选择 和 char varchar varchar2 的区别

TEXT.TINYTEXT.MEDIUMTEXT.LONGTEXT选择: 储存不区分大小写的字符数据 TINYTEXT 最大长度是 255 (2^8 - 1) 个字符. TEXT 最大长度是 65535 (2^16 - 1) 个字符. MEDIUMTEXT 最大长度是 16777215 (2^24 - 1) 个字符. LONGTEXT 最大长度是 4294967295 (2^32 - 1) 个字符 char varchar varchar2 的区别: 区别: 1.CHAR的长度是固定的,而VAR

MySQL中char和varchar有啥区别?优缺点是啥?

在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定的长度,而varchar属于可变长的字符类型. char与varchar的区别 char (13)长度固定, 如'www.jb51.net' 存储需要空间 12个字符: varchar(13) 可变长 如'www.jb51.net' 需要存储空间 13字符:从上面可以看得出来char 长度是固定的,不管你存储的数据是多少他都会都固定的长度.而varchar则处可变长度但他要在总长

char、nvarchar和varchar区别

这3种字符串数据类型是我们使用最多的,我们在数据库设计时到底该怎么使用了?首先我们先来分析3个数据类型的说明: 1.char CHAR的长度是固定的,最长2000个字符. 2.varchar 和 varchar2 可以肯定的是oracle中目前是可以使用varchar数据类型的,但他们的区别我查了不少资料也没有找到一个准确的答案 最常见的说话是说oracle中的varchar只是varchar2的别名也就是同义词. 其次也有人认为varchar是最大长度为2000的可变字符串(和sql serv

ORACLE nvarchar2和varchar2的区别

ORACLE nvarchar2和varchar2的区别 1.NVARCHAR2中存储中文字时,一个中文字当一个字符来处理 NVARCHAR2(10)是可以存进去10个汉字的,如果用来存英文也只能存10个字符. 2.而VARCHAR2中一个中文字当两个字符来处理 VARCHAR2(10)的话,则只能存进5个汉字,英文则可以存10个 Oracle中nvarchar2和varchar2的共同点: 不定长存储,当存储信息长度小于指定的长度,那么就已实际存入的长度为准这一点不像varchar这种定长存储

sqlserver char nchar varchar nvarchar 的区别

数据库SQLserver的数据库存储类型(nchar.char .nvarchar.varchar)的说明及比较 1.char类型: 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节,CHAR存储定长数据很方便,CHAR字段上的索引效率极高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间.因为是固定长度,所以速度效率高. 2.varchar类型:      存储变长数据,如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符

数据库中,char 与 varchar2 的区别

区别1: char 是定长的字符串 varchar2 是变长的字符串 区别2: name char(10)   zhangsan__ 如果实际长度不足10,使用空格补齐   name varchar2(10) zhangsan 存储占用的字节和实际字节长度一致,都是8 备注: varchar2好处在于能够节省存储空间,char的好处是效率高 (性别可用char)

oracle之VARCHAR2(50 CHAR) 和VARCHAR2(50) 区别?

首先要明白的是:根据字符集不同,varchar2(50)这样在gbk可存25个汉字,utf8可存16个汉字 这里的50相当于50BYTE,是按字节计数,50CHAR是按字符计数. 对于多字节字符(如汉字),varchar2(50)仅能存储25个汉字,而varchar2(50char)能存储50个汉字. 原文地址:https://www.cnblogs.com/fpcbk/p/11938671.html

varchar和varchar2的区别

--varchar,varchar2 联系:1.varchar/varchar2用于存储可变长度的字符串比如varchar(20),存入字符串'abc',则数据库中该字段只占3个字节,而不是20个字节2.size 的最大值是 4000,而最小值是 1,其值表示字节数,比如varchar(20)表示最大可以存放20个字节的内容 区别:1.varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节:2.VARCHAR2把空串等同于