11表示數據占用11個字節長度比如數字10那么占位就是00000000010。它最大表示的數應該是2的88次方減一,很大非常大。
專注于為中小企業提供成都網站設計、網站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業灌陽免費做網站提供優質的服務。我們立足成都,凝聚了一批互聯網行業人才,有力地推動了千余家企業的穩健成長,幫助中小企業通過網站建設實現規模擴充和轉變。
一:MySQL數據類型
MySQL中定義數據字段的類型對你數據庫的優化是非常重要的
MySQL支持多種數據類型,大致可以分為三類:數值 日期/時間和字符串
二、數值類型
1.整數類型
2.浮點數
如果希望保證值比較準確,推薦使用定點數數據類型。MySql中的浮點類型有float,double和real。他們定義方式為:FLOAT(M,D) 、 REAL(M,D) 、 DOUBLE PRECISION(M,D)。
FLOAT和DOUBLE中的M和D的取值默認都為0,即除了最大最小值,不限制位數。允許的值理論上是-1.7976931348623157E+308~-2.2250738585072014E-308、0和2.2250738585072014E-308~1.7976931348623157E+308。M、D范圍如下:
(MySql5.7實測,與IEEE標準計算的實際是不同的,下面介紹):M取值范圍為0~255。FLOAT只保證6位有效數字的準確性,所以FLOAT(M,D)中,M=6時,數字通常是準確的。如果M和D都有明確定義,其超出范圍后的處理同decimal。
D取值范圍為0~30,同時必須=M。double只保證16位有效數字的準確性,所以DOUBLE(M,D)中,M=16時,數字通常是準確的。如果M和D都有明確定義,其超出范圍后的處理同decimal。
CHAR值時,在它們的右邊填充空格以達到指定的長度。當檢索到CHAR值時,尾部的空格被刪除掉,所以,我們在存儲時字符串右邊不能有空格,即使有,查詢出來后也會被刪除。在存儲或檢索過程中不進行大小寫轉換。
三、時間日期類型(5)
該“0”值如下:
請點擊輸入圖片描述
四、各種類型占用的存儲
1.數值類型
請點擊輸入圖片描述
定點數的比較特殊,而且與具體版本也有關系,此處單獨解釋:
使用二進制格式將9個十進制(基于10)數壓縮為4個字節來表示DECIMAL列值。每個值的整數和分數部分的存儲分別確定。每個9位數的倍數需要4個字節,并且“剩余的”位需要4個字節的一部分。下表給出了超出位數的存儲需求:
請點擊輸入圖片描述
2.時間日期
請點擊輸入圖片描述
從版本5.6.4開始,存儲需求就有所改變,根據精度而定。不確定部分需要的存儲如下:
請點擊輸入圖片描述
比如,TIME(0), TIME(2), TIME(4), 和TIME(6) 分別使用3, 4, 5, 6 bytes。
3.字符串
請點擊輸入圖片描述
4.類型的選擇
為了優化存儲,在任何情況下均應使用最精確的類型。
例如,如果列的值的范圍為從1到99999,若使用整數,則MEDIUMINT UNSIGNED是好的類型。在所有可以表示該列值的類型中,該類型使用的存儲最少。
用精度為65位十進制數(基于10)對DECIMAL 列進行所有基本計算(+、-、*、/)。
使用雙精度操作對DECIMAL值進行計算。如果準確度不是太重要或如果速度為最高優先級,DOUBLE類型即足夠了。為了達到高精度,可以轉換到保存在BIGINT中的定點類型。這樣可以用64位整數進行所有計算,根據需要將結果轉換回浮點值。
5.使用其他數據庫的SQL語句
為了使用為其它數據庫編寫的SQL執行代碼,MySQL按照下表所示對列類型進行映射。通過這些映射,可以很容易地從其它數據庫引擎將表定義導入到MySQL中:
請點擊輸入圖片描述
Mysql 建表過程中:
MySQL中int類型占用4個字節[byte(B)],1B有8個位[bit(b)],一個位(b)就代表一個0或者1,那么MySQL中int占用4B,對應位就是 4*8b = 32b 了,也就是說 int 表示的數字 個數 是: 2的32次方。
因為字節分有符號和無符號兩種,于是 int 有符號 的 范圍就是 -2的31次方 到 2的31次方減去1 [?1 為什么不是32次方?] [?2 為什么要減去1?],即 -2147483648 ~ 2147483647; int 無符號(unsigned) 的 范圍就是 0 到 2的32次方減去1。
知道了 int 類型的范圍后,我們再來看看長度是什么意思。 在MySQL手冊中,字段類型的長度用 “M” 表示,表示最大顯示寬度。 int 的 最大有效顯示寬度是 255。 注意: 此處表示 顯示寬度 和 存儲大小或類型及范圍 無關
參考:
1、
每種日期和時間類型都有一個有效范圍。如果插入的值超出相應范圍,系統會報錯并將相應的零值插入到數據庫中,各個類型的零值請看上表。
YEAR類型用4位數表示年份。范圍從1901~2155,插入超范圍的值時系統報錯并插入0000。
DATE類型用YYYY-MM-DD形式顯示日期。范圍從1000-01-01~9999-12-31插入超范圍的值時系統報錯并插入零值。此類型除了可接受YYYY-MM-DD和YYYYMMDD格式的輸入外,還可以識別其它一些不嚴格的語法格式,例如YYYY/MM/DD、YYYY.MM.DD等其他標點符號作為間隔的形式日期值的輸入。
TIME類型用HH:MM:SS形式顯示時間。其中MM和SS的取值范圍是0~59,HH的取值范圍比較特別其取值范圍是0~838,一般來講小時數的范圍是0~23,但是為了滿足特殊情況的需要,MySQL擴大了TIME類型的范圍,而且可以接受負數。TIME類型支持D HH:MM:S格式的時間表達字串,D表示天數,取值范圍0~34。例如,輸入30 21:15:26,系統會將小時部分按30*24+21轉換為 741:15:26。除了標準的輸入方式HH:MM:SS外,此類型還可以接受一些非標準的輸入方式,例如,輸入12,系統會轉換為00:00:12、輸入1212,系統會轉換為
00:12:12、輸入121212,系統會轉換為12:12:12等。
DATETIME類型用YYYY-MM-SS HH:MM:SS形式顯示日期與時間。范圍從1000-01-01 00:00:00~9999-12-31 23:59:59 插入超范圍的值時,系統報錯并插入零值(0000-00-00 00:00:00)。此類型除了可接受YYYY-MM-SS HH:MM:SS格式的輸入外,還可以識別YYYYMMSSHHMMSS形式的輸入值。例如,輸入20170117174856,系統會轉換為
2017-01-17 17:48:56。
TIMESTAMP類型情況與DATETIME類型接近,但是它的取值范圍要比DATETIME類型窄很多,范圍從19700101080001~20380119111407(1970-01-01 08:00:01~2038-01-19 11:14:07)。**另外,TIMESTAMP類型還有一個特別之處,那就是它的值的時間部分是根據時區來顯示的,例如在東八區插入的TIMESTAMP類型值2017-01-16 18:04:25,在東七區的時間部分會顯示17:04:25,而在東九區則變為19:04:25,對于這一點我們要特別留意。**
我們在選擇日期與時間數據類型時,請根據實際需求選擇相應的類型,一般應選擇剛好夠用最好,這樣可節省系統資源。例如只需要知道日期的選擇DATE類型、需要同時知道日期與時間的就選擇DATETIME類型、僅僅需要記錄時間的則選擇TIME類型等。
分享名稱:mysql范圍怎么表示 mysql且怎么表示
文章分享:http://m.kartarina.com/article48/dodeehp.html
成都網站建設公司_創新互聯,為您提供網站改版、App開發、面包屑導航、域名注冊、網頁設計公司、軟件開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