mysql 建立varchar型別時候括號裡最大能寫幾

2021-12-26 00:18:20 字數 2567 閱讀 1346

1樓:匿名使用者

varchar 欄位是將實際內容單獨儲存在聚簇索引之外,內容開頭用1到2個位元組表示實際長度(長度超過255時需要2個位元組),因此最大長度不能超過65535。

編碼長度限制

字元型別若為gbk,每個字元最多佔2個位元組,最大長度不能超過32766;

字元型別若為utf8,每個字元最多佔3個位元組,最大長度不能超過21845。

所以這個你還得自己試試,看多大的時候報錯

2樓:匿名使用者

[national] varchar(m) [binary]

變長字串。m 表示最大列長度。m的範圍是0到65,535。

(varchar的最大實際長度由最長的行的大小和使用的字符集確定。最大有效長度是65,532位元組)。

註釋:mysql 5.1遵從標準sql規範,並且不刪除varchar值的尾部空格。

varchar是字元varying的簡寫。

binary屬性是指定列的字符集的二元 校對規則的簡寫。排序和比較基於數值字元值。

varchar儲存時用一個位元組或兩個位元組長的字首+資料。如果varchar列宣告的長度大於255,長度字首是兩個位元組。

mysql varchar()最大能定義多少,varchar(2000)正確嗎

3樓:仙人掌的憂傷

mysql5.0版本以前,varchar()最大能定義255。5.

0以上版本支百持65535位元組長度,utf8編碼下最多支援21843個字元度(不為空)。mysql5.0版本以前,varchar(2000)不正確,5.

0以上版本正確。

如果某個資料列裡包含許多重複的值,就算為它建立了索引也不會有很好的效果。比如說,如果某個資料列裡包含的淨是些諸如 「0/1」 或 「y/n」 等值,就沒有必要為它建立一個索引。

4樓:少年真奇妙

就中文漢字來說,utf8佔3個位元組 ,gbk佔2個位元組。varchar(n),這裡的n代表n個字元。

mysql表中欄位總長度可以有65535個位元組,意思就是 如果一個表只有varchar(n)這麼一個欄位,而且是utf8的話,那麼這個欄位最大可以有65535個位元組的長度,差不多n=65585/3的字元。

為什麼說差不多。因為varchar在儲存的時候,會另加一個位元組來記錄長度(如果列宣告的長度超過255位元組,則使用兩個位元組,剛好2的8次方是255,超過255就只能用2個位元組16位來記錄了)。

如果表中有個char(10)和varchar(n)的話,那麼就就這樣,n的最大值=65535-10*3,我是這麼算的, 雖然最後差1-2個位元組,不過不用這麼在意吧?除非你有強迫症。呵呵!

英文的話 兩種都是一個字母是1個位元組。能放多少個可以自己測試的,其中的編碼知識,值得研究,但是不值得深究,我感覺太鑽牛角尖了。

解決你的問題應該沒難度了,char最大才是255個字元,不論什麼編碼。

varchar(255),能存放多少還要看這個表中其他欄位佔掉多少的長度,和編碼格式,才能算出來,我上面已經給出演算法過程了。你慢慢理解。

我的傳送門

5樓:匿名使用者

varchar 在5.03以前長度可以為0~255, 之後是65535

varchar(2000)正確

varchar(255) 大概可以存255位元組的字串, 中英文佔位不同, 字元數也不同

6樓:匿名使用者

你不會檢視mysql手冊嗎?每個變數的範圍不會查嗎?

7樓:匿名使用者

varchar255不是這個意思....你真的要去看看基礎基礎

mysql varchar的最大長度到底是多少

mysql中的varchar 如何設定最大長度 10

8樓:匿名使用者

mysql varchar(50) 不管中文 還是英文 都是存50個的

mysql5的文件,其中對varchar欄位型別這樣描述:varchar(m) 變長字串。m 表示最大列長度。

m的範圍是0到65,535。(varchar的最大實際長度由最長的行的大小和使用的字符集確定,最大有效長度是65,532位元組)。

為何會這般變換?真是感覺mysql的手冊做的太不友好了,因為你要仔細的繼續往下讀才會發現這段描述:mysql

5.1遵從標準sql規範,並且不刪除varchar值的尾部空格。varchar儲存時用一個位元組或兩個位元組長的字首+資料。

如果varchar列宣告的長度大於255,長度字首是兩個位元組。

好了,貌似懂了一點。但具體他說的長度大於255時使用2個位元組長度字首,小學減法題:65535 - 2 = 65533啊。不知道這些大牛如何計算的,暫且保留疑問吧?

注:我測試了一下使用utf8編碼,varchar的最大長度為21854位元組。

在mysql 5.0.45版本,資料庫編碼utf8下進行測試:varchar最長定義為21785。也就是說不論字母、數字、漢字,只能放21785個。

在mysql當中建立索引有什麼限制

mysql索引型別包括 一 普通索引 這是最基本的索引,它沒有任何限制。有以下幾種建立方式 1.建立索引 如下 create index indexname on mytable username length 如果是char,varchar型別,length可以小於欄位實際長度 如果是blob和t...

進入linu下mysql怎麼建立資料庫

直接輸入mysql進入?這個賬戶一般是沒許可權的,只能在test庫裡有許可權 輸入mysql use test create table abc id int 你建表的語法錯了,需要加上欄位型別,你可以參考我給的例子 跟windows的mysql一樣啊,不過linux下資料庫的名字區分大小寫 cre...

C 怎麼用new建立類物件,C 用new建立類物件問題

你是在類b的內部建立類a的物件麼?那非常簡單,在類b的內部寫 private還是public塊都行,專根據具體情況 屬 a a 或者a a new a 當然前提是a的建構函式是無參的,如果有引數要寫上實參如果是說你的類b繼承了類a 即類b是類a的派生類 你想用new建立上轉型物件,就成了 a a n...