增刪查改
(重定向自建立、讀取、更新、刪除)
增刪查改(英语:CRUD[註 1]),全稱增加(Create,意為「建立」)、刪除(Delete)、查詢(Read,意為「讀取」)、改正(Update,意為「更新」),在電腦程式語言中是一連串常見的動作行為,而其行為通常是為了針對某個特定資源所作出的舉動(例如:建立資料、讀取資料等)。這四個行為最常見的用途是在使用SQL資料庫與網站的API的時候。這個詞語(CRUD)最早被記載於James Martin所撰寫的Managing the Data-base Environment[1][2]書中。
基本用途與別名
编辑在不同情況下,原本的「增刪查改」所對應的英文詞彙會因此而改名,而不再對應CRUD。例如 HTTP 中,原本「增刪查改」所對應的英文詞彙被改名,比如「查」不再是Read,而改為GET;「增」不再是Create,而改為POST;「改」不再是Update,而改為PUT等等,這個現象也出現在 SQL 資料庫中。話雖如此,雖然有著不同名稱,但底層的概念都基本相同。
中文 | 英文 | 意義 | SQL | HTTP | 表現層狀態轉換(REST) | 資料分散服務 | MongoDB |
---|---|---|---|---|---|---|---|
增加 | Create | 建立 | INSERT | PUT / POST | POST | WRITE | Insert |
刪除 | Delete | 刪除 | DELETE | DELETE | DELETE | DISPOSE | Remove |
查詢 | Read | 讀取 | SELECT | GET | GET | READ / TAKE | Find |
改正 | Update | 更新 | UPDATE | PUT / POST / PATCH | PUT | WRITE | Update |
型態變化
编辑隨著時間的演進,原本的「增刪查改」(CRUD)已經不再能夠滿足大部分的需求了,因此有些人會修改部份詞語來更符合當下的動作名稱。例如說:BREADS、ACID、ABCD[3]。雖然這些用法多了一些行為,但實際上也只是某些基礎行為(CRUD)的變化,例如:BREADS 中的「瀏覽(Browse)」其實是會回傳多筆資料的「讀取(Read)」行為。
- BREADS(也譯作:麵包)[4]
- 瀏覽(Browse)、讀取(Read)、編輯(Edit)、建立(Add)、刪除(Delete)、搜尋(Search)
- ICRUD[3]
- 索引(Index)、建立(Create)、讀取(Read)、更新(Update)、刪除(Delete)
- CRAP(也譯作:垃圾)[5]
- 建立(Create)、複製(Replicate)、寫入(Append)、處理(Process)
- DAVE[6]
- 刪除(Delete)、建立(Add)、檢視(View)、更新(Edit)
- ABCD[3]
- 建立(Add)、瀏覽(Browse)、更新(Change)、刪除(Delete)
- ACID(也譯作:鹽酸, 注意這裡和保證數據庫可靠性的ACID不是一回事)
- 建立(Add)、更新(Change)、查詢(Inquire)、刪除(Delete)
註釋
编辑- ^ 英語中因為CRUD比中文所對應的CDRU易讀易記而將「刪除」(Delete)放置於最後。但是英文小寫的crud,是指渣滓、水垢、腐蝕汙泥。
參考資料
编辑- ^ Managing the Data-base Environment,第381頁,載於Google圖書
- ^ Martin, James. Managing the Data-base Environment. Englewood Cliffs, New Jersey: Prentice-Hall. 1983: 381. ISBN 0-135-50582-8.
- ^ 3.0 3.1 3.2 BREAD, not CRUD | Paul M. Jones. [2019-01-12]. (原始内容存档于2019-05-08) (美国英语).
- ^ Paul M. Jones. BREAD, not CRUD. 2008 [2019-01-12]. (原始内容存档于2019-05-08).
- ^ CRAP and CRUD: From Database to Datacloud - Direct2DellEMC. Direct2DellEMC. 2012-11-13 [2018-01-30]. (原始内容存档于2020-08-11) (美国英语).
- ^ McGaw, James. Beginning Django E-Commerce. : 41 [2019-01-12]. (原始内容存档于2020-06-11).