數值類型:
整數類型
數據類型 | 取值範圍 | 說明 |
tinyint 極小的整型 | -27~27-1 | 佔用一個字節 |
Smallint小型整型 | -215~215-1 | 佔用2個字節 |
Int | -231~231-1 | 佔用4個字節 |
Bigint大型整型 | -263~263-1 | 佔用8個字節 |
小數類型
數據類型 | 取值範圍 | 說明 |
Float | 佔用4個字節長度 | 有兩種表示方式,一種是flaot(有效位數,小數位數);另一種是float(二進制位數),二進制位數表示該小數所佔用的二進制位數。可以精確到小數點後7位。 |
Double | 佔用8個字節長度 | 表示方式是double(有效位數,小數位數)。可以精確到小數點後15位。 |
Decimal十進制小數 | 最大的有效位數是65位 | 表示方式是decimal(有效位數,小數位數)。可以精確到小數點後30位。 |
由於存儲小數類型佔用空間較多,因此某一個要存儲的數據是整型就不要用小數型存儲。
字符串類型
數據類型 | 取值範圍 | 說明 |
Char | 0~255個字符 | 用於聲明一個定長的數據。存儲形式是char(n),n代表存儲的最大字符數 |
Varchar變長字符型 | 0~65535個字符 | 用於聲明一個變長的數據。存儲形式是varchar(n),n代表存儲的最大字符數 |
Binary二進制 | 0~255個字節 | 用於聲明一個定長的數據。存儲形式是binary(n),n代表存儲的最大字節數 |
Varbinary變長二進制 | 0~65535個字節 | 用於聲明一個變長的數據。存儲的是二進制數據,形式是varbrinary(n),n代表存儲的最大字節數 |
除了上面列出的4種字符串類型外,還有用於存儲大型二進制字符串數據和大型字符串數據的blob和text類型。其中在blob中分爲4種類型:tinyblob、blob、mediumblob、longblob。在text類型中也分爲4種:tinytext、text、mediumtext、longtext。針對要存入的文本大小,可以選擇blob或text類型中任意一種數據類型。
日期時間
在數據庫中經常會存放一些日期時間數據,比如:在數據表中記錄添加數據的時間。對於日期和時間類型的數據也可以用字符串類型存放,但是爲了使數據庫標準化,在數據庫中提供了專門存儲日期和時間的數據類型,在mysql中,日期時間類型包括datetime、time、timestamp、date等。
數據類型 | 取值範圍 | 說明 |
Datetime | 1000-01-01 00:00:00~ 9999-12-31 23:59:59 | 存儲的格式是YYYY-MM-DD HH:MM:SS |
date | 1000-01-01~9999-12-31 23:59:59 | 存儲的格式是YYYY-MM-DD |
Timestamp | 顯示的固定寬度是19個字符 | 主要用來記錄update或insert操作時的時間 |
Time | -838:59:59~838:59:59 | 存儲的格式是HH:MM:SS |
這裏,timestamp類型比較特殊,timestamp的返回值是YYYY-MM-DD HH:MM:SS格式的,如果需要數字值,可以在設置爲timestamp的數據上加上“+0”。比如說:timestamp得到返回值是2012-01-01 13:00:01,那麼應在timestamp上加上“+0”後得到的就是20120101130001.
其他數據類型
1、 枚舉類型,在mysql數據庫中存儲枚舉類型值時,並不是直接將值記入數據庫中,而是記錄值得索引。值得索引是按值得順序生產的,比如:枚舉值是‘昨天’、‘今天’、‘明天’,那麼值的索引就是1、2、3。在枚舉類型中,索引值0代表的是錯誤的空字符串!
2、 集合類型,在mysql數據庫中,保存集合類型數據庫時也不是真正地保存值,而是保存其二進制編碼。二進制的每一位對應集合中的每一項,其中低階位對應的是集合中的第一個成員。
3、 位類型,位類型包括bit和bool兩種類型。Bit類型主要用來定義一個指定位數的數據。它的取值範圍是1~64.那麼,它所佔的字節數是根據他的位數決定的,1個字節等於8位;bool用於邏輯值得判斷,只有true和false兩個值。可以用bool類型存放判斷的只有兩個值的字段,這樣可以節省數據的存儲空間。比如:當數據庫存儲酒店房間是否爲空房時,可以使用爲類型表示。