最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入分析MySQL數(shù)據(jù)類型 DECIMAL

 更新時間:2020年09月04日 11:41:08   作者:MySQL技術(shù)  
這篇文章主要介紹了MySQL數(shù)據(jù)類型 DECIMAL的相關(guān)資料,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下

前言:

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

1.DECIMAL類型簡介

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

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

  • M是最大位數(shù)(精度),范圍是1到65。可不指定,默認(rèn)值是10。
  • D是小數(shù)點右邊的位數(shù)(小數(shù)位)。范圍是0到30,并且不能大于M,可不指定,默認(rèn)值是0。

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

2.DECIMAL使用實戰(zhàn)

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

# 創(chuàng)建具有DECIMAL字段的表 驗證decimal默認(rèn)是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)

# 插入數(shù)據(jù)測試
# 結(jié)論:超出存儲范圍會報錯,小數(shù)位不足會自動補0,首位數(shù)字為0自動忽略,小數(shù)位超出會截斷 并按四舍五入處理。
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)

# 變量范圍測試
# 結(jié)論: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使用總結(jié)

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

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

總結(jié):

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

以上就是深入分析MySQL數(shù)據(jù)類型 DECIMAL的詳細(xì)內(nèi)容,更多關(guān)于MySQL數(shù)據(jù)類型 DECIMAL的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • mysql 臨時表 cann''t reopen解決方案

    mysql 臨時表 cann''t reopen解決方案

    MySql關(guān)于臨時表cann't reopen的問題,本文將提供詳細(xì)的解決方案,需要了解的朋友可以參考下
    2012-11-11
  • mysql中的保留字段產(chǎn)生的問題

    mysql中的保留字段產(chǎn)生的問題

    我們在使用mysql的時候要注意這方面的問題,一個因為數(shù)據(jù)庫字段命名不當(dāng)造成的問題檢查起來還是相當(dāng)麻煩的,今天遇到這種問題,花費了很長時間才找到問題所在,這是無語
    2015-04-04
  • MySQL 8.0.41圖文詳細(xì)安裝教程 附安裝包

    MySQL 8.0.41圖文詳細(xì)安裝教程 附安裝包

    本文詳細(xì)介紹了MySQL 8.0.41的安裝步驟,包括下載安裝包、選擇安裝模式、設(shè)置數(shù)據(jù)庫密碼、配置系統(tǒng)環(huán)境變量以及驗證安裝結(jié)果,適合初學(xué)者和企業(yè)級應(yīng)用,感興趣的朋友一起看看吧
    2025-03-03
  • MySQL 常見存儲引擎的優(yōu)劣

    MySQL 常見存儲引擎的優(yōu)劣

    眾所周知,MySql 提供了很多存儲引擎,這里來比較一下常見引擎的優(yōu)劣。幫助大家選擇合適的存儲引擎
    2021-06-06
  • 如何設(shè)置mysql允許外部連接訪問

    如何設(shè)置mysql允許外部連接訪問

    大家好,本篇文章主要講的是如何設(shè)置mysql允許外部連接訪問,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • 批量 kill mysql 中運行時間長的sql

    批量 kill mysql 中運行時間長的sql

    這篇文章主要介紹了批量 kill mysql 中運行時間長的sql,需要的朋友可以參考下
    2016-01-01
  • windows 64位下MySQL 8.0.15安裝教程圖文詳解

    windows 64位下MySQL 8.0.15安裝教程圖文詳解

    本文通過圖文并茂的形式給大家介紹了MySQL 8.0.15安裝教程(windows 64位),非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • Mysql詳細(xì)剖析數(shù)據(jù)庫中的存儲引擎

    Mysql詳細(xì)剖析數(shù)據(jù)庫中的存儲引擎

    這篇文章詳細(xì)剖析了數(shù)據(jù)庫中的存儲引擎,存儲引擎是數(shù)據(jù)庫中非常關(guān)鍵的部分,有感興趣的小伙伴可以參考閱讀本文
    2023-03-03
  • 詳解MySQL中存儲函數(shù)創(chuàng)建與觸發(fā)器設(shè)置

    詳解MySQL中存儲函數(shù)創(chuàng)建與觸發(fā)器設(shè)置

    這篇文章主要為大家詳細(xì)介紹了MySQL中存儲函數(shù)的創(chuàng)建與觸發(fā)器的設(shè)置,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,需要的可以參考一下
    2022-08-08
  • Mysql-binlog的查看實踐

    Mysql-binlog的查看實踐

    MySQL的二進(jìn)制日志可以說是MySQL最重要的日志了,它記錄了所有的DDL和DML語句,本文主要介紹了Mysql-binlog的查看實踐,具有一定的參考價值,感興趣的可以了解一下
    2023-12-12

最新評論

柞水县| 宜阳县| 永济市| 安宁市| 辽源市| 建瓯市| 辰溪县| 长兴县| 高平市| 平阴县| 汤原县| 沙湾县| 阳高县| 大英县| 海安县| 汤阴县| 紫云| 松潘县| 原阳县| 开鲁县| 加查县| 乐平市| 疏勒县| 内黄县| 策勒县| 青川县| 沽源县| 新宁县| 井陉县| 崇义县| 晋州市| 涟水县| 谷城县| 陇南市| 平邑县| 林西县| 东山县| 龙州县| 吉木萨尔县| 旺苍县| 买车|