我們知道varchar是一個可變長度的數據類型,那麼mysql中的varchar(3)和varchar(300)有什麼區別?varchar(3)和varchar(300)之間的區別
-5
A
回答
3
SQL中的varchar
是一個長度不等的字符串。傳統上,您需要爲此字符串指定一個上限。這裏有一些事情要了解varchar
:
- 字符串這比規定的限制短不佔用額外的空間:他們只佔用所需的空間。
- 如果字符串長於限制,整個記錄都會被拒絕,當您嘗試
INSERT
記錄時,以及當您嘗試記錄UPDATE
時。 - 傳統上upper上限爲255個字符。現代數據庫不再有這個限制。
- 某些數據庫(如PostgreSQL)建議您不再以此方式指定長度。相反,他們建議使用無限串(不帶長度的
varchar
),並使用CHECK CONSTRAINT
代替限制。 - 大多數現代數據庫比以往更有效地處理字符串,因此對字符串大小的限制較少。
簡短的回答你的問題是,無論varchar(3)
和varchar(300)
有限長度的字符串,都將允許不受處罰短字符串。不過很明顯一個是比其他短。
1
除了@Manngo's answer,varchar(300)
,因爲它的最大超過255從the MySQL docs具有開銷比varchar(3)
一個額外的字節...
相較於CHAR,VARCHAR值存儲爲1字節或2字節長度的前綴加數據。長度前綴表示該值中的字節數。如果值不超過255個字節,則列使用一個長度字節,如果值可能需要超過255個字節,則使用兩個長度字節。
基本上,必須存儲字符串的長度。 1個字節只能容納0到255,所以2個字節來存儲長度可以達到300
假設我想在我的那個場景中柱插入單個字符之間有什麼區別兩個??爲什麼我們使用varchar(1)爲什麼不使用varchar(100)?
如果列只應該永遠保存單個字符,使用char(1)
,單字節,以保證數據的完整性(varchar(1)
是兩個字節)。這可確保使用該列的任何人只會獲得他們期望的內容,而不必進行自己的數據驗證。
由於varchar
的大小僅爲最大值,因此指定較小的值不會使該表使用更少的磁盤(除非如上所述大約> 255)。避免爲列添加任意限制和業務規則。例如,如果您要存儲網址或電子郵件地址,幾乎沒有理由不允許varchar(255)
。基於業務規則和用戶體驗問題的限制應該在更高的層次上進行,而不受數據庫模式的限制。
相關問題
- 1. varchar(5)和varchar(5000)之間的區別?
- 2. MySQL - Char和Varchar之間的區別?
- 3. SQL中的varchar和varchar2之間的區別
- 4. MySQL優化 - VARCHAR WHERE和MEDIUMINT之間的區別
- 5. SQL Server 2008 R2中ntext和varchar之間的區別
- 6. TEXT和VARCHAR數據字段之間的區別是什麼?
- 7. IBM DB2 9.7,內聯CLOB和VARCHAR之間的區別?
- 8. 150 tinyints或one varchar(300)?
- 9. varchar和text有什麼區別?
- 10. 當我們存儲長度小於10的字符串時,varchar(10)和varchar(1000)之間是否有區別?
- 11. Clojure(3)和3之間的區別
- 12. 整數和varchar之間的MySQL差異
- 13. int和varchar之間的隱式轉換
- 14. 區別(3)中[[]] * 3和[[]]之間的區別]
- 15. mysql_field_type區分varchar和文本
- 16. ASP.NET MVC 3和4之間的區別?
- 17. ASP.NET MVC 1和3之間的區別
- 18. Rails 3:Relation.count和Relation.ount.count之間的區別
- 19. Where和Where中的Int和Varchar(SQL Server)的區別?
- 20. varchar時間
- 21. NVARCHAR到VARCHAR之間的轉換
- 22. sqlalchemy的數據類型中的Varchar和String有什麼區別?
- 23. CockroachDB中TEXT,CHAR和VARCHAR的區別是什麼?
- 24. VARCHAR(254)vs VARCHAR(255)
- 25. Varchar(255)到Varchar(MAX)
- 26. 是否varchar(max)= varchar?
- 27. varchar(20)和varchar(50)是否一樣?
- 28. 比較MySQL varchar和IBM DB2 varchar dataype
- 29. mysql像textfield和varchar varchar只返回
- 30. 查詢varchar日期與之間
297個字符。 –
你的問題不清楚。你真的不明白3和300之間的區別嗎? –
假設我想在我的列中插入單個字符,那麼兩者之間的區別是什麼?爲什麼我們使用varchar(1)爲什麼不使用varchar(100)? –