欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL中Decimal類型和Float Double的區(qū)別(詳解)

 更新時間:2017年03月24日 10:23:45   投稿:jingxian  
下面小編就為大家?guī)硪黄狹ySQL中Decimal類型和Float Double的區(qū)別(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

MySQL中存在float,double等非標(biāo)準(zhǔn)數(shù)據(jù)類型,也有decimal這種標(biāo)準(zhǔn)數(shù)據(jù)類型。

其區(qū)別在于,float,double等非標(biāo)準(zhǔn)類型,在DB中保存的是近似值,而Decimal則以字符串的形式保存數(shù)值。
float,double類型是可以存浮點數(shù)(即小數(shù)類型),但是float有個壞處,當(dāng)你給定的數(shù)據(jù)是整數(shù)的時候,那么它就以整數(shù)給你處理。這樣我們在存取貨幣值的時候自然遇到問題,我的default值為:0.00而實際存儲是0,同樣我存取貨幣為12.00,實際存儲是12。

幸好mysql提供了兩個數(shù)據(jù)類型:decimal,這種數(shù)據(jù)類型可以輕松解決上面的問題:decimal類型被 MySQL 以同樣的類型實現(xiàn),這在 SQL92 標(biāo)準(zhǔn)中是允許的。他們用于保存對準(zhǔn)確精度有重要要求的值,例如與金錢有關(guān)的數(shù)據(jù)。

數(shù)據(jù)定義

float(M,S) M為全長,S為小數(shù)點后長度。對于不精準(zhǔn)的例子,網(wǎng)絡(luò)上很多,Copy如下:

mysql> create table t1(c1 float(10,2), c3decimal(10,2));

Query OK, 0 rows affected (0.02 sec)

mysql> insert into t1 values(9876543.21, 9876543.12);

Query OK, 1 row affected (0.00 sec)

mysql> select * from t1;

+----------------+-----------------+

| c1 | c3 |

+----------------+-----------------+

| 9876543.00 | 9876543.12 |

+----------------+------------------+

2 rows in set (0.00 sec)

再舉例: DECIMAL(5,2)

mysql> create table t1(id1 float(5,2) default null,id2 double(5,2) default null,
id3 decimal(5,2) default null );

mysql> insert into t1 values(1.2345,1.2345,1.2345);
Query OK, 1 row affected, 1 warning (0.04 sec)

mysql> show warnings;
+-------+------+------------------------------------------+
| Level | Code | Message |
+-------+------+------------------------------------------+
| Note | 1265 | Data truncated for column 'id3' at row 1 |
+-------+------+------------------------------------------+
1 row in set (0.00 sec)

1.2345 --- 小數(shù)點后最多2位,所以保存可以,自動四舍五入數(shù)據(jù)截斷,但會報waning

12.34 --- OK

1234.5 --- 因為小數(shù)部分未滿2位,要補0.所以保存應(yīng)該1234.50。所以整個位數(shù)超出了5,保存報錯。

1.2 --- 小數(shù)未滿部分補0。按照1.20保存。

默認(rèn)狀態(tài)比較

浮點數(shù)如果不寫經(jīng)度和標(biāo)度,會按照實際精度值保存,如果有精度和標(biāo)度,則會自動將四舍五入后的結(jié)果插入,系統(tǒng)不會報錯;定點數(shù)如果不寫精度和標(biāo)度,則按照默認(rèn)值decimal(10,0) 來操作,如果數(shù)據(jù)超過了精度和標(biāo)度值,系統(tǒng)會報錯。

以上這篇MySQL中Decimal類型和Float Double的區(qū)別(詳解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • mysql觸發(fā)器之創(chuàng)建使用觸發(fā)器簡單示例

    mysql觸發(fā)器之創(chuàng)建使用觸發(fā)器簡單示例

    這篇文章主要介紹了mysql觸發(fā)器之創(chuàng)建使用觸發(fā)器,結(jié)合實例形式分析了mysql創(chuàng)建、查看、調(diào)用觸發(fā)器的相關(guān)操作技巧,需要的朋友可以參考下
    2019-12-12
  • 詳解MySQL8.0原子DDL語法

    詳解MySQL8.0原子DDL語法

    這篇文章主要介紹了詳解MySQL8.0原子DDL語法的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用MySQL,感興趣的朋友可以了解下
    2021-03-03
  • 簡述MySQL與Oracle的區(qū)別

    簡述MySQL與Oracle的區(qū)別

    Oracle是大型數(shù)據(jù)庫而Mysql是中小型數(shù)據(jù)庫,Oracle市場占有率達(dá)40%,Mysql只有20%左右,同時Mysql是開源的而Oracle價格非常高
    2017-06-06
  • 解析MYSQL顯示表信息的方法

    解析MYSQL顯示表信息的方法

    本篇文章是對MYSQL顯示表信息的方法進行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • mysql5.7.13 環(huán)境搭建教程(解壓縮版)

    mysql5.7.13 環(huán)境搭建教程(解壓縮版)

    這篇文章主要為大家詳細(xì)介紹了mysql解壓縮版環(huán)境搭建教程,具有一定的實用性,感興趣的小伙伴們可以參考一下
    2016-07-07
  • 詳解mysql DML語句的使用

    詳解mysql DML語句的使用

    這篇文章主要介紹了詳解mysql DML語句的使用,幫助大家更好的理解和學(xué)習(xí)mysql,感興趣的朋友可以了解下
    2020-08-08
  • mysql多條數(shù)據(jù)合并成一條的3種常見方法

    mysql多條數(shù)據(jù)合并成一條的3種常見方法

    在實際的應(yīng)用開發(fā)中,有時我們需要將多條數(shù)據(jù)合并成一條數(shù)據(jù),以便更好地進行數(shù)據(jù)分析和處理,本文就來介紹一下mysql多條數(shù)據(jù)合并成一條的方法,具有一定的參考價值
    2023-10-10
  • MySQL中l(wèi)ength()、char_length()的區(qū)別

    MySQL中l(wèi)ength()、char_length()的區(qū)別

    在MySQL中l(wèi)ength(str)、char_length(str)都屬于判斷長度的內(nèi)置函數(shù),本文主要介紹了MySQL中l(wèi)ength()、char_length()的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 利用ssh tunnel鏈接mysql服務(wù)器的方法

    利用ssh tunnel鏈接mysql服務(wù)器的方法

    這篇文章主要給大家介紹了利用ssh tunnel鏈接mysql服務(wù)器的方法,文中介紹的很詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-02-02

最新評論