国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

Mysql中NUMERIC和DECIMAL類型區別比較

2024-07-24 12:36:55
字體:
來源:轉載
供稿:網友

下面你將看到的是關于NUMERIC和DECIMAL數據類型比較了,numeric與decimal表示的數據類型是有的區別的,主要在精確度上,更詳細的確要看下面對比與實例比較。

decimal(numeric )同義,用于精確存儲數值.

decimal 數據類型最多可存儲 38 個數字,所有數字都能夠放到小數點的右邊,decimal 數據類型存儲了一個準確(精確)的數字表達法,不存儲值的近似值.

定義 decimal 的列、變量和參數的兩種特性如下:

p:小數點左邊和右邊數字之和,不包括小數點。如 123.45,則 p=5,s=2。

指定精度或對象能夠控制的數字個數。

s:指定可放到小數點右邊的小數位數或數字個數。

p 和 s 必須遵守以下規則:0 <= s <= p <= 38。

numeric 和 decimal 數據類型的默認最大精度值是 38,在 Transact-SQL 中,numeric 與 decimal 數據類型在功能上等效.

當數據值一定要按照指定精確存儲時,可以用帶有小數的 decimal 數據類型來存儲數字.

轉換 decimal 和 numeric 數據:對于 decimal 和 numeric 數據類型,Microsoft® SQL Server™ 將精度和小數位數的每個特定組合看作是不同的數據類型。例如,decimal(5,5) 和 decimal(5,0) 被當作不同的數據類型。

在 Transact-SQL 語句中,帶有小數點的常量自動轉換為 numeric 數據值,且必然使用最小的精度和小數位數,例如,常量 12.345 被轉換為 numeric 值,其精度為 5,小數位為 3.

從 decimal 或 numeric 向 float 或 real 轉換會導致精度損失,從 int、smallint、tinyint、float、real、money 或 smallmoney 向 decimal 或 numeric 轉換會導致溢出.

默認情況下,在將數字轉換為較低精度和小數位數的 decimal 或 numeric 值時,SQL Server 使用舍入法,然而,如果 SET ARITHABORT 選項為 ON,當發生溢出時,SQL Server 會出現錯誤,若僅損失精度和小數位數,則不會產生錯誤.

筆者,最近在研究mysql的decimal數據類型,現把數據實驗結果公布如下:

數據庫版本:Server version: 5.0.45 Source distribution

1、創建表結構,代碼如下:create table ta (a float,b decimal(10,5));

2、插入數據,代碼如下:insert into ta (a,b) values(1,12345.123423);

實際插入的b列數據為:12345.12342,代碼如下:

insert into ta (a,b) values(1,123456.1234);

實際插入的b列數據為:99999.99999

結論:decimal數據類型.

1、當插入的整數部分的值超過了其表示范圍后就直接忽略了小數部分的值,并以最大值填充。

2、當整數部分合法,小數部分多余的位數,直接截斷。

二、numeric(M,D)

當看到numeric數字類型后,大部分都會看成了number,我也幾次都弄錯了,numeric數字類型和decimal數字類型的一樣的,修改a列字段類型: alter table ta change a a numeric(10,5);代碼如下:

  1. show create table ta; 
  2. | ta    | CREATE TABLE `ta` ( 
  3. `a` decimal(10,5) default NULL
  4. `b` decimal(10,5) default NULL 
  5. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 | 
  6. //Vevb.com 

可見,在myslq5.0中,numeric和decimal數據類型是一致的,兩者的精度均準確為M位數字.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新沂市| 义乌市| 道孚县| 德化县| 五河县| 武清区| 甘泉县| 高碑店市| 濮阳市| 阜新市| 汤阴县| 德江县| 永吉县| 肥东县| 西华县| 盐城市| 扶沟县| 霸州市| 蕉岭县| 沁阳市| 保亭| 汉沽区| 紫阳县| 独山县| 东乌珠穆沁旗| 奉贤区| 临潭县| 霍山县| 迭部县| 星座| 威海市| 佛教| 铜山县| 贵南县| 历史| 玛曲县| 兖州市| 漯河市| 喀喇沁旗| 赞皇县| 株洲县|