char和varchar区别
?具考证:在字符长度一定时CHAR的性能比VARCHAR好,而在长度不确定时,CHAR类型的字段在使用时性能略差。这个在sqlServer数据库下面能够体现,并且这个字段是经常使用的。
区别: 1.CHAR的长度是固 定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc",对于CHAR (20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2 (20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。由于char是以固定长度的,所以它的速度会比 varchar快得多!但程序处理起来要麻烦一点,要用trim之类的函数把两边的空格去掉! 2.CHAR的效率比VARCHAR2的效率稍高。 3.目前VARCHAR是VARCHAR2的同义词。工业标准的VARCHAR类型可以存储空字符串,但是oracle不这样做,尽管它保留以后这样做的权利。Oracle自己开发了一个数据类型VARCHAR2,这个类型不是一个标准的VARCHAR,它将在数据库中varchar列可以存储空字符串的特性改为存储NULL值。如果你想有向后兼容的能力,Oracle建议使用VARCHAR2而不是VARCHAR。 何时该用CHAR,何时该用varchar2? CHAR字段上的索引效率级高,如果建索引,用char VARCHAR类型的实际长度是它的值的实际长度+1。为什么“+1”呢?这一个字节用于保存实际使用了多大的长度 text???? 存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。
? oracle中 varchar和varchar2的区别在与后者把所有字符都占两字节,前者只对汉字和全角等字符占两字节。 ? ? 选择char还是选择varchar的建议 ??? 1.适宜于char的情况: ???? a. 列中的各行数据长度基本一致,长度变化不超过50字节; ???? b. 数据变更频繁,数据检索的需求较少。 ???? c. 列的长度不会变化,修改char类型列的宽度的代价比较大。 ???? d. 列中不会出现大量的NULL值。 ???? e. 列上不需要建立过多的索引,过多的索引对char列的数据变更影响较大。 ??? 2.适宜于varchar的情况; ???? a. 列中的各行数据的长度差异比较大。 ???? b. 列中数据的更新非常少,但查询非常频繁。 ???? c. 列中经常没有数据,为NULL值或为空值 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |