標籤:
以前要用sql語句的時候都是直接搜命令用,平時也沒怎麼去重視記住它們,面試的時候面對sql語句卻發現怎麼也寫不好。所以現在就還是把常用的羅列,在需要的時候能夠方便的尋找,同時也可以隨時鞏固加深。
1.整數類型
(1).按需求來選用合適的類型可以最佳化表佔用的空間:
TINYINT 1Byte
SMALLINT 2Byte
MEDIUMINT 3Byte
INT 4Byte
INTEGER 4Byte
BIGINT 8Byte
(2). 使用整數類型時可以搭配zerofill參數,將不足位空間由0來填補。而它的AUTO_INCREAMENT屬性可以+1自增欄位。
2.浮點類型
(1). MySQL: 資料類型(M,D) M為精度,是資料總長度,小數點不佔位置。D為標度,小數點後的長度。
eg:FLOAT(6,2),按此要求則1234.56是符合要求的。
注意:定義浮點數若非必要不要使用這種會影響遷移的精度指定方法。對定點數DECIMAL是可以選擇的。定點數在MySQL中以字串形式儲存,精度比浮點數要高不會出現誤差,對資料的精度要求比較高選擇定點數是比較安全。
3.日期和時間類型
(1).YEAR(1),DATE(4),TIME(3),DATETIME(8),TIMESTAMP(4)
TIME類型:
1)."D HH:MM:SS": ‘2 11:30:50‘ ==> (2*24 + 11):30:50
2)."HHMMSS": ‘345454‘ ==>34:54:54
3).CURRENT_TIME和NOW()輸入當前系統時間。
4.字串類型
(1).CHAR(0~255)建立表後長度固定。雖然佔用空間較大但對長度變化不大和查詢速度要求較高的字串類型,最好選擇它。
VARCHAR(0~65536)長度可變,指定為某個最大範圍,佔用空間為字串實際長度+1。
(2).TEXT:只能儲存字串資料,如新聞的內容等。TINYTEXT(0~255BYTE),TEXT(0~65535BYTE),MEDIUMTEXT(0~167772150BYTE),LONGTEXT(0~4294967295BYTE)
(3).SET和 ENUM:對取值在一定範圍的離散值很有效。
SET最大64個成員,可以取多個,而ENUM(max65535)只能從成員中選擇一個。
5.二進位類型
(1).BINARY(M byte),VARBINARY(M)變長二進位字串,BIT(M位二進位最大值64)
(2).BLOB:特殊二進位類型。儲存資料量很大的位元據片,MP3,PDF文檔等。可以將它們儲存在檔案系統中,然後在資料庫中儲存檔案的路徑,比直接儲存在資料庫中簡單但訪問速度較慢,但通常都是儲存路徑。
MySQL資料類型