数据库:char和varchar数据类型有哪些区别? char(10)和VARCHAR(10)主要的区别是什么?
\u6570\u636e\u5e93\uff1achar\u548cvarchar\u6570\u636e\u7c7b\u578b\u7684\u533a\u522bchar\u548cvarchar\u90fd\u662f\u5b57\u7b26\u4e32\u7c7b\u578b\u7684
char\u56fa\u5b9a\u957f\u5ea6\u7684\u975e Unicode \u5b57\u7b26\u6570\u636e\uff0c\u6700\u5927\u957f\u5ea6\u4e3a 8,000 \u4e2a\u5b57\u7b26\u3002
\u6240\u5360\u5b58\u50a8\u7a7a\u95f4\u4e3a\u4f60\u5b9a\u4e49\u65f6\u7684\u5927\u5c0f\u3002
\u6570\u636e\u91cf\u8f83\u5927\u65f6\u4ee5char\u5b57\u6bb5\u4e3a\u67e5\u8be2\u6761\u4ef6\u65f6\u67e5\u8be2\u5f97\u5feb\u4e00\u4e9b.
varchar\u53ef\u53d8\u957f\u5ea6\u7684\u975e Unicode \u6570\u636e\uff0c\u6700\u957f\u4e3a 8,000 \u4e2a\u5b57\u7b26\u3002
\u6240\u5360\u5b58\u50a8\u7a7a\u95f4\u4e3a\u5b9e\u9645\u5927\u5c0f\uff08\u5728\u4e0d\u8d85\u8fc7\u4f60\u5b9a\u4e49\u957f\u5ea6\u65f6\uff09
\u5982\u679c\u8981\u5b58\u50a8\u7684\u5b57\u6bb5\u4e0d\u662f\u5b9a\u957f\u7684.\u7528varchar\u8f83\u597d\u4e00\u4e9b\u3002
\u6240\u4ee5\uff0c\u5bf9\u7ecf\u5e38\u4fee\u6539\uff08\u6216\u63d2\u5165\uff09\u7684\u5b57\u6bb5\u9009\u7528char\uff0c\u800c\u4e0d\u5e38\u4fee\u6539\u7684\u5efa\u8bae\u7528varchar
\u9996\u5148\u660e\u786e\u7684\u662f\uff0cchar\u7684\u957f\u5ea6\u662f\u4e0d\u53ef\u53d8\u7684\uff0c\u800cvarchar\u7684\u957f\u5ea6\u662f\u53ef\u53d8\u7684\uff0c
\u5b9a\u4e49\u4e00\u4e2achar[10]\u548cvarchar[10],\u5982\u679c\u5b58\u8fdb\u53bb\u7684\u662f\u2018abcd\u2019,\u90a3\u4e48char\u6240\u5360\u7684\u957f\u5ea6\u4f9d\u7136\u4e3a10\uff0c\u9664\u4e86\u5b57\u7b26\u2018abcd\u2019\u5916\uff0c\u540e\u9762\u8ddf\u516d\u4e2a\u7a7a\u683c\uff0c\u800cvarchar\u5c31\u7acb\u9a6c\u628a\u957f\u5ea6\u53d8\u4e3a4\u4e86\uff0c\u53d6\u6570\u636e\u7684\u65f6\u5019\uff0cchar\u7c7b\u578b\u7684\u8981\u7528trim()\u53bb\u6389\u591a\u4f59\u7684\u7a7a\u683c\uff0c\u800cvarchar\u662f\u4e0d\u9700\u8981\u7684\uff0c
char\u7684\u5b58\u53d6\u6570\u5ea6\u8fd8\u662f\u8981\u6bd4varchar\u8981\u5feb\u5f97\u591a\uff0c\u56e0\u4e3a\u5176\u957f\u5ea6\u56fa\u5b9a\uff0c\u65b9\u4fbf\u7a0b\u5e8f\u7684\u5b58\u50a8\u4e0e\u67e5\u627e\uff1b\u4f46\u662fchar\u4e5f\u4e3a\u6b64\u4ed8\u51fa\u7684\u662f\u7a7a\u95f4\u7684\u4ee3\u4ef7\uff0c\u56e0\u4e3a\u5176\u957f\u5ea6\u56fa\u5b9a\uff0c\u6240\u4ee5\u96be\u514d\u4f1a\u6709\u591a\u4f59\u7684\u7a7a\u683c\u5360\u4f4d\u7b26\u5360\u636e\u7a7a\u95f4\uff0c\u53ef\u8c13\u662f\u4ee5\u7a7a\u95f4\u6362\u53d6\u65f6\u95f4\u6548\u7387\uff0c\u800cvarchar\u662f\u4ee5\u7a7a\u95f4\u6548\u7387\u4e3a\u9996\u4f4d\u7684\u3002
char\u7684\u5b58\u50a8\u65b9\u5f0f\u662f\uff0c\u5bf9\u82f1\u6587\u5b57\u7b26\uff08ASCII\uff09\u5360\u75281\u4e2a\u5b57\u8282\uff0c\u5bf9\u4e00\u4e2a\u6c49\u5b57\u5360\u7528\u4e24\u4e2a\u5b57\u8282\uff1b\u800cvarchar\u7684\u5b58\u50a8\u65b9\u5f0f\u662f\uff0c\u5bf9\u6bcf\u4e2a\u82f1\u6587\u5b57\u7b26\u5360\u75282\u4e2a\u5b57\u8282\uff0c\u6c49\u5b57\u4e5f\u5360\u75282\u4e2a\u5b57\u8282\uff0c\u4e24\u8005\u7684\u5b58\u50a8\u6570\u636e\u90fd\u975eunicode\u7684\u5b57\u7b26\u6570\u636e\u3002
\u6269\u5c55\u8d44\u6599\uff1achar\u662fC/C++\u6574\u578b\u6570\u636e\u4e2d\u6bd4\u8f83\u53e4\u602a\u7684\u4e00\u4e2a\uff0c\u5176\u5b83\u7684\u5982int/long/short\u7b49\u4e0d\u6307\u5b9asigned/unsigned\u65f6\u90fd\u9ed8\u8ba4\u662fsigned\uff0c\u4f46char\u5728\u6807\u51c6\u4e2d\u662funsigned\uff0c\u7f16\u8bd1\u5668\u53ef\u4ee5\u5b9e\u73b0\u4e3a\u5e26\u7b26\u53f7\u7684\uff0c\u4e5f\u53ef\u4ee5\u5b9e\u73b0\u4e3a\u4e0d\u5e26\u7b26\u53f7\u7684\uff0c\u6709\u4e9b\u7f16\u8bd1\u5668\u5982pSOS\u7684\u7f16\u8bd1\u5668\uff0c\u8fd8\u53ef\u4ee5\u901a\u8fc7\u7f16\u8bd1\u5f00\u5173\u6765\u6307\u5b9a\u5b83\u662f\u6709\u7b26\u53f7\u6570\u8fd8\u662f\u65e0\u7b26\u53f7\u6570\u3002
\u53c2\u8003\u8d44\u6599\uff1avarchar\u767e\u5ea6\u767e\u79d1
数据类型
char表示的是固定长度,
varchar表示的是实际长度的数据类型
比如:如果是char类型,当你输入字符小于长度时,后补空格;而是varchar类型时,则表示你输入字符的实际长度
varchar也就是
variable
char,即可变的char。
比如:
char(4)表示该字段将占用4个字节。
varchar(20)表示该字段最多可接受20个字符,但该字段的占用空间为字段值的实际大小。如你的一条记录的该字段值为"good",则该记录里该字段的占用空间为4个字节,而非20。
数据类型区别如下:
1.
char表示的是固定长度,
2.
varchar表示的是实际长度的数据类型
比如:如果是char类型,当你输入字符小于长度时,后补空格;而是varchar类型时,则表示你输入字符的实际长度
绛旓細sql涓畾涔夊勾榫勫彲浠ョ敤鐨勭敤鏁版嵁绫诲瀷鍙婇暱搴︼細1銆char(3)锛氶暱搴︿负3鐨勫瓧绗︿覆銆傚皬浜10浣嶄笖闀垮害鍩烘湰鍥哄畾鐨勫瓧绗︿覆鐢╟har銆2銆乿archar(3)锛氶暱搴︿负3鐨勫瓧绗︿覆銆傞暱搴﹀ぇ浜10鐨勭敤varchar锛varcha鍦10浠ュ唴鍗犵敤绌洪棿姣攃har澶с3銆乮nt锛氶暱搴︿负4涓瓧鑺傦紝瀛樺偍浠(-2147483648)鍒(2147483647)銆4銆丼mallint锛氶暱搴︿负2涓瓧鑺...
绛旓細浠庝綘鐨勯敊璇俊鎭笂鏉ョ湅锛屼綘瑕佸鍏ヨ繖涓〃涓娆℃ч渶瑕佸垎閰4294967294瀛楄妭鐨勭┖闂达紝杩欎簺绌洪棿鏄渶瑕佺浉涓淬佽繛缁殑锛岃岃〃绌洪棿GZCMS铏界劧鐪嬭捣鏉ユ湁寰堝绌洪棿锛屼絾閮芥槸纰庣墖锛屾墍浠ヤ細鍑虹幇闂锛屽缓璁綘鏁寸悊涓涓嬬┖闂达紝鎴栬呭澶х幇鏈鏁版嵁鏂囦欢澶у皬锛屾垨鑰呭姞鏁版嵁鏂囦欢
绛旓細妤间笂鐨勶紝浣犺繖鏄線琛ㄤ腑鎻掑叆涓琛岋紝ALTER TABLE st add a6 char(6)锛岃繖鏄坊鍔犲瓧娈电殑璇彞 锛岃繕鏈夌畝鍗曠殑鍔炴硶锛屽氨鏄敤pb杩炴帴浜鏁版嵁搴锛岀偣database锛岄噷闈㈣兘鐪嬪埌浣犺繛鎺ョ殑鏁版嵁搴撻噷闈㈢殑鎵鏈夌殑琛紝鐒跺悗鐐瑰埌瑕佹坊鍔犲瓧娈电殑琛紝鍙抽敭alter table..锛屼細鏄剧ず琛ㄤ腑鎵鏈夌殑瀛楁锛岀偣鍒版渶鍚庝竴琛岋紝鍥炶溅灏辫兘閲...
绛旓細浣犺繖涓槸鐩爣搴撻噷闈㈠凡缁忔湁杩欎釜琛ㄤ簡PUBTEXT_TMP锛岃窡瀛楃闆嗘病鍏崇郴鐨勩俧ollowing statement failed because the object already exists銆備綘鐪嬩笅鐩爣搴撹繖涓〃鏄笉鏄湁鏁版嵁锛屽鏋滄病鏈夋暟鎹氨鍏堟妸鐩爣搴撶殑杩欎釜琛╠rop鎺夛紝鍐嶅
绛旓細create table dept (dept_id char(4) not null primary key,dept_name varcha(10) not null);comment on column dept .dept_id is 閮ㄩ棬浠g爜;comment on column dept .dept_name is 閮ㄩ棬鍚嶇О;
绛旓細sql涓畾涔夊勾榫勫彲浠ョ敤鐨勭敤鏁版嵁绫诲瀷鍙婇暱搴︼細1銆char(3) 锛氶暱搴︿负3鐨勫瓧绗︿覆銆傚皬浜10浣嶄笖闀垮害鍩烘湰鍥哄畾鐨勫瓧绗︿覆鐢╟har銆2銆乿archar(3)锛氶暱搴︿负3鐨勫瓧绗︿覆銆傞暱搴﹀ぇ浜10鐨勭敤varchar锛varcha鍦10浠ュ唴鍗犵敤绌洪棿姣攃har澶с3銆乮nt锛氶暱搴︿负4涓瓧鑺傦紝瀛樺偍浠(-2147483648)鍒(2147483647)銆4銆丼mallint锛氶暱搴︿负2涓瓧鑺...
绛旓細sql涓畾涔夊勾榫勫彲浠ョ敤鐨勭敤鏁版嵁绫诲瀷鍙婇暱搴︼細1銆char(3) 锛氶暱搴︿负3鐨勫瓧绗︿覆銆傚皬浜10浣嶄笖闀垮害鍩烘湰鍥哄畾鐨勫瓧绗︿覆鐢╟har銆2銆乿archar(3)锛氶暱搴︿负3鐨勫瓧绗︿覆銆傞暱搴﹀ぇ浜10鐨勭敤varchar锛varcha鍦10浠ュ唴鍗犵敤绌洪棿姣攃har澶с3銆乮nt锛氶暱搴︿负4涓瓧鑺傦紝瀛樺偍浠(-2147483648)鍒(2147483647)銆4銆丼mallint锛氶暱搴︿负2涓瓧鑺...