电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

MySQL數據類型DECIMAL用法詳解

瀏覽:2日期:2023-10-06 08:29:40

MySQLDECIMAL數據類型用于在數據庫中存儲精確的數值。我們經常將DECIMAL數據類型用于保留準確精確度的列,例如會計系統中的貨幣數據。

要定義數據類型為DECIMAL的列,請使用以下語法:

column_name DECIMAL(P,D);

在上面的語法中:

P是表示有效數字數的精度。P范圍為1〜65。 D是表示小數點后的位數。D的范圍是0~30。MySQL要求D小于或等于(<=)P。

DECIMAL(P,D)表示列可以存儲D位小數的P位數。十進制列的實際范圍取決于精度和刻度。

與INT數據類型一樣,DECIMAL類型也具有UNSIGNED和ZEROFILL屬性。 如果使用UNSIGNED屬性,則DECIMAL UNSIGNED的列將不接受負值。

如果使用ZEROFILL,MySQL將把顯示值填充到0以顯示由列定義指定的寬度。 另外,如果我們對DECIMAL列使用ZERO FILL,MySQL將自動將UNSIGNED屬性添加到列。

以下示例使用DECIMAL數據類型定義的一個叫作amount的列。

amount DECIMAL(6,2);

在此示例中,amount列最多可以存儲6位數字,小數位數為2位; 因此,amount列的范圍是從-9999.99到9999.99。

MySQL允許使用以下語法:

column_name DECIMAL(P);

這相當于:

column_name DECIMAL(P,0);

在這種情況下,列不包含小數部分或小數點。

此外,我們甚至可以使用以下語法。

column_name DECIMAL;

在這種情況下,P的默認值為10。

MySQL DECIMAL存儲

MySQL分別為整數和小數部分分配存儲空間。 MySQL使用二進制格式存儲DECIMAL值。它將9位數字包裝成4個字節。

對于每個部分,需要4個字節來存儲9位數的每個倍數。剩余數字所需的存儲如下表所示:

剩余數字 位 0 0 1?2 1 3?4 2 5?6 3 7-9 4

例如,DECIMAL(19,9)對于小數部分具有9位數字,對于整數部分具有19位=10位數字,小數部分需要4個字節。 整數部分對于前9位數字需要4個字節,1個剩余字節需要1個字節。DECIMAL(19,9)列總共需要9個字節。

MySQL DECIMAL數據類型和貨幣數據

經常使用DECIMAL數據類型的貨幣數據,如價格,工資,賬戶余額等。如果要設計一個處理貨幣數據的數據庫,則可參考以下語法 -

amount DECIMAL(19,2);

但是,如果您要遵守公認會計原則(GAAP)規則,則貨幣欄必須至少包含4位小數,以確保舍入值不超過$0.01。 在這種情況下,應該定義具有4位小數的列,如下所示:

amount DECIMAL(19,4);MySQL DECIMAL數據類型示例

首先,創建一個名為test_order的新表,其中包含三列:id,description和cost。

CREATE TABLE test_order ( id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR(255), cost DECIMAL(19,4) NOT NULL);

第二步,將資料插入test_order表。

INSERT INTO test_order(description,cost)VALUES(’Bicycle’, 500.34),(’Seat’,10.23),(’Break’,5.21);

第三步,從test_order表查詢數據。

SELECT * from test_order

查詢結果:

MySQL數據類型DECIMAL用法詳解

第四步,更改cost列以包含ZEROFILL屬性。

ALTER TABLE test_orderMODIFY cost DECIMAL(19,4) zerofill;

第五步,再次查詢test_order表。

SELECT * from test_order

查詢結果:

MySQL數據類型DECIMAL用法詳解

如上所見,在輸出值中填充了許多零。

因為zerofill,當我們插入負值會報錯:

INSERT INTO test_order(description,cost)VALUES(’test’, -100.11);<br>提示:[SQL]INSERT INTO test_order(description,cost)VALUES(’test’, -100.11)[Err] 1264 - Out of range value for column ’cost’ at row 1

其它插入測試結論:

當數值在其取值范圍之內,小數位多了,則四舍五入后直接截斷多出的小數位。

若數值在其取值范圍之外,則直接報Out of range value錯誤。

