MySQL數據庫常見的數據類型


MySQL提供的數據類型包括數值類型(整數類型和小數類型)、字符串類型、日期類型、復合類型(復合類型包括enum類型和set類型)以及二進制類型 。

1,整數類型:

整數類型的數,默認情況下既可以表示正整數又可以表示負整數(此時稱為有符號數)。如果只希望表示零和正整數,可以使用無符號關鍵字“unsigned”對整數類型進行修飾。

例如:score tinyint unsigned

各個類別存儲空間及取值范圍。

 2,小數類型

decimal(length, precision)用於表示精度確定(小數點后數字的位數確定)的小數類型,length決定了該小數的最大位數,precision用於設置精度(小數點后數字的位數)。 例如: decimal (5,2)表示小數取值范圍:999.99~999.99 decimal (5,0)表示: -99999~99999的整數。

3,字符串

char()與varchar(): 例如對於簡體中文字符集gbk的字符串而言,varchar(255)表示可以存儲255個漢字,而每個漢字占用兩個字節的存儲空間。假如這個字符串沒有那么多漢字,例如僅僅包含一個‘中’字,那么varchar(255)僅僅占用1個字符(兩個字節)的儲存空間;而char(255)則必須占用255個字符長度的存儲空間,哪怕里面只存儲一個漢字。

4,日期類型。

date表示日期,默認格式為‘YYYY-MM-DD’; time表示時間,格式為‘HH:ii:ss’; year表示年份; datetime與timestamp是日期和時間的混合類型,格式為'YYYY-MM-DD HH:ii:ss'

 

 

 

datetime與timestamp都是日期和時間的混合類型,區別在於: 表示的取值范圍不同,datetime的取值范圍遠遠大於timestamp的取值范圍。 將NULL插入timestamp字段后,該字段的值實際上是MySQL服務器當前的日期和時間。 同一個timestamp類型的日期或時間,不同的時區,顯示結果不同。

 5,復合類型。

MySQL 支持兩種復合數據類型:enum枚舉類型和set集合類型。 enum類型的字段類似於單選按鈕的功能,一個enum類型的數據最多可以包含65535個元素。 set 類型的字段類似於復選框的功能,一個set類型的數據最多可以包含64個元素。

 6,二進制類型。

二進制類型的字段主要用於存儲由‘0’和‘1’組成的字符串,因此從某種意義上將,二進制類型的數據是一種特殊格式的字符串。 二進制類型與字符串類型的區別在於:字符串類型的數據按字符為單位進行存儲,因此存在多種字符集、多種字符序;而二進制類型的數據按字節為單位進行存儲,僅存在二進制字符集binary。

7,選擇合適的數據類型。

選擇合適的數據類型,不僅可以節省儲存空間,還可以有效地提升數據的計算性能。

(1)在符合應用要求(取值范圍、精度)的前提下,盡量使用“短”數據類型。

(2)數據類型越簡單越好。

(3)在MySQL中,應該用內置的日期和時間數據類型,而不是用字符串來存儲日期和時間。

(4)盡量采用精確小數類型(例如decimal),而不采用浮點數類型。使用精確小數類型不僅能夠保證數據計算更為精確,還可以節省儲存空間,例如百分比使用decimal(4,2)即可。

(5)盡量避免NULL字段,建議將字段指定為NOT NULL約束。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM