實際上VARCHAR資料型別以單字節和多位元組字元儲存變長字元資料。此資料型別的語法為VARCHAR(n),其中n為最大字元數,必須指定在建立表格時。在 MySQL 5.03 之前,n 的值可以在 0 到 255 的範圍內,但在 MySQL 5.03 及之後,該值可以在 0 到 65,535 的範圍內。
最大字元數儲存在 VARCHAR 中取決於最大行大小和使用的字元集。如果我們使用 ASCII 字元集,那麼它可以儲存 65,535 個字符,因為 ASCII 每個字元使用 1 個位元組。另一方面,如果我們使用 utf8 字元集,則字元限制將為 21,844,因為 utf8 每個字元將使用 3 個位元組。最大行大小限制為 65,535 字節,這意味著包括所有列在內,行大小不得超過 65,535 位元組。
mysql> Create Table var_test(FName Varchar(32765) NOT NULL, LName Varchar(32766) NOT NULL); Query OK, 0 rows affected (0.25 sec)
上面的查詢建立了一個包含兩個欄位的表格:FName Varchar(32765) 和 LName Varchar(32766)。因此總長度為32765 2 32766 2=65535(每列使用2個位元組來儲存長度)。
mysql> Create Table var_test1(FName varchar(32766) NOT NULL, LName Varchar(32766) NOT NULL); ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs
現在,當長度增加 1 個位元組時,MySQL 將傳回一個錯誤,如上面的查詢所示。
以上是MySQL VARCHAR 資料列的最大長度是多少?的詳細內容。更多資訊請關注PHP中文網其他相關文章!