到此這篇關于MySQL數據類型DECIMAL用法詳解的文章就介紹到這了,更多相關MySQL數據類型DECIMAL內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 户外环保不锈钢垃圾桶_标识标牌制作_园林公园椅厂家_花箱定制-北京汇众环艺 | 深圳标识制作公司-标识标牌厂家-深圳广告标识制作-玟璟广告-深圳市玟璟广告有限公司 | 亮点云建站-网站建设制作平台 | 选宝石船-陆地水上开采「精选」色选机械设备-青州冠诚重工机械有限公司 | 驾驶人在线_专业学车门户网站 | 水厂污泥地磅|污泥处理地磅厂家|地磅无人值守称重系统升级改造|地磅自动称重系统维修-河南成辉电子科技有限公司 | 槽钢冲孔机,槽钢三面冲,带钢冲孔机-山东兴田阳光智能装备股份有限公司 | 送料机_高速冲床送料机_NC伺服滚轮送料机厂家-东莞市久谐自动化设备有限公司 | 磁力抛光机_磁力研磨机_磁力去毛刺机_精密五金零件抛光设备厂家-冠古科技 | 深圳标识制作公司-标识标牌厂家-深圳广告标识制作-玟璟广告-深圳市玟璟广告有限公司 | 冻干机(冷冻干燥机)_小型|实验型|食品真空冷冻干燥机-松源 | 蓝米云-专注于高性价比香港/美国VPS云服务器及海外公益型免费虚拟主机 | 档案密集架,移动密集架,手摇式密集架,吉林档案密集架-厂家直销★价格公道★质量保证 | LED灯杆屏_LED广告机_户外LED广告机_智慧灯杆_智慧路灯-太龙智显科技(深圳)有限公司 | 油漆辅料厂家_阴阳脚线_艺术漆厂家_内外墙涂料施工_乳胶漆专用防霉腻子粉_轻质粉刷石膏-魔法涂涂 | 铝合金电阻-无源谐波滤波器-上海稳达电讯设备厂 | 门禁卡_智能IC卡_滴胶卡制作_硅胶腕带-卡立方rfid定制厂家 | 一氧化氮泄露报警器,二甲苯浓度超标报警器-郑州汇瑞埔电子技术有限公司 | 高铝轻质保温砖_刚玉莫来石砖厂家_轻质耐火砖价格 | 吲哚菁绿衍生物-酶底物法大肠菌群检测试剂-北京和信同通科技发展有限公司 | 上海租奔驰_上海租商务车_上海租车网-矢昂汽车服务公司 | 深圳市宏康仪器科技有限公司-模拟高空低压试验箱-高温防爆试验箱-温控短路试验箱【官网】 | 服务器之家 - 专注于服务器技术及软件下载分享 | 模温机-油温机-电加热导热油炉-工业冷水机「欧诺智能」 | 贵阳用友软件,贵州财务软件,贵阳ERP软件_贵州优智信息技术有限公司 | 石膏基自流平砂浆厂家-高强石膏基保温隔声自流平-轻质抹灰石膏粉砂浆批发-永康市汇利建设有限公司 | 信阳市建筑勘察设计研究院有限公司 | CCE素质教育博览会 | CCE素博会 | 教育展 | 美育展 | 科教展 | 素质教育展 | 干法制粒机_智能干法制粒机_张家港市开创机械制造有限公司 | 懂研帝_专业SCI论文润色机构_SCI投稿发表服务公司 | 无线联网门锁|校园联网门锁|学校智能门锁|公租房智能门锁|保障房管理系统-KEENZY中科易安 | 防勒索软件_数据防泄密_Trellix(原McAfee)核心代理商_Trellix(原Fireeye)售后-广州文智信息科技有限公司 | Type-c防水母座|贴片母座|耳机接口|Type-c插座-深圳市步步精科技有限公司 | 泰国专线_泰国物流专线_广州到泰国物流公司-泰廊曼国际 | 海南在线 海南一家 | 电加热导热油炉-空气加热器-导热油加热器-翅片电加热管-科安达机械 | 水热合成反应釜-防爆高压消解罐-西安常仪仪器设备有限公司 | 隔离变压器-伺服变压器--输入输出电抗器-深圳市德而沃电气有限公司 | SF6环境监测系统-接地环流在线监测装置-瑟恩实业 | 软文发布平台 - 云软媒网络软文直编发布营销推广平台 | 杭州中央空调维修_冷却塔/新风机柜/热水器/锅炉除垢清洗_除垢剂_风机盘管_冷凝器清洗-杭州亿诺能源有限公司 |