varchar和char的区别

varchar和char的区别:

1、储存长度的不同

char和varchar是mysql中的两个相似的列,都可以存储字符和字符串。但是char存储的列的长度是不可变的,varchar存储的列的长度是可变的。

2、定义的不同

当定义列为varchar(2)时,存入比2个字符以上的数据时,会出现两种情况:

①sql mode为严格模式时,插入2个字符以上的数据就会报错。

②sql mode为非严格模式时,MySql会自动将超出的字符截取,保留符合的字符。

3、开启sql mode的方式不同

①先执行select @@sql_mode,复制查询出来的值并将其中的NO_ZERO_IN_DATE,NO_ZERO_DATE删除,然后执行set sql_mode = '修改后的值'或者

set session sql_mode='修改后的值';,例如:set session sql_mode='STRICT_TRANS_TABLES';改为严格模式此方法只在当前会话中生效,关闭当前会话就不生效了。

②先执行select @@global.sql_mode,复制查询出来的值并将其中的NO_ZERO_IN_DATE,NO_ZERO_DATE删除,然后执行set global sql_mode = '修改后的值'。

此方法在当前服务中生效,重新MySQL服务后失效

③在mysql的安装目录下,或my.cnf文件(windows系统是my.ini文件),新增sql_mode = ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,

ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

添加my.cnf如下:

 [mysqld]sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER

然后重启mysql。

