char和varchar的区别 char和varchar区别

char\u548cvarchar\u7684\u533a\u522b

\u533a\u522b\uff1a
1\uff0eCHAR\u7684\u957f\u5ea6\u662f\u56fa\u5b9a\u7684\uff0c\u800cVARCHAR2\u7684\u957f\u5ea6\u662f\u53ef\u4ee5\u53d8\u5316\u7684\uff0c \u6bd4\u5982\uff0c\u5b58\u50a8\u5b57\u7b26\u4e32\u201cabc"\uff0c\u5bf9\u4e8eCHAR (10)\uff0c\u8868\u793a\u4f60\u5b58\u50a8\u7684\u5b57\u7b26\u5c06\u536010\u4e2a\u5b57\u8282(\u5305\u62ec7\u4e2a\u7a7a\u5b57\u7b26)\uff0c\u800c\u540c\u6837\u7684VARCHAR2 (10)\u5219\u53ea\u5360\u75283\u4e2a\u5b57\u8282\u7684\u957f\u5ea6\uff0c10\u53ea\u662f\u6700\u5927\u503c\uff0c\u5f53\u4f60\u5b58\u50a8\u7684\u5b57\u7b26\u5c0f\u4e8e10\u65f6\uff0c\u6309\u5b9e\u9645\u957f\u5ea6\u5b58\u50a8\u3002
2\uff0eCHAR\u7684\u6548\u7387\u6bd4VARCHAR2\u7684\u6548\u7387\u7a0d\u9ad8\u3002
3\uff0e\u76ee\u524dVARCHAR\u662fVARCHAR2\u7684\u540c\u4e49\u8bcd\u3002\u5de5\u4e1a\u6807\u51c6\u7684VARCHAR\u7c7b\u578b\u53ef\u4ee5\u5b58\u50a8\u7a7a\u5b57\u7b26\u4e32\uff0c\u4f46\u662foracle\u4e0d\u8fd9\u6837\u505a\uff0c\u5c3d\u7ba1\u5b83\u4fdd\u7559\u4ee5\u540e\u8fd9\u6837\u505a\u7684\u6743\u5229\u3002Oracle\u81ea\u5df1\u5f00\u53d1\u4e86\u4e00\u4e2a\u6570\u636e\u7c7b\u578bVARCHAR2\uff0c\u8fd9\u4e2a\u7c7b\u578b\u4e0d\u662f\u4e00\u4e2a\u6807\u51c6\u7684VARCHAR\uff0c\u5b83\u5c06\u5728\u6570\u636e\u5e93\u4e2dvarchar\u5217\u53ef\u4ee5\u5b58\u50a8\u7a7a\u5b57\u7b26\u4e32\u7684\u7279\u6027\u6539\u4e3a\u5b58\u50a8NULL\u503c\u3002\u5982\u679c\u4f60\u60f3\u6709\u5411\u540e\u517c\u5bb9\u7684\u80fd\u529b\uff0cOracle\u5efa\u8bae\u4f7f\u7528VARCHAR2\u800c\u4e0d\u662fVARCHAR\u3002
\u4f55\u65f6\u8be5\u7528CHAR\uff0c\u4f55\u65f6\u8be5\u7528varchar2\uff1f
CHAR\u4e0eVARCHAR2\u662f\u4e00\u5bf9\u77db\u76fe\u7684\u7edf\u4e00\u4f53\uff0c\u4e24\u8005\u662f\u4e92\u8865\u7684\u5173\u7cfb.
VARCHAR2\u6bd4CHAR\u8282\u7701\u7a7a\u95f4\uff0c\u5728\u6548\u7387\u4e0a\u6bd4CHAR\u4f1a\u7a0d\u5fae\u5dee\u4e00\u4e9b\uff0c\u5373\u8981\u60f3\u83b7\u5f97\u6548\u7387\uff0c\u5c31\u5fc5\u987b\u727a\u7272\u4e00\u5b9a\u7684\u7a7a\u95f4\uff0c\u8fd9\u4e5f\u5c31\u662f\u6211\u4eec\u5728\u6570\u636e\u5e93\u8bbe\u8ba1\u4e0a\u5e38\u8bf4\u7684\u2018\u4ee5\u7a7a\u95f4\u6362\u6548\u7387\u2019\u3002
VARCHAR2\u867d\u7136\u6bd4CHAR\u8282\u7701\u7a7a\u95f4\uff0c\u4f46\u662f\u5982\u679c\u4e00\u4e2aVARCHAR2\u5217\u7ecf\u5e38\u88ab\u4fee\u6539\uff0c\u800c\u4e14\u6bcf\u6b21\u88ab\u4fee\u6539\u7684\u6570\u636e\u7684\u957f\u5ea6\u4e0d\u540c\uff0c\u8fd9\u4f1a\u5f15\u8d77\u2018\u884c\u8fc1\u79fb\u2019(Row Migration)\u73b0\u8c61\uff0c\u800c\u8fd9\u9020\u6210\u591a\u4f59\u7684I/O\uff0c\u662f\u6570\u636e\u5e93\u8bbe\u8ba1\u548c\u8c03\u6574\u4e2d\u8981\u5c3d\u529b\u907f\u514d\u7684\uff0c\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\u7528CHAR\u4ee3\u66ffVARCHAR2\u4f1a\u66f4\u597d\u4e00\u4e9b\u3002

