1)字串型
VARCHAR:
變長的字串,需要在宣告欄位時指定能儲存的最大字元數,真實佔用的空間取決於存入的字元數,存入的越多佔用空間越多。適合儲存內容長度不定的字元型別資料。能包含資料的大小,mysql5.0以前0~255位元組,mysql5.0以後0~65535位元組
CHAR:
定長字串,需要在宣告欄位時指定固定字元數。即使存入的字元數少於該長度,該欄位也會佔用該固定長度。適合儲存長度不變的字元型別資料。能包含資料的大小,0~255位元組
2)大資料型別
BLOB:
大二進位制型別,可以存入二進位制型別的資料,透過這個欄位,可以將圖片、音訊、影片等資料以二進位制的形式存入資料庫。最大為4GB。
TEXT:
大文字,被宣告為這種型別的欄位,可以儲存大量的字元資料,最大為4GB。
注意:text屬於mysql的方言,在其他資料庫中為clob型別
3)數值型
TINYINT:佔用1個位元組,相對於java中的byte
SMALLINT:佔用2個位元組,相對於java中的short
INT:佔用4個位元組,相對於java中的int
BIGINT:佔用8個位元組,相對於java中的long
FLOAT:4位元組單精度浮點型別,相對於java中的float
DOUBLE:8位元組雙精度浮點型別,相對於java中的double
4)邏輯型
BIT:
位型別,可以儲存指定位的值,可以指定位的個數,如果不指定則預設值為1位,即只能儲存0或1,對應到java中可以是boolean型。
5)日期型
DATE:日期
TIME:時間
DATETIME:日期時間
TIMESTAMP:時間戳
**DATETIME和TIMESTAMP的區別?
* DATETIME和TIMESTAMP顯示的結果是一樣的,都是固定的"YYYY-MM-DD HH:MM:SS"的格式
* DATETIME支援的範圍是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。TIMESTAMP的顯示範圍是'1970-01-01 00:00:00'到2037年,且其實際的儲存值為1970年到當前時間的毫秒數。
* 在建表時,列為TIMESTAMP的日期型別可以設定一個預設值,而DATETIME不行。
* 在更新表時,可以設定TIMESTAMP型別的列自動更新時間為當前時間。
1)字串型
VARCHAR:
變長的字串,需要在宣告欄位時指定能儲存的最大字元數,真實佔用的空間取決於存入的字元數,存入的越多佔用空間越多。適合儲存內容長度不定的字元型別資料。能包含資料的大小,mysql5.0以前0~255位元組,mysql5.0以後0~65535位元組
CHAR:
定長字串,需要在宣告欄位時指定固定字元數。即使存入的字元數少於該長度,該欄位也會佔用該固定長度。適合儲存長度不變的字元型別資料。能包含資料的大小,0~255位元組
2)大資料型別
BLOB:
大二進位制型別,可以存入二進位制型別的資料,透過這個欄位,可以將圖片、音訊、影片等資料以二進位制的形式存入資料庫。最大為4GB。
TEXT:
大文字,被宣告為這種型別的欄位,可以儲存大量的字元資料,最大為4GB。
注意:text屬於mysql的方言,在其他資料庫中為clob型別
3)數值型
TINYINT:佔用1個位元組,相對於java中的byte
SMALLINT:佔用2個位元組,相對於java中的short
INT:佔用4個位元組,相對於java中的int
BIGINT:佔用8個位元組,相對於java中的long
FLOAT:4位元組單精度浮點型別,相對於java中的float
DOUBLE:8位元組雙精度浮點型別,相對於java中的double
4)邏輯型
BIT:
位型別,可以儲存指定位的值,可以指定位的個數,如果不指定則預設值為1位,即只能儲存0或1,對應到java中可以是boolean型。
5)日期型
DATE:日期
TIME:時間
DATETIME:日期時間
TIMESTAMP:時間戳
**DATETIME和TIMESTAMP的區別?
* DATETIME和TIMESTAMP顯示的結果是一樣的,都是固定的"YYYY-MM-DD HH:MM:SS"的格式
* DATETIME支援的範圍是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。TIMESTAMP的顯示範圍是'1970-01-01 00:00:00'到2037年,且其實際的儲存值為1970年到當前時間的毫秒數。
* 在建表時,列為TIMESTAMP的日期型別可以設定一個預設值,而DATETIME不行。
* 在更新表時,可以設定TIMESTAMP型別的列自動更新時間為當前時間。