More  

小編的世界 優質文選 資料

mysql中varchar(n)中的n到底是指的什麼


2020年8月10日 - 資料小編 軟件開發領路人 
   

科技達人,優質創作者

varchar就是mysql數據庫中定義列為字符串的一種數據類型。使用varchar定義列時需要指定這個列存放數據的長度上限,就可以通過varchar(n)中的n來實現。

但是這個n,有的說是字節數,存放英文和漢字時會有不同的效果。而有的又說是字符數。那究竟是什麼呢。

實際操作一下試試看吧。先創建一張表。

這張表中tname列設置的是varchar(7)。

我的數據庫設置的模式是如果數據超出列設置的長度,則截短到符合列設置的長度並給出警告,而不是報錯。

我們來執行下面的sql看看最終執行效果就可以看出來varchar(n)中的n到底是指的什麼了。

四條插入語句,兩條是插入英文字母的,兩條是插入中文的。

看執行結果是插入了4條數據,但是產生了2條警告,警告的內容是tname列的數據被截斷了。

再來看看數據。

可以看到,不論是英文字母,還是中文漢字超出7個字符的都只保留了7個字符。那看來這個varchar(n)中的n指的是字符數了。

那varchar(n)中的n指的是字節數這種說法是錯的嗎?其實也不是錯誤的。這種說法是對於早期版本(4.0版本及以下)而言的。到了5.0版本開始就是這個n指的就是字符數了。

好了,今天的內容就到這裏了。有問題、意見建議的朋友歡迎評論或私信告訴我。

  大家在看