好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 深入分析MySQL數據類型 DECIMAL

深入分析MySQL數據類型 DECIMAL

熱門標簽:咸陽防封電銷卡 許昌外呼增值業務線路 宜賓全自動外呼系統廠家 新鄉智能外呼系統好處 臨沂做地圖標注 石家莊400電話辦理公司 申請400電話電話價格 廣東400企業電話申請流程 地圖標注客戶付款

前言:

當我們需要存儲小數,并且有精度要求,比如存儲金額時,通常會考慮使用DECIMAL字段類型,可能大部分同學只是對DECIMAL類型略有了解,其中的細節還不甚清楚,本篇文章將從零開始,為你講述DECIMAL字段類型的使用場景及方法。

1.DECIMAL類型簡介

DECIMAL從MySQL 5.1引入,列的聲明語法是DECIMAL(M,D)。NUMERIC與DECIMAL同義,如果字段類型定義為NUMERIC,則將自動轉成DECIMAL。

對于聲明語法DECIMAL(M,D),自變量的值范圍如下:

  • M是最大位數(精度),范圍是1到65??刹恢付ǎJ值是10。
  • D是小數點右邊的位數(小數位)。范圍是0到30,并且不能大于M,可不指定,默認值是0。

例如字段 salary DECIMAL(5,2),能夠存儲具有五位數字和兩位小數的任何值,因此可以存儲在salary列中的值的范圍是從-999.99到999.99。

2.DECIMAL使用實戰

下面我們將創建測試表來驗證DECIMAL字段類型的使用:

# 創建具有DECIMAL字段的表 驗證decimal默認是decimal(10,0)
mysql> create table decimal_tb (col1 decimal,col2 decimal(5,2));
Query OK, 0 rows affected (0.04 sec)
mysql> show create table decimal_tb\G
*************************** 1. row ***************************
    Table: decimal_tb
