日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql decimal型转化为float_5分钟搞懂MySQL数据类型之数值型DECIMAL类型

發布時間:2023/12/4 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql decimal型转化为float_5分钟搞懂MySQL数据类型之数值型DECIMAL类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

5分鐘搞懂MySQL數據類型

之數值型--DECIMAL類型

DECIMAL類型的語法:DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]。其中M指定的是數字的總位數(精度,最大65,默認值10),D指定的是小數點后數字的位數(最大30,并且不能大于M),如果D為0或未指定,表示該數值沒有小數,也就是說DECIMAL(M)=DECIMAL(M,0)。

舉幾個示例:

mysql> create table t1(salaryDECIMAL(5,2));

Query OK, 0 rows affected (0.12 sec)

mysql> insert into t1 values (999.99);

Query OK, 1 row affected (0.01 sec)

mysql> insert into t1 values (999);

Query OK, 1 row affected (0.02 sec)

mysql> insert into t1 values (-999.99);

Query OK, 1 row affected (0.02 sec)

mysql> select * from t1;

+---------+

| salary?|

+---------+

|?999.99 |

|?999.00 |

| -999.99 |

+---------+

3 rows in set (0.02 sec)

mysql> insert into t1 values (1000);

ERROR 1264 (22003): Out of range value forcolumn 'salary' at row 1

mysql> insert into t1 values (999.999);

ERROR 1264 (22003): Out of range value forcolumn 'salary' at row 1

在本例中,salary字段能夠存儲的數值范圍即是-999.99 to 999.99。認真看,看懂了這個示例中m, d的作用,應該能幫助大家運用好DECIMAL類型。

那么,DECIMAL到底占用多少空間呢?這個,得看情況。MySQL采用二進制格式保存DECIMAL值,每個數值的整數和小數部分都是分別獨立存儲,并且會將每9個數位打包成4個字節,剩余不到9個數位的,再分配另外的空間。不同數位長度與字節數之間的關系如下表:

數位長度存儲空間
1-21字節
3-42字節
5-63字節
7-94字節

聽起來可能有些抽象,還是通過示例來補充描述一下吧。例如DECIMAL(18,9)列小數點前后各有9個數位,因此各需要4個字節存儲;DECIMAL(20,9)列的小數部分需要4個字節,整數部分11個數位就需要4+1共5個字節;DECIMAL(25)列共需要4+4+4共計12個字節的存儲空間。

NUMERIC類型的實現與DECIMAL相同,因此搞明白DECIMAL就同理可得NUMERIC了。

點擊了解:5分鐘搞懂MySQL數據類型之整型--INT類型

END掃碼關注我們勤勤懇懇,善始善終持之以恒,專心致志

總結

以上是生活随笔為你收集整理的mysql decimal型转化为float_5分钟搞懂MySQL数据类型之数值型DECIMAL类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。