char与varchar 数据库中char和varchar的区别

SQL SERVER char\u548cvarchar\u6570\u636e\u7c7b\u578b\u7684\u533a\u522b

\u3000\u3000\u6570\u636e\u7c7b\u578b\u533a\u522b\u5982\u4e0b\uff1a
char\u8868\u793a\u7684\u662f\u56fa\u5b9a\u957f\u5ea6\uff0c
varchar\u8868\u793a\u7684\u662f\u5b9e\u9645\u957f\u5ea6\u7684\u6570\u636e\u7c7b\u578b
\u3000\u3000\u6bd4\u5982\uff1a\u5982\u679c\u662fchar\u7c7b\u578b\uff0c\u5f53\u4f60\u8f93\u5165\u5b57\u7b26\u5c0f\u4e8e\u957f\u5ea6\u65f6\uff0c\u540e\u8865\u7a7a\u683c\uff1b\u800c\u662fvarchar\u7c7b\u578b\u65f6\uff0c\u5219\u8868\u793a\u4f60\u8f93\u5165\u5b57\u7b26\u7684\u5b9e\u9645\u957f\u5ea6

char\u6709\u56fa\u5b9a\u7684\u957f\u5ea6\uff0c\u800cvarchar\u5c5e\u4e8e\u53ef\u53d8\u957f\u7684\u5b57\u7b26\u7c7b\u578b\u3002

一、char类型适用场景:对存取速度要求比较高,或者占据空间一致的场景;

二、char和varchar的区别:

1、占据空间不同:char的长度是不可变的,而varchar的长度是可变的;

2、存取速度不同:char的存取数度比varchar要快得多,因为其长度固定,方便程序的存储与查找;

3、存储方式不同:char的存储方式是对英文字符占用1个字节,对汉字占用两个字节,而varchar的存储方式是对每个英文字符占用2个字节,汉字也占用2个字节;

扩展资料

1、char的存取数度比varchar要快得多:因为其长度固定,方便程序的存储与查找,但是char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率,而varchar是以空间效率为首位的;

2、char和varchar的存储数据都非unicode的字符数据。



char 类型. 用于某些 固定长度的字符串. 比如 "身份证号码" 固定18位 的这种. 就是 char(18)