Create Table: CREATE TABLE `decimal_tb` (
 `col1` decimal(10,0) DEFAULT NULL,
 `col2` decimal(5,2) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

# 插入數據測試
# 結論:超出存儲范圍會報錯,小數位不足會自動補0,首位數字為0自動忽略,小數位超出會截斷 并按四舍五入處理。
mysql> insert into decimal_tb (col1,col2) values (100,100);
Query OK, 1 row affected (0.05 sec)
mysql> insert into decimal_tb (col2) values (1.23);
Query OK, 1 row affected (0.01 sec)
mysql> insert into decimal_tb (col2) values (10.2);
Query OK, 1 row affected (0.01 sec)
mysql> insert into decimal_tb (col2) values (09.9);
Query OK, 1 row affected (0.01 sec)
mysql> select * from decimal_tb;
+------+--------+
| col1 | col2  |
+------+--------+
| 100 | 100.00 |
| NULL |  1.23 |
| NULL | 10.20 |
| NULL |  9.90 |
+------+--------+
4 rows in set (0.00 sec)
mysql> insert into decimal_tb (col2) values (9999);
ERROR 1264 (22003): Out of range value for column 'col2' at row 1
mysql> insert into decimal_tb (col2) values (12.233); 
Query OK, 1 row affected, 1 warning (0.01 sec)
mysql> show warnings;
+-------+------+-------------------------------------------+
| Level | Code | Message                  |
+-------+------+-------------------------------------------+
| Note | 1265 | Data truncated for column 'col2' at row 1 |
+-------+------+-------------------------------------------+
1 row in set (0.00 sec)
mysql> insert into decimal_tb (col2) values (12.2300);
Query OK, 1 row affected (0.01 sec)

# 變量范圍測試
# 結論:M范圍是1到65,D范圍是0到30,且D不大于M
mysql> alter table decimal_tb add column col3 decimal(6,6);
Query OK, 0 rows affected (0.12 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table decimal_tb add column col4 decimal(6,7); 
ERROR 1427 (42000): For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column 'col4').
mysql> alter table decimal_tb add column col4 decimal(65,2);
Query OK, 0 rows affected (0.11 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table decimal_tb add column col4 decimal(66,2);
ERROR 1426 (42000): Too-big precision 66 specified for 'col4'. Maximum is 65.
mysql> alter table decimal_tb add column col5 decimal(60,30); 
Query OK, 0 rows affected (0.13 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table decimal_tb add column col6 decimal(60,31);
ERROR 1425 (42000): Too big scale 31 specified for column 'col6'. Maximum is 30.

3.DECIMAL使用總結

上面的內容從實戰出發,介紹了DECIMAL類型的使用方法及注意事項,你可能也知道float、double這些浮點數類型,這兩個同樣可以存儲小數,但這里不過多介紹,只是提醒大家float、double類型無法確保精度,很容易產生誤差,特別是在求和計算的時候,所有當存儲小數,特別是涉及金額時推薦使用DECIMAL類型。這里總結下使用DECIMAL應該注意的事項:

  • DECIMAL(M,D)中,M范圍是1到65,D范圍是0到30。
  • M默認為10,D默認為0,D不大于M。
  • DECIMAL(5,2)可存儲范圍是從-999.99到999.99,超出存儲范圍會報錯。
  • 存儲數值時,小數位不足會自動補0,首位數字為0自動忽略。
  • 小數位超出會截斷,產生告警,并按四舍五入處理。
  • 使用DECIMAL字段時,建議M,D參數手動指定,并按需分配。

總結:

本文比較簡單實用,通讀下來,你大概會明白DECIMAL字段的使用場景及注意事項,其實對于常見的字段類型,我們只需要了解其使用場景及注意事項即可,當我們建表時,能夠快速選出合適的字段類型才是我們的目的,比如當我們需要存儲小數時,能夠使用DECIMAL類型并且根據業務需要選擇合適的精度,這樣我們的工作將很容易開展下去。

以上就是深入分析MySQL數據類型 DECIMAL的詳細內容,更多關于MySQL數據類型 DECIMAL的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • mysql中decimal數據類型小數位填充問題詳解
  • MySQL decimal unsigned更新負數轉化為0
  • 淺談MySQL中float、double、decimal三個浮點類型的區別與總結
  • MySQL中decimal類型用法的簡單介紹
  • 詳解MySQL數據類型DECIMAL(N,M)中N和M分別表示的含義
  • MySQL數據類型中DECIMAL的用法實例詳解
  • MySQL中Decimal類型和Float Double的區別(詳解)
  • MySQL數據類型DECIMAL用法詳解

標簽:阜新 鎮江 鷹潭 日照 合肥 北京 貴州 臺灣

巨人網絡通訊聲明:本文標題《深入分析MySQL數據類型 DECIMAL》,本文關鍵詞  深入分析,MySQL,數據,類型,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《深入分析MySQL數據類型 DECIMAL》相關的同類信息!
  • 本頁收集關于深入分析MySQL數據類型 DECIMAL的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 亚洲AV日韩AV永久无码网站| ?国产精品嫩草影院精东| 床戏嗯啊假戏真做进去了| 香港三日本三级少妇66| 一级做a爰片毛片A片的价格| 午夜大片免费男女爽爽影院久久 | 国产真实乱人偷精品人妻图片| 亚洲一片| 男操女的逼| 成年黄色| 美女扒开粉嫩尿口给男生桶| 被黑人抽搐翻白眼晕过去的句子| 国产女合集小岁9六部3d| 美女把衣服脱光光| 欧美综合色婷婷欧美综合五月| 国产三级在线观看视小说| 地下室肉按摩椅| 免费观看欧美成人1314色| 贪婪欲望之岛| 女扒开腿秘?爽桶动漫| 草莓TV国产成人??福利游戏 | 日韩视频在线| 包你爽综合网| 草莓视频一区二区精品| 免费无遮挡??视频小说香蕉| 国产成a人亚洲精v品无码柠檬| 亚洲国产一区在线精选| 男人猛进猛出女人屁股视频| 一级戒备观看在线观看| 翘臀美女后进动态图| 免费看国产男女视频的网站| 九九无码精码AAAAA片| 操穴片| heyzo人妻无码系列精华无码| 久久成人影视| 亚洲国产成人精品无码区5566| a级片免费观看| www.91.xhs.小黄书.| 亚洲第一区精品观看| 真人毛片无码国产99| 皇上隔着纱衣含乳尖H男男小说|