序言
今天去健身了,感覺把身體練好還是不錯的,閑話不多說,把這個數據庫所遇到的數據類型今天統統在這里講清楚了,以后在看到什么數據類型,咱度應該認識,對我來說,最不熟悉的應該就是時間類型這塊了。但是通過今天的學習,已經解惑了。下面就跟著我的節奏去把這個拿下吧。
---WH
一、數據類型
MySQL的數據類型有大概可以分為5種,分別是 整數類型、浮點數類型和定點數類型、日期和時間類型、字符串類型、二進制類型。現在可以來看看你對這5種類型的熟悉程度,哪個看起來懵逼了,那就說明自己哪個不熟悉,不理解。
注意:整數類型和浮點數類型可以統稱為數值數據類型,這不難理解。
數值數據類型
整數類型:TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT
浮點數類型:FLOAT、DOUBLE
定點小數:DECIMAL
日期/時間類型
YEAR、TIME、DATE、DATETIME、TIMESTAMP
字符串類型
CHAR、VARCHAR、TEXT、ENUM、SET等
二進制類型
BIT、BINARY、VARBINARY、BLOB
1、整數類型

不管你學什么語言,在基礎方面,都應該知道 1個字節= 8位二進制數。 每個類型的取值范圍也就能夠知道,比如 TINYINT占用1個字節,也就是8位,2的8次方減1等于255,也就是說如果代表沒符號的整數,該取值范圍為0~255,如果是有符號的,最高位為符號號位,也就是2的7次方減1,也就是127,取值范圍為-128~127, 為什么需要減1,這個問題就需要考慮臨界值的問題了。而考慮臨界值問題又有需要討論原碼補碼反碼的知識,這些度不是我們討論的重點,所以在這就自行百度。給出一張范圍表,給大家做參考。
不同整數類型的取值范圍

根據自己所需去選取不同的類型名稱,
例如:
| CREATE TABLE aaa( id INT(10) PRIMARY KEY, age INT(6) ); |
這個例子中INT(10)、INT(6) 括號中的數字表示的是該數據類型指定的顯示寬度,指定能夠顯示的數值中數字的個數。這里要注意:顯示寬度和數據類型的取值范圍是無關的,顯示寬度只是指明MySQL最大可能顯示的數字個數,注意是可能。通俗點講就是,比如這個age字段,顯示寬度為6,但是如果你插入的數據大于6,達到了8,6666 6666,那也沒關系,只要插入的數值的位數不超過該類型整數的取值范圍,就行,如果插入的數值長度是4,或者3,數值的位數小于指定的寬度,后面的位數就會由空格填空,5555插入age字段,存的就是"5555 "后面用空格補齊。還有一點,這個顯示寬度沒限制,你寫100度沒問題,但是插入數據時,實際起控制作用的還是數據類型的取值范圍。如果不寫顯示寬度,就會用系統默認的,比如,INT的默認顯示寬度是11,看上面表,最高也就能表示10位大小的數值,但是要注意,有符號的,也就是負數時,符號位也占一位。
新聞熱點
疑難解答