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類型的列自動更新時間為當前時間。