1. 程式人生 > >[每日更新-MySQL基礎]5.常用的數據類型-整數和字符串

[每日更新-MySQL基礎]5.常用的數據類型-整數和字符串

mysql 手動 適合 bcd 長度 tom 更多 表示 字符串類

1. 數據類型

在學習PHP的時候我們已經講過數據類型了,所謂數據類型就是數據的格式。每一種數據類型在計算機中存儲的方式會有差異,占用的存儲容量也有區別,所以選擇合適的數據類型可以節約我們的存儲成本,也方便我們的程序運行和開發效率。


1.1 整數類型

表示:int

在PHP中,要存儲一個整數類型需要4個字節,在MYSQL中,這個Int是可以手動指定的,它根據你選擇的長度來計算使用的字節數。標準的整數類型也是4個字節。


在定義表的時候,如果選擇了int型,那麽需要設置一個長度,根據長度會自動將該字段的容量定下來,不能存儲超過容量的數據。


所以在考慮字段的時候,我們要知道要存儲的數據最大是多少,按照最大的數字選擇存儲的長度。一旦選擇了,空間就被固定了!


整數包含正整數和負整數。但MySQL中也可以只存儲正整數。也就是沒有負數,最小是就是0,使用unsigned屬性,可以讓字段變成沒有負數的字段。




1.2 小數類型

表示:float/double/decimal

在mysql中,浮點型和定點型可以用類型名稱後加上M/D來表示值的長度,M代表值的總長度,D表示小數點後的位數。M和D又稱之為精度和標度。如:float(5,2)表示:精度為5,小數點後有2位,則最大值就是:999.99。假設我們存入的數據是(100.009)那麽這個值不滿足我們存儲的要求(5,2)所以它會將值進行四舍五入,變成(100.01)來存儲。


註意: 在mysql中 float 和double在不指定精度的時候,默認以實際的精度顯示,而decimal在不指定精度的時候,默認整數部分10,小數部分0


在PHP中小數沒有單雙精度的區別,而在MYSQL中有,

float占用4個字節,屬於單精度

double占用8個字節,屬於雙精度


需要註意的是,計算機都不能很好的處理小數,他們保存的都是近似值,所以最好不要拿小數進行精確計算和精確比較。


小數也有正小數和負小數,也可以通過unsigned來去除符號。



1.3 字符串類型

表示:char/varchar/text


1.3.1 char

定長的字符串類型。申明:char(長度值)

一旦定義長度,不管存儲的字符夠不夠這麽長,都存儲這麽多字節、所以在使用的時候,要考慮到存儲的數據長度會不會變化,如果需要變化,那麽char類型就不適合你。


1.3.2 varchar

可變長度的字符串

varchar類型是用得比較多的一種類型,它可以根據數據的內容長度來改變存儲的字節數。在申明的時候,同樣需要傳入一個長度如:varchar(255),255表示最長可以存儲255,但是如果沒有這麽多的話,存儲的時候就不會占用更多的存儲空間。


註意:varchar會額外拿出一到兩個字節來存儲數據的真實長度,所以存儲:abcd的時候,占用的空間會是:4+1,這裏的1是用來存儲數據真實長度的。


如果數據的長度超過255個字符,那麽存儲真實長度的空間就會變成2.

varchar類型可以存儲65535個字符。


那char和varchar應該如何選擇呢?

char類型: 計算更加快速

varchar類型: 更節省空間。


根據你的需要自己決定。



1.3.3 text

text用來存儲更大類型的字符串。

它也是變長的。所以我們建議大家,將長度大於255的字符串都存為text類型。

對應的text類型有4個:

tinytext text mediumtext longtext

依次存儲的長度不一樣,根據自己的需要去選擇,一般情況下,一篇文章,使用text類型已經足夠了。









[每日更新-MySQL基礎]5.常用的數據類型-整數和字符串