SQL 筆記:操作資料的 CRUD
在開發專案的過程中,資料庫是幾乎不會缺席的一環,如果我們想在網路上賣東西,我們需要記錄使用者在我們網站上註冊的資料、要販售的商品,以及訂單等等。
在設計一張資料表之前,我們會考慮到以下問題:
- 這個資料表需要哪些欄位?
- 欄位該如何命名?
- 欄位的資料型態、長度是否必填?
- 資料表的 Primary key (主鍵)是哪個欄位?
操作資料的 CRUD
接著我們會新增資料到資料庫中,並透過刪除、修改、查詢資料的語法做一系列操作。我們開發者常常聽到人講「CRUD」,這四個字分別指涉了以下四種動作
- Create:新增資料
- Read:讀取資料
- Update:更新資料
- Delete:刪除資料
它們是四種資料操作的基本指令,在開發應用程式時,每一個使用者需求的背後,開發者都需要思考這些需求對應在資料庫中的新增、讀取、更新與刪除等處理動作,因此,也會用「CRUD」來總括應用程式裡最常見的功能。
例如,如果是一個日記網站,可能會具有以下功能:
- 新增一筆日記
- 瀏覽一筆日記
- 修改一筆日記
- 刪除一筆日記
相對的,在資料庫裡的 CRUD 也有對照的操作指令,那就是以下四個指令:
- INSERT - 新增資料
- SELECT - 選取資料
- UPDATE - 更新資料
- DELETE - 刪除資料
操作名稱 | SQL 指令 | 範例用途 |
---|---|---|
Create | INSERT |
新增一筆日記 |
Read | SELECT |
查詢日記 |
Update | UPDATE |
修改日記內容 |
Delete | DELETE |
刪除日記 |
彙總資料
資料就緒後,我們就可以來進行查詢,查詢資料就像是對著資料庫問問題。
例如,如果是一個電商網站,我們就可以問:「這個月的訂單總銷售量是多少?」,或是「去年度購買最多商品的前十名顧客是誰?」,可以透過一些幫助我們完成這些查詢的函式,像是:
- SUM - 總和
- AVG - 平均
- COUNT - 計算個數
- 更進階的 JOINS(多表查詢)、GROUP BY(資料分組)等⋯⋯
我們就可以從這些資料中找出答案。而除了函式,我們還能使用進階語法來進行更複雜的查詢:
- GROUP BY - 對資料進行分組(例如:依照月份彙總銷售額)
- ORDER BY - 排序查詢結果(例如:由高到低排序商品庫存)
- JOIN - 跨多張資料表查詢關聯資料(例如:取得訂單同時帶出該筆訂單的用戶名稱與商品明細)
小結:所有軟體工程師都要記得 CRUD 的概念
CRUD 是資料庫應用的核心,也幾乎是所有後端開發的基礎能力。無論我們軟體工城師要開發 REST API 還是用 ORM 工具操作資料,只要牽涉到資料,就脫不了 CRUD 的概念。