摘要:MySQL中的數據類型大的方面來分,可以分為:日期和時間、數值,以及字符串。下面就分開來進行總結。日期和時間數據類型MySQL數據類型含義d...
MySQL中的數據類型大的方面來分,可以分為:日期和時間、數值,以及字符串。下面就分開來進行總結。
日期和時間數據類型
MySQL數據類型 | 含義 |
date | 3字節,日期,格式:2014-09-18 |
time | 3字節,時間,格式:08:42:30 |
datetime | 8字節,日期時間,格式:2014-09-18 08:42:30 |
timestamp | 4字節,自動存儲記錄修改的時間 |
year | 1字節,年份 |
數值數據類型
整型
MySQL數據類型 | 含義(有符號) |
tinyint | 1字節,范圍(-128~127) |
smallint | 2字節,范圍(-32768~32767) |
mediumint | 3字節,范圍(-8388608~8388607) |
int | 4字節,范圍(-2147483648~2147483647) |
bigint | 8字節,范圍(+-9.22*10的18次方) |
上面定義的都是有符號的,當然了,也可以加上unsigned關鍵字,定義成無符號的類型,那么對應的取值范圍就要翻翻了,比如:
tinyint unsigned的取值范圍為0~255。
浮點型
MySQL數據類型 | 含義 |
float(m, d) | 4字節,單精度浮點型,m總個數,d小數位 |
double(m, d) | 8字節,雙精度浮點型,m總個數,d小數位 |
decimal(m, d) | decimal是存儲為字符串的浮點數 |
我在MySQL中建立了一個表,有一列為float(5, 3);做了以下試驗:
1.插入123.45678,最后查詢得到的結果為99.999;
2.插入123.456,最后查詢結果為99.999;
3.插入12.34567,最后查詢結果為12.346;
所以,在使用浮點型的時候,還是要注意陷阱的,要以插入數據庫中的實際結果為準。
字符串數據類型
MySQL數據類型 | 含義 |
char(n) | 固定長度,最多255個字符 |
varchar(n) | 可變長度,最多65535個字符 |
tinytext | 可變長度,最多255個字符 |
text | 可變長度,最多65535個字符 |
mediumtext | 可變長度,最多2的24次方-1個字符 |
longtext | 可變長度,最多2的32次方-1個字符 |
1.char(n)和varchar(n)中括號中n代表字符的個數,并不代表字節個數,所以當使用了中文的時候(UTF8)意味著可以插入m個中文,但是實際會占用m*3個字節。
2.同時char和varchar最大的區別就在于char不管實際value都會占用n個字符的空間,而varchar只會占用實際字符應該占用的空間+1,并且實際空間+1<=n。
3.超過char和varchar的n設置后,字符串會被截斷。
4.char的上限為255字節,varchar的上限65535字節,text的上限為65535。
5.char在存儲的時候會截斷尾部的空格,varchar和text不會。
6.varchar會使用1-3個字節來存儲長度,text不會。
其它類型
1.enum(“member1″, “member2″, … “member65535″)
enum數據類型就是定義了一種枚舉,最多包含65535個不同的成員。當定義了一個enum的列時,該列的值限制為列定義中聲明的值。如果列聲明包含NULL屬性,則NULL將被認為是一個有效值,并且是默認值。如果聲明了NOT NULL,則列表的第一個成員是默認值。
2.set(“member”, “member2″, … “member64″)
set數據類型為指定一組預定義值中的零個或多個值提供了一種方法,這組值最多包括64個成員。值的選擇限制為列定義中聲明的值。
網友評論:
test
2017-02-26 11:33:06 回復
網友評論:
YzmCMS官方博客_袁志蒙博客網友 回復 YzmCMS官方博客_袁志蒙博客網友 :<script>alert(111)</script>
2016-11-18 12:14:30 回復
網友評論:
1111
2016-11-18 12:13:45 回復