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

詳解MySQL數(shù)據(jù)類型DECIMAL(N,M)中N和M分別表示的含義

 更新時間:2017年10月23日 08:38:33   作者:LJFPHP的博客  
關(guān)于MySQL數(shù)據(jù)類型decimal中n和m分別表示什么含義?本文就此問題作了簡單論述,并創(chuàng)建相關(guān)表進(jìn)行驗證,需要的朋友可以了解下。

同事問MySQL數(shù)據(jù)類型DECIMAL(N,M)中N和M分別表示什么含義,M不用說,顯然是小數(shù)點后的小數(shù)位數(shù),但這個N究竟是小數(shù)點之前的最大位數(shù),還是加上小數(shù)部分后的最大位數(shù)?這個還真記不清了。于是乎,創(chuàng)建測試表驗證了一番,結(jié)果如下:

測試表,seller_cost字段定義為decimal(14,2)

CREATE TABLE `test_decimal` (
 `id` int(11) NOT NULL,
 `seller_cost` decimal(14,2) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

起初,表中內(nèi)容為空

mysql> select * from test_decimal;
Empty set (0.00 sec)

插入整數(shù)部分長度為14的數(shù)字,報超出列范圍的錯誤

mysql> insert into test_decimal(id,seller_cost) values(1,12345678901234);
ERROR 1264 (22003): Out of range value for column 'seller_cost' at row 1

插入整數(shù)部分長度為12的數(shù)字,可以正確插入

mysql> insert into test_decimal(id,seller_cost) values(1,123456789012);
Query OK, 1 row affected (0.00 sec)

查詢表,發(fā)現(xiàn)插入的整數(shù)值末尾被MySQL補了兩位小數(shù)“.00”

mysql> select * from test_decimal;
+----+-----------------+
| id | seller_cost   |
+----+-----------------+
| 1 | 123456789012.00 |
+----+-----------------+
1 row in set (0.00 sec)

繼續(xù)插入整數(shù)部分12位,小數(shù)部分5位的數(shù)字,可以成功插入,但是有警告,警告表明小數(shù)部分發(fā)生了截斷,被截取成了兩位小數(shù)

mysql> insert into test_decimal(id,seller_cost) values(1,123456789012.12345);
Query OK, 1 row affected, 1 warning (0.00 sec)
 
mysql> show warnings;
+-------+------+--------------------------------------------------+
| Level | Code | Message                     |
+-------+------+--------------------------------------------------+
| Note | 1265 | Data truncated for column 'seller_cost' at row 1 |
+-------+------+--------------------------------------------------+
1 row in set (0.00 sec)
 
mysql> select * from test_decimal;
+----+-----------------+
| id | seller_cost   |
+----+-----------------+
| 1 | 123456789012.00 |
| 1 | 123456789012.12 |
+----+-----------------+
2 rows in set (0.00 sec)

縮小整數(shù)部分的長度為2,小數(shù)部分的長度繼續(xù)保持為5,可以成功插入,但小數(shù)部分被截斷為兩位。

mysql> insert into test_decimal(id,seller_cost) values(1,12.12345);
Query OK, 1 row affected, 1 warning (0.00 sec)
 
mysql> show warnings;
+-------+------+--------------------------------------------------+
| Level | Code | Message                     |
+-------+------+--------------------------------------------------+
| Note | 1265 | Data truncated for column 'seller_cost' at row 1 |
+-------+------+--------------------------------------------------+
1 row in set (0.00 sec)
 
mysql> select * from test_decimal;
+----+-----------------+
| id | seller_cost   |
+----+-----------------+
| 1 | 123456789012.00 |
| 1 | 123456789012.12 |
| 1 |      12.12 |
+----+-----------------+
3 rows in set (0.00 sec)

繼續(xù)插入一個小數(shù)部分不足兩位的數(shù)字,可正確插入,且小數(shù)部分被自動補全到兩位。

mysql> insert into test_decimal(id,seller_cost) values(1,12.1);
Query OK, 1 row affected (0.00 sec)
 
mysql> select * from test_decimal;
+----+-----------------+
| id | seller_cost   |
+----+-----------------+
| 1 | 123456789012.00 |
| 1 | 123456789012.12 |
| 1 |      12.12 |
| 1 |      12.10 |
+----+-----------------+
4 rows in set (0.00 sec)

綜上所述,DECIMAL(N,M)中M值的是小數(shù)部分的位數(shù),若插入的值未指定小數(shù)部分或者小數(shù)部分不足M位則會自動補到M位小數(shù),若插入的值小數(shù)部分超過了M為則會發(fā)生截斷,截取前M位小數(shù)。N值得是整數(shù)部分加小數(shù)部分的總長度,也即插入的數(shù)字整數(shù)部分不能超過N-M位,否則不能成功插入,會報超出范圍的錯誤。

總結(jié)

以上就是本文關(guān)于詳解MySQL數(shù)據(jù)類型DECIMAL(N,M)中N和M分別表示的含義的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:MySQL中or語句用法示例、簡述Redis和MySQL的區(qū)別等,有什么問題可以隨時留言,小編會及時回復(fù)大家的。感謝朋友們對本站的支持!

相關(guān)文章

  • MySQL查詢優(yōu)化必備知識點總結(jié)

    MySQL查詢優(yōu)化必備知識點總結(jié)

    這篇文章主要給大家介紹了關(guān)于MySQL查詢優(yōu)化必備知識點的相關(guān)資料,文中介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • MySQL中ON DUPLICATE key update的使用

    MySQL中ON DUPLICATE key update的使用

    本文主要介紹了MySQL中ON DUPLICATE key update的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 深入理解MySQL公共表表達(dá)式

    深入理解MySQL公共表表達(dá)式

    公用表達(dá)式是MySQL8.0的新特性,它是一個命名的臨時結(jié)果集,作用范圍是當(dāng)前語句,本文主要介紹了MySQL公共表表達(dá)式使用,感興趣的可以了解一下
    2024-09-09
  • mysql最新版8.0.17解壓版安裝教程

    mysql最新版8.0.17解壓版安裝教程

    這篇文章主要為大家詳細(xì)介紹了最新版mysql 8.0.17 解壓版安裝教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • MySQL之鎖類型解讀

    MySQL之鎖類型解讀

    MySQL鎖類型包括讀鎖(共享鎖)和寫鎖(排他鎖),并介紹了意向鎖、自增鎖、元數(shù)據(jù)鎖、行級鎖和間隙鎖等概念,悲觀鎖和樂觀鎖是兩種不同的鎖設(shè)計思想,悲觀鎖在每次操作前加鎖,適用于并發(fā)沖突多的場景;樂觀鎖在更新時判斷數(shù)據(jù)是否被修改
    2025-02-02
  • mysql如何存儲地理信息

    mysql如何存儲地理信息

    MySQL存儲地理信息通常使用GEOMETRY數(shù)據(jù)類型或其子類型,為了支持這些數(shù)據(jù)類型,MySQL 提供了?SPATIAL?索引,這允許我們執(zhí)行高效的地理空間查詢,這篇文章主要介紹了mysql如何存儲地理信息,需要的朋友可以參考下
    2024-05-05
  • MySQL一些常用高級SQL語句

    MySQL一些常用高級SQL語句

    對 MySQL 數(shù)據(jù)庫的查詢,除了基本的查詢外,有時候需要對查詢的結(jié)果集進(jìn)行處理。例如只取 10 條數(shù)據(jù)、對查詢結(jié)果進(jìn)行排序或分組等等,今天就給大家分享MySQL一些常用高級SQL語句,感興趣的朋友一起看看吧
    2021-07-07
  • Windows系統(tǒng)下mysql5.7.21安裝詳細(xì)教程

    Windows系統(tǒng)下mysql5.7.21安裝詳細(xì)教程

    這篇文章主要為大家詳細(xì)介紹了Windows系統(tǒng)下mysql5.7.21安裝詳細(xì)教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • MySQL數(shù)據(jù)庫設(shè)計概念及多表查詢和事物操作

    MySQL數(shù)據(jù)庫設(shè)計概念及多表查詢和事物操作

    數(shù)據(jù)庫設(shè)計就是根據(jù)業(yè)務(wù)系統(tǒng)具體需求,結(jié)合我們所選用的DBMS,為這個業(yè)務(wù)系統(tǒng)構(gòu)造出最優(yōu)的數(shù)據(jù)存儲模型,本文給大家介紹MySQL數(shù)據(jù)庫設(shè)計概念及多表查詢和事物操作,感興趣的朋友一起看看吧
    2022-05-05
  • 詳解mysql持久化統(tǒng)計信息

    詳解mysql持久化統(tǒng)計信息

    這篇文章主要介紹了mysql持久化統(tǒng)計信息的相關(guān)資料,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-12-12

最新評論

辽宁省| 鹿泉市| 红河县| 历史| 苍溪县| 五华县| 木里| 玉溪市| 建湖县| 观塘区| 桐柏县| 田东县| 格尔木市| 敦煌市| 浦江县| 堆龙德庆县| 津南区| 福安市| 江陵县| 肥城市| 常德市| 五河县| 修文县| 屏山县| 民乐县| 囊谦县| 陕西省| 文登市| 中超| 瓮安县| 辽宁省| 寻甸| 玛沁县| 黎川县| 西乌珠穆沁旗| 利川市| 迁西县| 郓城县| 工布江达县| 汾阳市| 遵义市|