mysql的數據類型包括整數類型,浮點數類型,定點數類型,日期和時間類型,字符串類型和二進制數據類型。mysql
1.整數類型:sql
整數類型是數據庫中最基本的數據類型,mysql共支持6種整數類型,分別是:數據庫
整數類型 | 字節數(byte) |
tinyint | 1 |
smallint | 2 |
mediumint | 3 |
int | 4 |
integer | 4 |
bigint | 8 |
其中1byte=8bit,由此能夠算出每一個整數類型的取值範圍,例如int,共有4byte=32bit,那麼無符號的取值範圍爲2^8-1ide
mysql 支持數據類型的名稱後面跟上指定該類型的顯示寬度。形勢以下:spa
數據類型(顯示寬度)ci
在整數類型中,能夠使用zerofill參數,來補全數字顯示不足的空間字符串
2.浮點數類型,定點數類型it
浮點數類型用來表示小數,包括float型和double型。定點數類型就是decimal型。table
數據類型 | byte |
float | 4 |
double | 8 |
decimal(m,d) | m+2 |
m是精度,表示數據類型的總長度,小數點不佔位class
d是標度,表示小數點後面的長度。
若是插入值的精度高於實際定義的精度,系統會自動進行四捨五入處理,float和double四捨五入時不會報錯,而decimal則會有警告。
3.日期與時間型
數據類型 | 字節數 | |
year | 1 | |
date | 4 | |
time | 3 | |
datetime | 8 | |
timesamp | 4 | |
每種日期和時間都有一個有效的範圍,其中
year :1901~2155
year還能夠用兩位數表示,‘00’~69’轉換爲2000~2069,‘70’~‘99’轉換成1970~1999,‘0’和‘00’的效果是同樣的。可是,2位數字跟2位字符串的效果是不同的,若是輸入數字0則轉換爲0000,若是輸入字符串‘0’則會轉換成2000
time:-838:59:59~838:59:59
time顯示類型hh:mm:ss。 也支持 ‘d hh:mm:ss ’,d表示天數,取值範圍是0~34。例如 ‘2 10:00:00’會被轉換成 58:00:00;一樣支持hhmmss格式的字符串或者數字來表示。
time支持用current_time 或者now()來輸入當前系統時間
date:1000-01-01 ~ 9999-12-31
date用四個字節表示日期,yyyy-mm-dd 或者yyyymmdd,mysql還支持不嚴格的語法格式,任何標點均可以用來作間隔符。一樣支持用current_time 或者now()來輸入當前系統時間。
datetime:1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
timestamp:1970-01-01 00:00:00 ~ 2038-12-31 23:59:59
timestamp表示的時間範圍比較小,有一些特殊的形式1)使用current_timestmap 輸入系統當前日期與時間;2)輸入NULL,無任何輸入時都會輸入系統當前日期與時間。
4.字符串類型:
char varchar blob text enum set
char與varchar,都在類型建立的時候就指定最大長度形式爲:
字符串類型(M)
char 的長度是固定的,指定了長度,就佔指定的bit
varchar的長度是可變的,建立表時定義的是最大長度,實際佔用的空間爲字符串的實際長度+1
text
text類型包含tinytext text mediumtext longtext 存儲空間都是值的長度+2個字節
enum 枚舉類型,其基本形式以下:
屬性名 emun(‘值1’,‘值2’,……)
屬性指的是字段的名稱。若是列表中只能選取一個值,就能夠選用emun類型,若是要選取列表中的多個值,則能夠選擇set類型。
set
屬性名 set(‘值1’,‘值2’,……)
取多個元素時,能夠用逗號隔開,set最多隻能是64個元素的組合,列表中每一個值都有一個順序排列的編號。mysql存入是的這個編號,而不是列表中的值。
5.二進制類型
暫時省略,寫不下去啦!