区别:
1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc",对于CHAR (20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2 (20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。
2.CHAR的效率比VARCHAR2的效率稍高。
何时该用CHAR,何时该用varchar2?
CHAR与VARCHAR2是一对矛盾的统一体,两者是互补的关系.
VARCHAR2比CHAR节省空间,在效率上比CHAR会稍微差一些,即要想获得效率,就必须牺牲一定的空间,这也就是我们在数据库设计上常说的‘以空间换效率’。
VARCHAR2虽然比CHAR节省空间,但是如果一个VARCHAR2列经常被修改,而且每次被修改的数据的长度不同,这会引起‘行迁移’(Row Migration)现象,而这造成多余的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。
何时该用CHAR,何时该用varchar2?
CHAR与VARCHAR2是一对矛盾的统一体,两者是互补的关系.
VARCHAR2比CHAR节省空间,在效率上比CHAR会稍微差一些,即要想获得效率,就必须牺牲一定的空间,这也就是我们在数据库设计上常说的‘以空间换效率’。
VARCHAR2虽然比CHAR节省空间,但是如果一个VARCHAR2列经常被修改,而且每次被修改的数据的长度不同,这会引起‘行迁移’(Row Migration)现象,而这造成多余的I/O,是数据库设计和调整中要尽力避免的,在这种情况下用CHAR代替VARCHAR2会更好一些。

  • varchar鍜宑har鏈変粈涔堝尯鍒
    绛旓細Varchar鍜Char鐨勪富瑕佸尯鍒湪浜庡畠浠殑瀛樺偍鏂瑰紡銆侀暱搴︿互鍙婃ц兘鐗规с傜畝鑰岃█涔嬶紝Char鏄畾闀垮瓧绗︾被鍨嬶紝鑰孷archar鏄彉闀垮瓧绗︾被鍨嬨傞鍏堬紝Char鏄竴绉嶅畾闀垮瓧绗︽暟鎹被鍨嬶紝杩欐剰鍛崇潃鏃犺瀹為檯瀛樺偍鐨勫瓧绗︿覆闀垮害濡備綍锛屽畠閮戒細鍗犵敤鍥哄畾鐨勫瓨鍌ㄧ┖闂淬備緥濡傦紝濡傛灉瀹氫箟涓涓狢har(10)瀛楁锛岄偅涔堟棤璁哄瓨鍌ㄧ殑瀛楃涓叉槸"hello"锛堥暱搴︿负5锛...
  • char鍜寁archar鍖哄埆
    绛旓細char鏄竴绉嶅浐瀹氶暱搴︾殑绫诲瀷锛屾棤璁哄偍瀛樼殑鏁版嵁鏈夊灏戦兘浼氬浐瀹氶暱搴︼紝濡傛灉鎻掑叆鐨勯暱搴﹀皬浜庡畾涔夐暱搴︼紝鍒欏彲浠ョ敤绌烘牸杩涜濉厖銆傝寁archar鏄竴绉嶅彲鍙橀暱搴︾殑绫诲瀷锛屽綋鎻掑叆鐨勯暱搴﹀皬浜庡畾涔夐暱搴︽椂锛屾彃鍏ュ闀垮氨瀛樺闀裤char鍜寁archar鍖哄埆 1銆佹渶澶ч暱搴︼細char鏈澶ч暱搴︽槸255瀛楃锛寁archar鏈澶ч暱搴︽槸65535涓瓧鑺傘2銆佸畾闀匡細char...
  • 鏁版嵁搴揷har, varchar, nchar, nvarchar鏈変粈涔堝尯鍒?
    绛旓細鏁版嵁搴揷har锛varchar锛宯char锛宯varchar绫诲瀷鍖哄埆涓猴細闀垮害涓嶅悓銆佸瓧鑺備笉鍚屻佺┖鏍间笉鍚屻備竴銆侀暱搴︿笉鍚 1銆乧har绫诲瀷锛歝har绫诲瀷鐨勯暱搴﹀浐瀹氾紝鍗犵敤鏇村鐨勫瓨鍌ㄧ┖闂淬2銆乿archar绫诲瀷锛歷archar绫诲瀷鐨勯暱搴︿笉鍥哄畾锛屽崰鐢ㄦ洿灏戠殑瀛樺偍绌洪棿銆3銆乶char绫诲瀷锛歯char绫诲瀷鐨勯暱搴﹀浐瀹氾紝鍗犵敤鏇村鐨勫瓨鍌ㄧ┖闂淬4銆乶varchar绫诲瀷锛歯varchar绫诲瀷...
  • char涓巚archar鐨勫尯鍒槸浠涔
    绛旓細鍖哄埆涓锛氶鍏堟槑纭殑鏄紝char鐨勯暱搴︽槸涓嶅彲鍙樼殑锛岃寁archar鐨勯暱搴︽槸鍙彉鐨勶紝鍖哄埆浜岋細瀹氫箟涓涓猚har[10]鍜寁archar[10],濡傛灉瀛樿繘鍘荤殑dao鏄榓bcd鈥,閭d箞char鎵鍗犵殑闀垮害渚濈劧涓10锛岄櫎浜嗗瓧绗︹榓bcd鈥欏锛屽悗闈㈣窡鍏釜绌烘牸锛岃寁archar灏辩珛椹妸闀垮害鍙樹负4浜嗭紝鍙栨暟鎹殑鏃跺欙紝char绫诲瀷鐨勮鐢╰rim()鍘绘帀澶氫綑鐨勭┖鏍硷紝...
  • char鍜寁archar鏁版嵁绫诲瀷鍖哄埆
    绛旓細鍦ㄦ暟鎹簱涓紝char鍜寁archar鏄袱绉嶅父瑙佺殑瀛楃鏁版嵁绫诲瀷锛屽畠浠殑涓昏鍖哄埆鍦ㄤ簬瀛樺偍鏂瑰紡鍜屽瓨鍌ㄧ┖闂淬1. 瀛樺偍鏂瑰紡锛歝har鏄竴绉嶅浐瀹氶暱搴︾殑鏁版嵁绫诲瀷锛屾棤璁哄疄闄呭瓨鍌ㄧ殑瀛楃鏁版槸澶氬皯锛屽畠閮戒細鍗犵敤鐩稿悓鐨勫瓨鍌ㄧ┖闂淬備緥濡傦紝濡傛灉瀹氫箟浜嗕竴涓猚har(10)鐨勬暟鎹被鍨嬶紝閭d箞鏃犺瀹為檯瀛樺偍鐨勫瓧绗︽暟鏄灏戯紝瀹冮兘浼氬崰鐢10涓瓧鑺傜殑瀛樺偍...
  • char鍜寁archar鐨勫尯鍒
    绛旓細涓銆佺敤閫斾笉鍚 1銆乧har锛歝har鐢ㄤ簬C鎴朇++涓畾涔夊瓧绗﹀瀷鍙橀噺銆2銆varchar锛VARCHAR(M)鏄竴绉嶆瘮CHAR鏇村姞鐏垫椿鐨勬暟鎹被鍨嬶紝鍚屾牱鐢ㄤ簬琛ㄧず瀛楃鏁版嵁銆備簩銆佺壒鐐逛笉鍚 1銆乧har锛歝har鍦ㄦ爣鍑嗕腑涓嶆寚瀹氫负signed鎴杣nsigned锛岀紪璇戝櫒鍙互缂栬瘧涓哄甫绗﹀彿鐨勶紝涔熷彲浠ョ紪璇戜负涓嶅甫绗﹀彿鐨勩2銆乿archar锛歏ARCHAR鍙互淇濆瓨鍙彉闀垮害鐨勫瓧绗︿覆...
  • varchar鍜宑har鐨勫尯鍒
    绛旓細char鍜寁archar鐨勫尯鍒涓嬶細1銆佹渶澶ч暱搴︼細char鏈澶ч暱搴︽槸255瀛楃锛寁archar鏈澶ч暱搴︽槸65535涓瓧鑺傘2銆佸畾闀匡細char鏄畾闀跨殑锛屼笉瓒崇殑閮ㄥ垎鐢ㄩ殣钘忕┖鏍煎~鍏咃紝varchar鏄笉瀹氶暱鐨勩3銆佺┖闂翠娇鐢細char浼氭氮璐圭┖闂达紝varchar浼氭洿鍔犺妭鐪佺┖闂淬4銆佹煡鎵炬晥鐜囷細char鏌ユ壘鏁堢巼浼氬緢楂橈紝varchar鏌ユ壘鏁堢巼浼氭洿浣庛5銆佸熬閮ㄧ┖鏍硷細char...
  • char涓巚archar
    绛旓細char鐨勯暱搴︽槸涓嶅彲鍙樼殑锛岃varchar鐨勯暱搴︽槸鍙彉鐨勶紱2銆佸瓨鍙栭熷害涓嶅悓锛歝har鐨勫瓨鍙栨暟搴︽瘮varchar瑕佸揩寰楀锛屽洜涓哄叾闀垮害鍥哄畾锛屾柟渚跨▼搴忕殑瀛樺偍涓庢煡鎵撅紱3銆佸瓨鍌ㄦ柟寮忎笉鍚岋細char鐨勫瓨鍌ㄦ柟寮忔槸瀵硅嫳鏂囧瓧绗﹀崰鐢1涓瓧鑺傦紝瀵规眽瀛楀崰鐢ㄤ袱涓瓧鑺傦紝鑰寁archar鐨勫瓨鍌ㄦ柟寮忔槸瀵规瘡涓嫳鏂囧瓧绗﹀崰鐢2涓瓧鑺傦紝姹夊瓧涔熷崰鐢2涓瓧鑺傦紱...
  • mysql涓char鍜寁archar鍖哄埆
    绛旓細鍦∕ySQL涓紝CHAR鍜孷ARCHAR鏄袱绉嶇敤浜庡瓨鍌ㄦ枃鏈暟鎹殑鏁版嵁绫诲瀷锛屽畠浠殑鍖哄埆锛氬瓨鍌ㄦ柟寮忎笉鍚屻佸瓨鍌ㄧ┖闂翠笉鍚屻佹ц兘涓嶅悓銆侀傜敤鍦烘櫙涓嶅悓銆1銆佸瓨鍌ㄦ柟寮忎笉鍚 CHAR锛欳HAR鏄浐瀹氶暱搴︾殑瀛楃绫诲瀷锛屽畠浼氬湪瀛樺偍鏃惰嚜鍔ㄥ~鍏呯┖鏍间互杈惧埌鎸囧畾鐨勯暱搴︺備緥濡傦紝濡傛灉瀹氫箟涓涓狢HAR锛10锛夌被鍨嬬殑瀛楁锛屽苟瀛樺偍鈥淗ello鈥濓紝鍒欎細鍦ㄥ悗闈㈠~鍏6...
  • varchar(10)鐨勬剰鎬濇槸鍗犵敤鍑犱釜瀛楄妭鍟?
    绛旓細varchar(10)鐨勬剰鎬濇槸瀛樺偍10涓瓧鑺傘備絾鏄牴鎹畍archar鐗圭偣锛屽綋瀛樺偍闀垮害灏忎簬鎴栫瓑浜255鏃讹紝浣跨敤棰濆1瀛楄妭淇濆瓨锛屽叾瀹冩儏鍐典娇鐢2瀛楄妭淇濆瓨銆傚洜姝ゆ椂瀛樺偍瀛楄妭涓10锛屾墍浠archar(10)浼氬崰鐢11瀛楄妭瀛樺偍绌洪棿銆侻ySQL4.1浠ュ墠锛VARCHAR鏁版嵁绫诲瀷鎵鏀寔鐨勬渶澶ч暱搴255锛5.0浠ヤ笂鐗堟湰鏀寔65535瀛楄妭闀垮害锛寀tf8缂栫爜涓嬫渶澶氭敮鎸21843涓...
  • 扩展阅读:oracle varchar2 ... unsigned short ... tinyint ... char比varchar快 ... nvarchar与varchar区别 ... char和varchar的区别在于 ... mysql varchar ... putchar ... varchar 10 ...

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