MySQL 資料型別

2021-07-30 08:56:08 字數 2945 閱讀 4912

mysql的數值資料型別包括整數、定點數、浮點數、和位值。除bit之外的數值型別既可以帶正負符號,也可以不帶正負符號。

字串可以容納任何東西,包括影象和聲音等各種二進位制資料。字串可以彼此比較,而比較操作又分為區分字母大小寫和不區分字母大小寫兩種情況。此外,你還可以對字串進行模式匹配。(事實上,mysql的數值型別也允許進行模式匹配,只不過字串資料型別上的模式匹配操作更多見一些)

cc、yy、mm、dd、hh、mm和ss分別代表世紀、年、月、日、時、分、秒。mysql提供的時間類列型別有:日期與時間(合併表示或分開表示)、時間戳(一種專門用來記載某資料記錄最近一次修改時間的型別)。此外,為了方便不需要完整日期而只需要年份數值的場合,mysql還準備了乙個year型別

這裡展現了各種幾何值和位置值

mysql的數值資料型別分為3大類,如下所示。

♢精確值型別,它包括整數型別和decimal。整數型別用來存放沒有小數部分的數值,如43、-3、0、-75123等。只要是能夠用整數來表示的資料,都可以用乙個整數型別的資料列來儲存。decimal型別儲存的精確值可以有乙個小數部分,如3.14159、-.00273、-4.78等。這種資料型別非常適合用來儲存財務金額資料。只要有可能,進入資料庫的整數和decimal值就會和你錄入的完全一樣,不存在四捨五入的問題,用它們進行的計算也是精確的。

♢浮點型別,它細分為單精度(float)和雙精度(double)。這些型別和decimal型別一樣,也可以用來存放有小數部分的數值,但他們容納的是可能發生四捨五入的近視值,如3.9e+4或-0.1e-100。如果數值精確度的要求不那麼嚴格或是數值大到decimal型別無法表示,浮點型別會是不錯的選擇。諸如糧食平均畝產、空間距離、失業率之類的資料都很適合用浮點值來儲存。

♢bit型別用來儲存位字段值(bit-field value)

m表示整數型別的最大顯示寬度、浮點型別和decimal型別的精度(小數點後面的數字)以及bit型別的位數。對於那些有小數部分的資料型別,d代表數學精確度(小數點後面的數字個數),也稱為「小數精度」(scale)。

字串可以用來表示任何一種值,從這個意義上講,它可以說是最常用的型別之一。比如說,你可以用二進位制字串型別來儲存二進位制資料,如影象、聲音、gzip壓縮工具的輸出結果等。

m代表資料列值的最大長度(二進位制字串以位元組為單位,非二進位制字串以字元為單位),l代表某給定值以位元組計算的實際長度,w是相關字符集裡最「寬」的字元所占用的位元組數。blob和text型別各有幾種變體,它們之間的主要區別在於他們所能容納的字串值的最大尺寸。

有些型別用來儲存二進位制字串(位元組串),其他型別用來儲存非二進位制字串。因此,上表裡列出的最大尺寸對二進位制字串型別來說是位元組數,對非二進位制字串來說是字元數。比如說,binart(20)容納20個位元組,而char(20)容納20個字元(由多位元組字元構成的字串長度肯定會超過20個位元組)。每一種二進位制字串型別都有一種對應的非二進位制字串型別,如下所示

binary和char是固定長度的字串型別。對於這兩種型別的資料列,mysql講為每個值分配同樣數量的儲存空間,如果某個值比資料列的長度短,則在其尾部新增一些零值位元組(0x00,binary型別)或空格(char型別)以補足之。

在對日期/時間值進行修改時,如果你插入的是乙個非法值,mysql就會把它替換為相應的零值。如下所示各種零值,它們同時也是被宣告為有not null屬性的日期/時間資料列的預設值。如果啟用了sql模式,非法值將導致mysql丟擲乙個錯誤並拒絕它們進入資料庫

對於日期加時間形式的組合值,可以在日期和時間之間使用字母『t』來代替空格作為分隔符(例如:』2008-12-3t12:00:00』)。

如果儲存毫秒部分,毫秒部分講被刪除。

檢索時,可以利用data_format()和time_format()函式以各種各樣的格式來顯示日期和時間值。

♢timestamp資料型別

timestamp資料型別用來儲存日期和時間的組合值。

timestamp型別把即將進入2023年的那一刻作為它的取值範圍下限值,上限值對應著4個位元組所能表示的unix時間的極限。

timestamp值以utc(世界標準時間)格式存放。當你儲存乙個timestamp值的時候,伺服器會把它從連線的時區轉換為utc的時間值。當你檢索這個值的時候,伺服器又會把它從utc時間值轉換回連線的時區,讓你看到的時間值和你儲存的一樣。不過如果另乙個客戶使用另乙個時區去連線伺服器並檢索這個值,它講看到按照它自己的時區轉換而來的值。

timestamp型別具備自動初始化和自動更新屬性。

見概述文章內容詳見《mysql技術內幕(第四版)》

mysql資料型別用法 mysql資料型別和用法

歡迎進入linux社群論壇,與200萬技術人員互動交流 進入 mysql支援多種列型別 數值型別 日期 時間型別和字串 字元 型別。本章首先對這些列型別進行了概述,然後更加詳細地描述了各種列的型別,以及列型別儲存需求的總結。概述很簡單。關於具體列型別 歡迎進入linux社群論壇,與200萬技術人員互...

mysql 資料型別 真假 MySQL 資料型別

mysql基礎 資料型別 整型型別 根據所儲存的整數數值取值範圍不同,可分為以下五類 1 tinyint佔1個位元組 2 smallint佔2個位元組 3 mediumint 佔3個位元組 4 int佔4個位元組 5 bigint佔8個位元組 根據每種型別所佔的位元組數可確定其無符號整數和有符號整數...

mysql 郵箱 資料型別 mysql 資料型別

1 整型mysql資料型別含義 有符號 tinyint m 1個位元組 範圍 128 127 smallint m 2個位元組 範圍 32768 32767 mediumint m 3個位元組 範圍 8388608 8388607 int m 4個位元組 範圍 2147483648 21474836...