1\u3001\u5b57\u7b26\u7c7b\u578b\u957f\u5ea6\u4e0d\u540c
char\u7c7b\u578b\u7684\u957f\u5ea6\u662f\u56fa\u5b9a\u7684\uff0cvarchar\u7684\u957f\u5ea6\u662f\u53ef\u53d8\u7684\u3002
\u6bd4\u5982\uff1a\u4f7f\u7528char(10)\uff0c\u8868\u793a\u5b58\u50a8\u7684\u5b57\u7b26\u5c06\u536010\u4e2a\u5b57\u8282\uff08\u5305\u62ec7\u4e2a\u7a7a\u5b57\u7b26\uff09\uff1b\u4f7f\u7528varchar2(10),\u5219\u8868\u793a\u53ea\u53603\u4e2a\u5b57\u8282\uff0c10\u662f\u6700\u5927\u503c\uff0c\u5f53\u5b58\u50a8\u7684\u5b57\u7b26\u5c0f\u4e8e10\u65f6\uff0c\u6309\u7167\u5b9e\u9645\u7684\u957f\u5ea6\u5b58\u50a8\u3002
2\u3001\u6548\u7387\u4e0d\u540c
char\u7c7b\u578b\u7684\u6548\u7387\u6bd4varchar\u7684\u6548\u7387\u7a0d\u9ad8\u3002
3\u3001\u7a7a\u95f4\u5360\u7528\u4e0d\u540c
varchar2\u6bd4char\u8282\u7701\u7a7a\u95f4\uff0c\u4f46\u662f\u5728\u6548\u7387\u4e0a\u6bd4char\u7a0d\u5dee\u4e9b\u3002\u65e2\u8981\u83b7\u5f97\u6548\u7387\u5373\u5fc5\u987b\u727a\u7272\u4e00\u70b9\u7a7a\u95f4\uff0c\u8fd9\u5c31\u662f\u8bbe\u8ba1\u4e0a\u7684"\u4ee5\u7a7a\u95f4\u6362\u65f6\u95f4"\u3002

