<刁鑽專業-程式設計SQL-1> 沈源有 2025.1223

shenyy0
·
·
IPFS
·

<刁鑽專業-程式設計SQL-1> 沈源有 2025.1223

在 SQL Server, 用以下 command 建立一個table

CREATE TABLE [PERSON](

[Id] [bigint] IDENTITY(1,1) NOT NULL,

[NAME] [varchar](8) NOT NULL,

[AGE] [numeric](3, 0) NOT NULL

)

分析:

[AGE]欄位

- 至今有紀錄的最長壽, 應該不超過 150 歲吧. 我給定 0 ~ 999 很夠吧?

- 3位數的整數, 用 [numeric](3, 0). 讚. 經濟實惠, 節省儲存空間, 也節省計算效能耗用.

反駁:

「看似專業,實際錯誤」

乍看之下, 似乎很專業, 很認真規劃.

抽絲剝繭分析, 會發現半吊子的潛在專業危險.

專業人士要使用整數時, 不做第二選擇, 一定是

byte, small int, int, big int.

絕對不考慮 numeric[n, 0] / decimal[n, 0]

如果需要限制數字的位數 設定 約束條件(上限, 下限.)

(分類代碼、簡單標誌、等級編號...)

numeric[n, m] / decimal[n, m]

是為 "精確小數" 量身訂做的.

申論:

numeric[n, 0] / decimal[n, 0]

- 是精確數字類型(fixed-point),不是原生二進位整數。

- 儲存和計算時,SQL Server 需要額外的轉換與運算處理

CPU 負擔比原生整數類型大。

- 每次算術運算都可能涉及定點運算和精度管理。

- 占記憶體空間, CPU計算還需多些步驟

結論.

專業, 真的很重要.

似懂非懂, 不懂裝懂, 半吊子真的很可怕.

半吊子的專業陷阱.

你以為的懂是真的懂嗎?

---

後記:

我承認我也是半吊子.

現在的世界, 誰不是半吊子?

CC BY-NC-ND 4.0 授权

喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!