日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

char varchar java_在数据库中varchar与char的区别

發(fā)布時間:2023/12/4 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 char varchar java_在数据库中varchar与char的区别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

char是固定長度類型

varchar是可變的長度類型

char和varchar類型相似,但是它們的存儲和檢索方式不同。在MySQL5.0.3,它們在最大長度和是否保留尾部空格也不相同。

char和varchar定義了字符串的最大長度。例如,char(30)可以放30個字符。

char列的長度在你建表的時候,就是你定義的固定長度。值的范圍是0~255。char值存儲的時候,右部以空格來填充到指定的長度。當檢索char的時候,會自動去掉尾部的空格。

varchar列是變長的。在MySQL5.0.3之前可以定義的長度是0~255,之后可以定義到0~65535。在MySQL5.0.3及以后的版本中varchar列的有效長度,受行的最大值和使用的字符限制。

對比char,varchar,加上前綴的數(shù)據(jù)長度是當做一個字節(jié)還是兩個字節(jié)存儲。這個前綴的長度表明了值的字節(jié)數(shù)。如果值不超過255的話,這個列用一個字節(jié)的長度,如果這個值可能超過255個字節(jié),那么就使用兩個字節(jié)的長度。

如果嚴格的SQL模式?jīng)]有啟用,你分配了一個char或者varchar列超出了列的最大長度,那么這個值就會被截短以填充列,這時候就會產(chǎn)生一個警告。對于截短的非空格字符,你可以設(shè)置嚴格的SQL模式,來產(chǎn)生一個錯誤。

對于varchar列來說,SQL模式在啟用的時候,大量的尾部空格在插入之前都會被截短,產(chǎn)生一個警告。對于char列來說,不管SQL模式是否被啟用,都會靜默地去掉插入值的過量的尾部空格。

varchar值存儲的時候是不會填充的。如何處理尾部空格,取決于版本。在MySQL5.0.3中,當值存儲和檢索的時候,保留尾部空格,和標準的SQL保持一致。在MySQL5.0.3之前,值被保存到varchar列的時候,尾部空格會被剔除。這樣也就意味著檢索值的時候,也不存在這些空格。

在MySQL5.0.3之前,如果你需要一個不去掉尾部空格的數(shù)據(jù)類型的時候,要考慮BLOB或者TEXT類型。同樣當你存儲加密數(shù)據(jù)或者壓縮數(shù)據(jù)的時候,也要使用BLOB列,而不是char或者varchar列,來避免需要改變值的時候,尾部空格的潛在問題。

下面的表格來說明char和varchar的存儲方式和顯示結(jié)果的差別。(假設(shè)列用的很簡單的字符,使用latin1編碼)

總結(jié)

以上是生活随笔為你收集整理的char varchar java_在数据库中varchar与char的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。