\u6269\u5c55\u8d44\u6599\uff1a
char\u7c7b\u578b\u53601\u5b57\u8282\uff0c\u5c31\u662f8\u4f4d\uff0c\u6240\u80fd\u5b58\u50a8\u7684\u6b63\u6574\u6570\u662f 0111 1111\uff0c\u5373127\u3002\u5982\u679c\u5c06 int \u578b\u7684\u6574\u6570i= 128 \u8d4b\u4e88ch\uff0c\u4f1a\u4ea7\u751f\u6ea2\u51fa\u3002
\u56e0128\u662f int \u578b\uff0c\u5360 4 \u5b57\u8282\uff0c\u4e8c\u8fdb\u5236\u4ee3\u7801\u4e3a 0000 0000 0000 0000 0000 0000 1000 0000.\u3002\u82e5\u5c06\u5b83\u8d4b\u7ed9\u4e00\u4e2a\u53ea\u67098\u4f4d\u7684char \u7c7b\u578b\u53d8\u91cf\uff0c\u53ea\u80fd\u5c06\u4f4e8\u4f4d\u76841000 0000 \u653e\u8fdb\u53bb\uff0c\u5176\u4ed6\u7684\u90fd\u4f1a\u88ab\u5220\u6389\u3002
\u6574\u6570\u5728\u8ba1\u7b97\u673a\u4e2d\u90fd\u662f\u4ee5\u8865\u7801\u7684\u5f62\u5f0f\u5b58\u50a8\u7684\uff0c\u6b64\u65f61000 0000 \u5728\u8ba1\u7b97\u673a\u7684\u773c\u91cc\uff0c\u662f\u4e00\u4e2a\u8865\u7801\uff0c\u6700\u5de6\u8fb9\u662f 1 \u8868\u793a\u8d1f\u6570\uff0c\u8865\u78011000 0000 \u6240\u5bf9\u5e94\u7684\u5341\u8fdb\u5236\u662f -128\uff0c\u6240\u4ee5\u6700\u540e\u8f93\u51fa\u7684\u5c31\u662f -128\u3002\u56e0\u6b64\u6ea2\u51fa\u4f1a\u4f7f\u5f97\u6700\u5927\u6b63\u6574\u6570\u53d8\u6210\u6700\u5c0f\u8d1f\u6574\u6570\u3002
\u53c2\u8003\u8d44\u6599\u6765\u6e90\uff1a\u767e\u5ea6\u767e\u79d1-char
\u767e\u5ea6\u767e\u79d1-varchar

一、用途不同

1、char:char用于C或C++中定义字符型变量。

2、varchar:VARCHAR(M)是一种比CHAR更加灵活的数据类型,同样用于表示字符数据。

二、特点不同

1、char:char在标准中不指定为signed或unsigned,编译器可以编译为带符号的,也可以编译为不带符号的。

2、varchar:VARCHAR可以保存可变长度的字符串。其中M代表该数据类型所允许保存的字符串的最大长度,只要长度小于该最大值的字符串都可以被保存在该数据类型中。

三、支持不同

1、char:只占一个字节,取值范围为 -128 ~ +127(-2^7~2^7-1)。

2、varchar:支持的最大长度是255个字符。

参考资料来源:

百度百科-varchar

百度百科-char



一、长度的区别

1、char类型:char类型的长度是固定的。

2、varchar类型:varchar类型的长度是可变的。

二、效率的区别

1、char类型:char类型每次修改的数据长度相同,效率更高。

2、varchar类型:varchar类型每次修改的数据长度不同,效率更低。

三、存储的区别

1、char类型:char类型存储的时候是初始预计字符串再加上一个记录字符串长度的字节,占用空间较大。

2、varchar类型:varchar类型存储的时候是实际字符串再加上一个记录字符串长度的字节,占用空间较小。



1、表示方式的不同

char类型的长度是固定的,varchar的长度是可变的。这就表示,存储字符串'abc',使用char(10),表示存储的字符将占10个字节(包括7个空字符)

使用varchar2(10),,则表示只占3个字节,10是最大值,当存储的字符小于10时,按照实际的长度存储。

2、效率的不同

char类型的效率比varchar的效率稍高varchar2是oracle开发的一个数据类型。工业标准的varchar可以存储空字符串,oracle的varchar2还可以存储NULL值,如果想要有向后兼容的能力建议使用varchar2

