字段類型分別爲:數值類型、字符串類型、日期時間類型。ci
數值類型分爲整數類型和小數類型。整數類型爲tinyint、smallint、mediumint、int、bigint。小數類型分爲浮點型和定點型,有float、double、decimal。字符串
迷你整形,系統採用1個字節來保存。最大能表示的值爲0-255(2^8 - 1)效率
小整形,系統採用2個字節來保存。最大能表示的值爲0-65535(2^16 – 1)。date
中整形,系統採用3個字節來保存。最大能表示的值爲2^24 – 1。數據類型
整形,系統採用4個字節來保存。最大能表示的值爲2^32 – 1。語法
大整形,系統採用8個字節來保存。最大能表示的值爲2^64 – 1。二進制
float又稱之爲單精度類型,系統採用4個字節來保存。可是能表達的範圍要比整形大的多,大概是10^38。單精度浮點,精確到大約爲7位。float
double又稱之爲雙精度類型,系統採用8個字節來保存。表示的範圍更大,大概是10^308。精度爲大約15位。im
decimal又稱之爲定點數,系統自動根據存儲的數據來分配存儲空間。大概9個數就會分配4個字節來存儲,同時小數位和整數位是分開保存的。時間戳
decimal(M, D):M表示總長度,最大值不能超過65,D表明小數部分長度,最長不能超過30。
定長字符,指定長度以後,系統會分配指定的空間用於存儲數據。
基本語法:char(L),L表明字符數(英文和中文同樣),L爲0-255。
變長字符,指定長度後,系統根據實際存儲的數據來計算長度,分配合適的長度(數據沒有超出長度)。
基本語法:varchar(L),L表明字符數,L的理論長度爲0-65535。
由於varchar要記錄數據長度,因此每一個varchar數據產生後,系統都會在數據後面增長1-2個字節的額外開銷,是用來保存數據所佔用的空間長度。
char和varchar的區別:
char必定會使用指定的空間,而varchar是根據數據來定空間。
char的數據查詢效率比varchar高。varchar是須要經過後面的記錄數來計算的。
普通的字符文本。
在選擇字符存儲的時候,若是數據超過255個字符,那麼必定選擇text存儲。
在選擇對應的存儲文本的時候,不用刻意去選擇text類型,系統會自動根據存儲的數據長度來選擇合適的文本類型。
枚舉類型。
語法:enum(數據值1,數據值2…)
空間:若是數據值列表在255個之內,那麼一個字節就夠,若是超過255可是小於65535,那麼系統採用兩個字節保存。
集合:是一種將多個數據選項能夠同時保存的數據類型,本質是將指定的項按照對應的二進制位來進行控制:1表示該選項被選中,0表示該選項沒有被選中。
語法:set(‘值1’,’值2’,’值3’…)
系統爲set提供了多個字節進行保存,可是系統會自動計算來選擇具體的存儲單元
1個字節:set只能有8個選項
2個字節:set只能有16個選項
3個字節:set只能表示24個選項
8個字節:set能夠表示64個選項
Set和enum同樣,最終存儲到數據字段中的依然是數字而不是真實的字符串
日期類型,系統採用3個字節來保存,對應的格式爲YYYY-mm-dd,能表示的範圍是1000-01-01到9999-12-12。初始值爲0000-00-00
時間類型,可以表示某個指定的時間,系統採用3個字節來保存。對應的格式爲HH:ii:ss,可是MysQL中time能表示的範圍要大的多,能表示-838:59:59-838:59:59。用處是描述時間段。
日期時間類型,就是將前面的date和time合併起來,表示的時間,使用8個字節來保存。
格式爲:YYYY-mm-dd HH:ii:ss,能表示的區間爲1000-01-01 00:00:00到9999-12-12 23:59:59,其值能夠爲0值:0000-00-00 00:00:00
時間戳類型,表示從格林威治時間開始。
格式爲:YYYY-mm-dd HH:ii:ss。其值表示的區間爲:1970-01-01 00:00:00 到 2038-01-19 03:14:07
年類型,採用1個字節來保存。能表示1900-2155。