Datatypes
SQL 規範如何指定應鍵入帶小數的文字?
不同的數據庫以不同的方式隱式鍵入數字文字,
- MySQL 類型
1.0
為decimal(2,1)
- PostgreSQL 類型
1.0
為numeric
其中哪一項是正確的?
兩者都是正確且符合文字儲存的。在規範的眼中,有兩種類型的數字文字,
<exact numeric literal>
<approximate numeric literals>
浮點數,由使用科學記數法觸發(使用E
ore
)對於精確數字文字 (ENL),
- ENL 的聲明類型是實現定義的精確數字類型,其比例是
<digit>
s 右側的數量<period>
。應該有一個精確的數字類型能夠準確地表示 ENL 的值。對於近似數字文字 (ANL),
<approximate numeric literal>
ANL 的聲明類型是實現定義的近似數值類型。ANL 的值不能大於最大值,也不能小於近似數值類型所能表示的最小值。這意味著類型只需要能夠保存文字,其餘的留給實現。
取自 SQL 2011n 規範
也可以看看