3、空间的不同

varchar2比char节省空间,但是在效率上比char稍差些。既要获得效率即必须牺牲一点空间,这就是设计上的"以空间换时间";

varchar2虽然比char节省空间,但是一个varchar2列经常被修改,而且每次修改的数据长度不同,这会引起“行迁移的现象”,而这造成的多余的I/O,是数据库设计中尽量避免的,在这种情况下使用char代替varchar2会更好些。



区别:
1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的,
比如,存储字符串“abc",对于CHAR
(10),表示你存储的字符将占10个字节(包括7个空字符),而同样的VARCHAR2
(10)则只占用3个字节的长度,10只是最大值,当你存储的字符小于10时,按实际长度存储。
2.CHAR的效率比VARCHAR2的效率稍高。
3.目前VARCHAR是VARCHAR2的同义词。工业标准的VARCHAR类型可以存储空字符串,但是oracle不这样做,尽管它保留以后这样做的权利。Oracle自己开发了一个数据类型VARCHAR2,这个类型不是一个标准的VARCHAR,它将在数据库中varchar列可以存储空字符串的特性改为存储NULL值。如果你想有向后兼容的能力,Oracle建议使用VARCHAR2而不是VARCHAR。

  • varchar,char,text鐨勫尯鍒
    绛旓細2. 鍖哄埆浜岋細瀛樺偍鐨勫閲忎笉鍚 瀵筩har鏉ヨ锛屾渶澶氳兘瀛樻斁鐨勫瓧绗︿釜鏁255锛屽拰缂栫爜鏃犲叧 鑰寁archar锛屾渶澶氳兘瀛樻斁65532涓瓧绗︺varchar鐨鏈澶ф湁鏁堥暱搴︾敱鏈澶ц澶у皬鍜屼娇鐢ㄥ瓧绗﹂泦纭畾銆傛暣浣撴渶澶ч暱搴︽槸65532 鍦∕ySQL涓紝char, varchar, text绫诲瀷鐨勫瓧娈甸兘鍙互鐢ㄦ潵瀛樺偍瀛楃绫诲瀷鐨勬暟鎹紝char鍜寁archar閮藉彲浠ユ寚瀹氭渶澶х殑...
  • varchar鍜char 鐨勫尯鍒
    绛旓細char 鍜 varchar 鍥哄畾闀垮害 (char) 鎴栧彲鍙橀暱搴 (varchar) 瀛楃鏁版嵁绫诲瀷銆俢har[(n)]闀垮害涓 n 涓瓧鑺傜殑鍥哄畾闀垮害涓旈潪 Unicode 鐨勫瓧绗︽暟鎹俷 蹇呴』鏄竴涓粙浜 1 鍜 8,000 涔嬮棿鐨勬暟鍊笺傚瓨鍌ㄥぇ灏忎负 n 涓瓧鑺傘俢har 鍦 SQL-92 涓殑鍚屼箟...
  • 鏁版嵁搴撲腑char鍜寁archar鐨勫尯鍒
    绛旓細鏁版嵁搴撲腑char鍜寁archar鐨勫尯鍒涓猴細闀垮害涓嶅悓銆佹晥鐜囦笉鍚屻佸瓨鍌ㄤ笉鍚屻備竴銆侀暱搴︿笉鍚 1銆乧har绫诲瀷锛歝har绫诲瀷鐨勯暱搴︽槸鍥哄畾鐨勩2銆乿archar绫诲瀷锛歷archar绫诲瀷鐨勯暱搴︽槸鍙彉鐨勩備簩銆佹晥鐜囦笉鍚 1銆乧har绫诲瀷锛歝har绫诲瀷姣忔淇敼鐨勬暟鎹暱搴︾浉鍚岋紝鏁堢巼鏇撮珮銆2銆乿archar绫诲瀷锛歷archar绫诲瀷姣忔淇敼鐨勬暟鎹暱搴︿笉鍚岋紝鏁堢巼鏇翠綆銆...
  • varchar鍗犲灏戠┖闂
    绛旓細varchar(10)鐨勬剰鎬濇槸瀛樺偍10涓瓧鑺傘備絾鏄牴鎹畍archar鐗圭偣锛屽綋瀛樺偍闀垮害灏忎簬鎴栫瓑浜255鏃讹紝浣跨敤棰濆1瀛楄妭淇濆瓨锛屽叾瀹冩儏鍐典娇鐢2瀛楄妭淇濆瓨銆傚洜姝ゆ椂瀛樺偍瀛楄妭涓10锛屾墍浠archar(10)浼氬崰鐢11瀛楄妭瀛樺偍绌洪棿銆侻ySQL4.1浠ュ墠锛VARCHAR鏁版嵁绫诲瀷鎵鏀寔鐨勬渶澶ч暱搴255锛5.0浠ヤ笂鐗堟湰鏀寔65535瀛楄妭闀垮害锛寀tf8缂栫爜涓嬫渶澶氭敮鎸21843涓...
  • varchar鍜char鐨勫尯鍒
    绛旓細2銆佸悓鏃禼har鍜寁archar鏈澶鐨勫尯鍒灏卞湪浜巆har涓嶇瀹為檯value閮戒細鍗犵敤n涓瓧绗︾殑绌洪棿锛岃寁archar鍙細鍗犵敤瀹為檯瀛楃搴旇鍗犵敤鐨勭┖闂+1锛屽苟涓斿疄闄呯┖闂+1<=n銆3銆佽秴杩char鍜寁archar鐨n璁剧疆鍚庯紝瀛楃涓蹭細琚埅鏂4銆乧har鐨勪笂闄愪负255瀛楄妭锛寁archar鐨勪笂闄65535瀛楄妭锛宼ext鐨勪笂闄愪负65535銆5銆乧har鍦ㄥ瓨鍌ㄧ殑鏃跺欎細鎴柇灏鹃儴鐨...
  • MySQL涓殑char鍜寁archar
    绛旓細鍦∕ySQL鐨勪笘鐣岄噷锛屾暟鎹被鍨嬬姽濡傝垶鍙颁笂鐨勪富瑙掞紝char鍜寁archar灏辨槸鍏朵腑涓嶅彲鎴栫己鐨勮鑹诧紝瀹冧滑鍚勬湁鐗圭偣锛屼负鏁版嵁瀛樺偍甯︽潵浜嗙伒娲绘у拰鏁堢巼鐨勫钩琛°傞鍏堬紝璁╂垜浠繁鍏ヤ簡瑙char涓巚archar鐨勫尯鍒锛歝har锛屽鍚屼竴涓浐瀹堜紶缁熴佷弗璋ㄦ湁搴忕殑婕斿憳锛屽畠浠h〃鐨勬槸鍥哄畾闀垮害瀛楃涓诧紝瀛樺偍鏁堢巼濡傚悓鍏跺悕瀛椾竴鏍烽珮鏁堬紝鍥犱负姣忎釜瀛楃閮芥湁鍥哄畾...
  • 鍏充簬char涓巚archar,varchar2鐨勫尯鍒
    绛旓細2銆乻tring O/R Mapping涓搴斿疄浣撶殑灞炴х被鍨嬩竴鑸槸浠tring灞呭锛岀敤char[]鐨勯潪甯稿皯锛屾墍浠ュ鏋滄寜mapping鐨勫悎鐞嗘ф潵璇达紝鍙彉闀垮害鐨勭被鍨嬫洿鍔犲惢鍚堬紱varchar鐨勫瓨鏀惧拰string鏄竴鏍峰師鐞嗙殑锛屽嵆length {block}杩欑鏂瑰紡锛屾墍浠archar鐨勯暱搴﹀拰瀹冨疄闄呭崰鐢ㄧ┖闂存槸鏃犲叧鐨勶紱3銆佹煡璇㈡垚鏈 char鍜寁archar鐨姣旇緝鎴愭湰鏄竴鏍风殑锛...
  • mysql涓璫har銆varchar銆乶varchar鍖哄埆
    绛旓細瀵逛簬 InnoDB 瀛樺偍寮曟搸鐨勮〃锛屽敖閲忎娇鐢 varchar 锛屽洜涓哄畠鐨勬暟鎹瓨鍌ㄦ牸寮忓鍥哄畾闀垮害鐨勬牸寮忓拰鍙彉闀垮害鐨勬牸寮忎笉鍔犱互鍖哄垎锛屾墍浠har浼氭瘮varchar鍗犵敤鏇村瀛樺偍绌洪棿锛屼粠鍑忓皯绌洪棿鍗犵敤鍜岀鐩業/O瑙掑害鐪嬶紝浣跨敤varchar鏇村ソ銆傚叧浜巚archar杩樻湁涓涓棶棰橈紝varchar鍙互鑷傚簲瀛樺偍绌洪棿锛岄偅varchar(20)鍜寁archar(1000)瀛樺偍閮芥槸涓鏍风殑...
  • char vchar nchar nvchar鐨勫尯鍒
    绛旓細char鍜寁archar鐨闀垮害閮藉湪1鍒8000涔嬮棿锛屽畠浠鐨勫尯鍒鍦ㄤ簬char鏄畾闀垮瓧绗︽暟鎹紝鑰寁archar鏄彉闀垮瓧绗︽暟鎹傛墍璋撳畾闀垮氨鏄暱搴﹀浐瀹氱殑锛屽綋杈撳叆鐨勬暟鎹暱搴︽病鏈夎揪鍒版寚瀹氱殑闀垮害鏃跺皢鑷姩浠ヨ嫳鏂囩┖鏍煎湪鍏跺悗闈㈠~鍏咃紝浣块暱搴﹁揪鍒扮浉搴旂殑闀垮害锛涜屽彉闀垮瓧绗︽暟鎹垯涓嶄細浠ョ┖鏍煎~鍏呫倀ext瀛樺偍鍙彉闀垮害鐨勯潪Unicode鏁版嵁锛屾渶澶ч暱搴︿负2^31...
  • 璧勬枡搴撲腑varchar銆乶varchar銆乧har鍌ㄥ瓨瀛楀厓銆佹暟瀛椼佹眽瀛楃殑瀹归噺鍖哄埆
    绛旓細涓鑸潵璇村鏋滃惈鏈変腑鏂囧瓧鍏冿紝鐢╪varchar锛屽鏋滅函鑻辨枃鍜屾暟瀛楋紝鐢╟har/varchar銆傝祫鏂欏簱(Database)鏄寜鐓ц祫鏂欑粨鏋勬潵缁勭粐銆佸偍瀛樺拰绠$悊璧勬枡鐨勪粨搴擄紝瀹冧骇鐢熶簬璺濅粖鍏崄澶氬勾鍓嶏紝闅忕潃璧勮绉戞妧鍜屽競鍦虹殑鍙戝睍锛岀壒鍒槸浜屽崄涓栫邯涔濆崄骞翠唬浠ュ悗锛岃祫鏂欑鐞嗕笉鍐嶄粎浠呮槸鍌ㄥ瓨鍜岀鐞嗚祫鏂欙紝鑰岃浆鍙樻垚浣跨敤鑰呮墍闇瑕佺殑鍚勭璧勬枡绠$悊鐨勬柟寮忋...
  • 扩展阅读:nvarchar与varchar区别 ... char与varchar2类型的区别 ... oracle varchar2 ... 数据库char和varchar ... char和varchar的区别在于 ... varchar和char的使用场景 ... mysql varchar ... char和varchar最大长度 ... char和varchar数据类型区别 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网