410
windows
數值類型__數據類型_SQL語法參考_雲數據庫 OceanBase-阿裏雲
數值類型按精確度可以劃分為兩類:
- 精確數據類型
- 整數數據類型 TINYINT, SAMLLINT, MEDIUMINT, INTEGER, BIGINT
- 定點數據類型 DECIMAL, NUMERIC
- 近似數據類型 FLOAT, REAL, DOUBLE PRECISIONs
整數數據類型如下表:
類型 | 大小(字節) | 範圍 | 最小值 | 最大值 |
(帶符號的/無符號的) | (帶符號的/無符號的) | (帶符號的/無符號的) | ||
TINYINT | 1 | 27-1 | -128 | 127 |
28-1 | 0 | 255 | ||
SMALLINT | 2 | 215-1 | -32768 | 32767 |
216-1 | 0 | 65535 | ||
MEDIUMINT | 3 | 223-1 | -8388608 | 8388607 |
224-1 | 0 | 16777215 | ||
INT | 4 | 231-1 | -2147483648 | 2147483647 |
232-1 | 0 | 4294967295 | ||
BIGINT | 8 | 263-1 | -9223372036854775808 | 9223372036854775807 |
264-1 | 0 | 18446744073709551615 |
定點數據類型如下表:
類型 | 範圍 | 用途 |
DECIMAL (M,D) NUMERIC (M,D) | DECIMAL、NUMERIC等價; 變長數據類型; 精度(M)最大位數38,標度(D)最大位數30,具體取值範圍是受精度和標度的約束。(與MySQL不一致) | 定點數值 |
浮點數據類型如下:
類型 | 大小(字節) | 用途 |
FLOAT | 4 | 單精度浮點數值 |
FLOAT(p) | 如果0 <= p <= 24為4個字節, 如果25 <= p <= 53為8個字節 | 0到24的精度對應FLOAT列的4字節單精度。 25到53的精度對應DOUBLE列的8字節雙精度。 |
DOUBLE [PRECISION] | 8 | 雙精度浮點數值 |
說明:
在TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT類型中都可以指定顯示寬度,格式為“數據類型(M)”,比如INT(20),這裏的M指示最大顯示寬度。最大有效顯示寬度是255。顯示寬度與存儲大小或類型包含的值的範圍無關。
UNSIGNED 修飾符規定字段隻保存正值。
ZEROFILL修飾符規定0(不是空格)可以用於填補輸出值。如果為一個數值列指定ZEROFILL,係統自動為該列添加UNSIGNED屬性。
SERIAL是BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE的一個別名。在整數列定義中,SERIAL DEFAULT VALUE是NOT NULL AUTO_INCREMENT UNIQUE的一個別名。
BOOL(BOOLEAN)類型等價於TINYINT類型。
TINYINT
TINYINT[(M)] [UNSIGNED] [ZEROFILL]
很小的整數。帶符號的範圍是-128到127。無符號的範圍是0到255。
BOOL,BOOLEAN
是TINYINT(1)的同義詞。zero值被視為假。非zero值視為真。
SMALLINT
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
小的整數。帶符號的範圍是-32768到32767。無符號的範圍是0到65535。
MEDIUMINT
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
中等大小的整數。帶符號的範圍是-8388608到8388607。無符號的範圍是0到16777215。
INT
INT[(M] [UNSIGNED] [ZEROFILL]
普通大小的整數。帶符號的範圍是-2147483648到2147483647。無符號的範圍是0到4294967295。
將非法的int值插入表之前會自動改為0。
INTEGER
INTEGER[(M)] [UNSIGNED] [ZEROFILL]
INT的同義詞。
BIGINT
BIGINT[(M)] [UNSIGNED] [ZEROFILL]
大整數。帶符號的範圍是-9223372036854775808到9223372036854775807。無符號的範圍是0到18446744073709551615。
使用帶符號的BIGINT或DOUBLE值進行所有算法,因此除了位函數,不應使用大於9223372036854775807(63位)的無符號的大整數!如果這樣做,結果中的最後幾位可能出錯,這是由於將BIGINT值轉換為DOUBLE進行四舍五入時造成的錯誤。
可以在以下情況下處理BIGINT:
當使用整數在一個BIGINT列保存大的無符號的值時。
在MIN(col_name)或MAX(col_name)中,其中col_name指BIGINT列。
使用操作符(+,-,*等等)並且兩個操作數均為整數時。
總是可以使用一個字符串在BIGINT列中保存嚴格整數值。在這種情況下,執行字符串-數字轉換,其間不存在雙精度表示。
當兩個操作數均為整數值時,-、+和* 操作符使用BIGINT算法。這說明如果乘兩個大整數(或來自返回整數的函數),當結果大於9223372036854775807時,會得到意想不到的結果。
FLOAT
FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]
小(單精度)浮點數。允許的值範圍為-2128 ~ +2128,也即-3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38。這些是理論限製,基於IEEE標準。實際的範圍根據硬件或操作係統的不同可能稍微小些。
M是小數總位數,D是小數點後麵的位數。如果M和D被省略,根據硬件允許的限製來保存值。單精度浮點數精確到大約7位小數位。
如果指定UNSIGNED,不允許負值。
使用浮點數可能會遇到意想不到的問題,因此所有計算用雙精度完成。
DOUBLE
DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]
普通大小(雙精度)浮點數。允許的值範圍為:-21024 ~ +21024,也即是-1.7976931348623157E+308到-2.2250738585072014E-308、0和2.2250738585072014E-308到 1.7976931348623157E+308。這些是理論限製,基於IEEE標準。實際的範圍根據硬件或操作係統的不同可能稍微小些。
M是小數總位數,D是小數點後麵的位數。如果M和D被省略,根據硬件允許的限製來保存值。雙精度浮點數精確到大約15位小數位。
如果指定UNSIGNED,不允許負值。
DOUBLE PRECISION
DOUBLE PRECISION [(M,D)] [UNSIGNED] [ZEROFILL], REAL[(M,D)] [UNSIGNED] [ZEROFILL]
為DOUBLE的同義詞。
FLOAT(p)
FLOAT(p) [UNSIGNED] [ZEROFILL]
浮點數。p表示精度(以位數表示),隻使用該值來確定是否結果列的數據類型為FLOAT或DOUBLE。如果p為從0到24,數據類型變為沒有M或D值的FLOAT。如果p為從25到53,數據類型變為沒有M或D值的DOUBLE。結果列範圍與本節前麵描述的單精度FLOAT或雙精度DOUBLE數據類型相同。
DECIMAL(與MySQL不完全一致)
DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]
壓縮的“嚴格”定點數。M是小數位數(精度)的總數,D是小數點(標度)後麵的位數。小數點和‘-’(負數)符號不包括在M中。如果D是0,則值沒有小數點或分數部分。DECIMAL整數最大位數(M)為38(MySQL 為65)。支持的十進製數的最大位數(D)是30。如果D被省略, 默認是0。如果M被省略, 默認是10。
如果指定UNSIGNED,不允許負值。
所有DECIMAL列的基本計算(+,-,*,/)用38(MySQL為65)位精度完成。
DEC[(M[,D])] [UNSIGNED] [ZEROFILL], NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL]是DECIMAL的同義詞。FIXED同義詞適用於與其它服務器的兼容性。
NUMERIC
NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL]是DECIMAL的同義詞。
最後更新:2016-11-23 16:03:54
上一篇:
分區管理__分區_SQL語法參考_雲數據庫 OceanBase-阿裏雲
下一篇:
字符串類型__數據類型_SQL語法參考_雲數據庫 OceanBase-阿裏雲
ECS圖形化界麵__使用阿裏雲圖形界麵_使用手冊_Eclipse 插件-阿裏雲
申請物理專線接入__高速通道相關接口_API 參考_雲服務器 ECS-阿裏雲
創建RAM用戶__快速入門_訪問控製-阿裏雲
DescribeLoadBalancerHTTPSListenerAttribute__Listener相關API_API 參考_負載均衡-阿裏雲
WAF源站負載均衡__常見接入問題_Web 應用防火牆-阿裏雲
標簽概覽__服務編排文檔_用戶指南_容器服務-阿裏雲
wordpress日誌__常見日誌格式_用戶指南_日誌服務-阿裏雲
申請批量生成設備__接口列表_服務器端API_阿裏雲物聯網套件-阿裏雲
查詢直播流的幀率和碼率__直播流操作接口_API 手冊_CDN-阿裏雲
API接口__SDK手冊_HTTPDNS-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