sql语句 int(11)含义误区
生活随笔
收集整理的這篇文章主要介紹了
sql语句 int(11)含义误区
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用sql中 int(11)存儲手機號錯誤!!!!
?
這些類型,是定長的,其容量是不會隨著后面的數字而變化的,其值的范圍是確定的。
比如int(11)和int(8),都是一樣的占4字節。tinyint(1)和tinyint(10)也都占用一個字節。
那么后面的11和8,有啥作用呢?
數據類型(m)中的m不是表示的數據長度,而是表示數據在顯示時顯示的最小長度。tinyint(1) 這里的1表示的是 最短顯示一個字符。tinyint(2) 這里的2表示的是 最短顯示兩個字符。
手機號的本質是字符串而不是數字,只是恰巧長得像數字而已。
char(32):(char的長度可選范圍在0-255字符之間。也就是char最大能存儲255個字符.)
| 占用空間 | 固定 32 字符(如果數據長度不夠 32 將在右邊用空格補齊,以達到指定的長度) |
| 空格處理 | 檢索時會去掉尾部空格(數據本身有空白符也會被去掉) |
| 是否記錄字段長度 | 否 |
| 適用場景 | 存儲的數據長度基本一致,不需要空格,eg 手機號、UUID、密碼加密后的密文 |
?varchar(32):在mysql5.0.3之前varchar的長度范圍為0-255字符,mysql5.0.3之后varchar的長度范圍為0-65535個字符.
| 占用空間 | 跟隨實際存儲內容長度,但不超過 32 |
| 空格處理 | 不會對空格處理 |
| 是否記錄字段長度 | 是。額外拿出空間記錄字段數據長度(字符數) |
| 適用場景 | 數據長度不一定,長度范圍變化較大的場景 |
參考自:mysql存儲手機號為什么不用bigint?_韓旭051的博客-CSDN博客?
mysql中的varchar(10)和 int(11)是什么意思?_高高的博客-CSDN博客
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的sql语句 int(11)含义误区的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++基础10-类和对象之友元函数
- 下一篇: 爬虫5-BeautifulSoup模块简