此方法永久生效.当然生产环境上是禁止重启MySQL服务的,所以采用方式二加方式三来解决线上的问题,那么即便是有一天真的重启了MySQL服务,也会永久生效了



  • varchar,char,text鐨勫尯鍒
    绛旓細3. innodb 瀛樺偍寮曟搸 寤烘剰浣跨敤varchar 绫诲瀷 鍥犱负闀垮害鍥哄畾锛char鐨瀛樺彇閫熷害杩樻槸瑕佹瘮varchar瑕佸揩寰楀锛屾柟渚跨▼搴忕殑瀛樺偍鍜屾煡鎵撅紱浣嗘槸char涔熶负姝や粯鍑虹殑鏄┖闂寸殑浠d环锛屽洜涓哄叾闀垮害鍥哄畾锛屾墍浠ヤ細鍗犳嵁澶氫綑鐨勭┖闂达紝鍙皳鏄互绌洪棿鎹㈠彇鏃堕棿鏁堢巼銆倂archar鍒氬ソ鐩稿弽锛屼互鏃堕棿鎹㈢┖闂 2. 鍖哄埆浜岋細瀛樺偍鐨勫閲忎笉鍚 瀵筩har鏉ヨ锛屾渶...
  • varchar鍜宑har 鐨勫尯鍒
    绛旓細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绫诲瀷姣忔淇敼鐨勬暟鎹暱搴︿笉鍚岋紝鏁堢巼鏇翠綆銆...
  • MySQL涓殑char鍜寁archar
    绛旓細棣栧厛锛岃鎴戜滑娣卞叆浜嗚Вchar涓巚archar鐨勫尯鍒細char锛屽鍚屼竴涓浐瀹堜紶缁熴佷弗璋ㄦ湁搴忕殑婕斿憳锛屽畠浠h〃鐨勬槸鍥哄畾闀垮害瀛楃涓诧紝瀛樺偍鏁堢巼濡傚悓鍏跺悕瀛椾竴鏍烽珮鏁堬紝鍥犱负姣忎釜瀛楃閮芥湁鍥哄畾鐨勭┖闂达紝鍗充娇鏈瀹屽叏濉厖锛屼篃浼氱敤绌烘牸鏉ュ崰鎹傝繖绉嶇壒鎬т娇寰楀湪瀛樺偍涓婅妭鐪佷簡绌洪棿锛屼絾鍙兘浼氶犳垚涓瀹氱▼搴︾殑娴垂銆傜浉姣斾箣涓嬶紝varchar鍒欏儚鏄竴涓...
  • varchar鍜宑har鐨勫尯鍒
    绛旓細2銆佸悓鏃char鍜寁archar鏈澶鐨勫尯鍒灏卞湪浜巆har涓嶇瀹為檯value閮戒細鍗犵敤n涓瓧绗︾殑绌洪棿锛岃寁archar鍙細鍗犵敤瀹為檯瀛楃搴旇鍗犵敤鐨勭┖闂+1锛屽苟涓斿疄闄呯┖闂+1<=n銆3銆佽秴杩嘽har鍜寁archar鐨刵璁剧疆鍚庯紝瀛楃涓蹭細琚埅鏂4銆char鐨涓婇檺涓255瀛楄妭锛寁archar鐨勪笂闄65535瀛楄妭锛宼ext鐨勪笂闄愪负65535銆5銆乧har鍦ㄥ瓨鍌ㄧ殑鏃跺欎細鎴柇灏鹃儴鐨...
  • (涓涓猄QL鏁版嵁搴撶殑绠鍗曢棶棰)
    绛旓細涓銆VARCHAR鍜孋HAR鐨勫尯鍒锛欳HAR绫诲瀷鐨勫瓧娈碉紝褰撳唴瀹瑰緢灏戠殑鏃跺欙紝浠嶇劧鍗犵敤鍥哄畾瀹藉害鐨勫瓨鍌ㄧ┖闂达紝鑰孷ARCHAR鍙互鑺傜渷绌洪棿锛堟寜鐓у疄闄呭唴瀹归暱搴+1鍒嗛厤锛変簩銆佷竴鑸儏鍐典笅锛屽浜庡鍚嶃佹у埆杩欐牱鐨勫瓧娈碉紝娌℃湁浣跨敤VARCHAR鐨勫繀瑕侊紝灏辩敤CHAR灏卞彲浠ワ紝鑰屽浜庡搴湴鍧杩欐牱鐨勫瓧娈碉紝浣跨敤VARCHAR鍙互澶уぇ鑺傜渷瀛樺偍绌洪棿銆備笁銆佸浜庝竴涓〃锛...
  • 鍏充簬char涓巚archar,varchar2鐨勫尯鍒
    绛旓細char鍜寁archar鐨勬瘮杈冩垚鏈槸涓鏍风殑锛岀幇鍦ㄥ叧閿氨鐪嬪畠浠殑绱㈠紩鏌ユ壘鐨勬垚鏈簡锛屽洜涓烘煡鎵剧瓥鐣ラ兘涓鏍凤紝鍥犳搴旇姣旇緝璋佸崰鐢ㄧ┖闂村皬銆備緥锛氬湪瀛樻斁鐩稿悓鏁伴噺鐨勫瓧绗︽儏鍐典笅锛屽鏋滄暟閲忓皬锛岄偅涔坈har鍗犵敤闀垮害鏄皬浜巚archar鐨勶紝浣嗗鏋滄暟閲忕◢澶э紝鍒檝archar瀹屽叏鍙兘灏忎簬char锛岃屼笖瑕佺湅瀹為檯濉厖鏁板肩殑鍏呭疄搴︼紝姣斿璇磛archar(3)鍜宑har...
  • mysql涓璫har銆varchar銆乶varchar鍖哄埆
    绛旓細鎴戜滑鐭ラ亾Unicode缂栫爜瀵硅嫳鏂囧拰涓枃瀛楃閮芥槸鐢ㄤ袱涓瓧鑺傝〃绀猴紝nvarchar涓鑸敤鏉ュ瓨鍌ㄤ腑鏂 锛屽瓨鍌ㄨ嫳鏂囩殑鏃跺欐暟閲忎笂浼氭湁鎵鎹熷け銆傚缓璁函鑻辨枃鍜屾暟瀛楃敤char/varchar锛屾湁涓枃浣跨敤nvarchar銆傚浜 MyISAM 瀛樺偍寮曟搸鐨勮〃锛屽敖閲忎娇鐢 char 锛屽浜庣粡甯搁渶瑕佷慨鏀硅屽舰鎴愮鐗囩殑myisam鏁版嵁琛ㄦ洿鏄姝わ紝瀹冪殑缂虹偣鏄崰鐢ㄧ鐩樼┖闂淬傚浜 ...
  • 璧勬枡搴撲腑varchar銆乶varchar銆乧har鍌ㄥ瓨瀛楀厓銆佹暟瀛椼佹眽瀛楃殑瀹归噺鍖哄埆
    绛旓細涓鑸潵璇村鏋滃惈鏈変腑鏂囧瓧鍏冿紝鐢╪varchar锛屽鏋滅函鑻辨枃鍜屾暟瀛楋紝鐢╟har/varchar銆傝祫鏂欏簱(Database)鏄寜鐓ц祫鏂欑粨鏋勬潵缁勭粐銆佸偍瀛樺拰绠$悊璧勬枡鐨勪粨搴擄紝瀹冧骇鐢熶簬璺濅粖鍏崄澶氬勾鍓嶏紝闅忕潃璧勮绉戞妧鍜屽競鍦虹殑鍙戝睍锛岀壒鍒槸浜屽崄涓栫邯涔濆崄骞翠唬浠ュ悗锛岃祫鏂欑鐞嗕笉鍐嶄粎浠呮槸鍌ㄥ瓨鍜岀鐞嗚祫鏂欙紝鑰岃浆鍙樻垚浣跨敤鑰呮墍闇瑕佺殑鍚勭璧勬枡绠$悊鐨勬柟寮忋...
  • mysql涓璫har,varchar涓text绫诲瀷鐨勫尯鍒鍜岄夌敤
    绛旓細杩欐牱灏辫兘鏈夋晥鐨勫噺灏戞暟鎹簱鏂囦欢鐨勫ぇ灏忋傦紙3锛塼ext:涓巆har鍜寁archar涓嶅悓鐨勬槸锛宼ext涓嶅彲浠ユ湁榛樿鍊硷紝鍏舵渶澶ч暱搴︽槸2鐨16娆℃柟-1 鎬荤粨璧锋潵锛屾湁鍑犵偣锛氱粡甯稿彉鍖栫殑瀛楁鐢╲archar 鐭ラ亾鍥哄畾闀垮害鐨勭敤char 灏介噺鐢╲archar 瓒呰繃255瀛楃鐨勫彧鑳界敤varchar鎴栬卼ext 鑳界敤varchar鐨勫湴鏂逛笉鐢╰ext ...
  • 扩展阅读:char和varchar的区别在于 ... 数据库char和varchar ... nvarchar与varchar区别 ... char和varchar联系 ... varchar和nvarchar转换 ... char与varchar2类型的区别 ... varchar和char的使用场景 ... char比varchar快 ... char和varchar数据类型区别 ...

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