CRUD
CRUD
概要(サマリー)
CRUDとは、データを扱う4つの基本操作の頭文字をつなげた言葉である。Create(作成)・Read(読み取り)・Update(更新)・Delete(削除)の略で、「クラッド」と読む。データベースの操作やAPIの設計を語るときによく登場する概念だ。「このアプリにはCRUDが全部そろっている」という言い方をよくする。
詳細解説
4つの操作の意味
| 操作 | 意味 | 例 |
|---|---|---|
| Create | データを新しく作る | ユーザー登録、新規投稿 |
| Read | データを読み取る | 一覧表示、検索、詳細ページ |
| Update | 既存データを書き換える | プロフィール編集、投稿の修正 |
| Delete | データを削除する | アカウント削除、投稿の削除 |
身近な例で言うと、ブログのサービスなら「記事を書く(Create)・読む(Read)・編集する(Update)・削除する(Delete)」がまさにCRUDだ。
SQLとの対応
SQLでデータベースを操作するとき、CRUDの4操作はそれぞれ以下のSQL文に対応する。
-- Create: データを追加する
INSERT INTO users (name, email) VALUES ('田中', 'tanaka@example.com');
-- Read: データを取得する
SELECT * FROM users WHERE name = '田中';
-- Update: データを更新する
UPDATE users SET email = 'new@example.com' WHERE id = 1;
-- Delete: データを削除する
DELETE FROM users WHERE id = 1;
HTTPメソッドとの対応
APIの設計でも、CRUDの考え方は土台になる。REST APIでは、CRUDの各操作をHTTPメソッドに対応させる形が基本としてよく使われる。
| CRUD | HTTPメソッド | 例(ユーザーAPI) |
|---|---|---|
| Create | POST |
POST /users |
| Read | GET |
GET /users / GET /users/1 |
| Update | PUT / PATCH |
PUT /users/1 |
| Delete | DELETE |
DELETE /users/1 |
AIにAPIを作るよう依頼するとき、「ユーザーのCRUDを実装してください」と伝えるだけで、この4つのエンドポイントをまとめて生成してもらえることが多い。
なぜCRUDを知っておくべきか
CRUDはアプリ開発の共通言語だ。「データを操作する」と一口に言っても、作るのか・読むのか・変えるのか・消すのかで、実装するコードもAPIのエンドポイントも変わってくる。CRUDという枠組みを意識しておくと、AIへの指示が具体的になり、生成されるコードの品質も上がる。
ただし、実際の業務アプリには「承認する」「公開する」「メールを送る」のように、CRUDだけでは表しきれない操作もある。CRUDはあくまでデータ操作の基本形として理解しておくとよい。
AIコーディングとCRUDの関係
AIはCRUDに関するコード生成が得意である。「ユーザー情報のCreate、Read、Update、Deleteを実装してください」と指示すれば、画面、API、データベース操作をまとめて提案してくれることが多い。
ただし、AIに任せると、権限チェック、バリデーション、削除前の確認、エラー処理が薄いコードになることがある。CRUDアプリを作るときは、「誰がどのデータを操作できるか」「入力値をどう検証するか」「削除は物理削除か論理削除か」まで指定すると、実務に近い設計になりやすい。
よくある勘違い
UpdateとDeleteは危険なので使わないほうがいい?
そうではない。UpdateとDeleteは正しく設計・実装すれば安全に使える。ただし、誰でも他人のデータを書き換えたり削除したりできてしまうような権限設計は危険だ。「誰が・どのデータを・操作できるか」という認可(アクセス制御)に加えて、入力値のバリデーション、削除前の確認、論理削除、監査ログなどの設計も重要になる。
CRUDさえできればどんなアプリも作れる?
基本的にはそうだが、すべてのアプリがCRUDだけで完結するわけではない。たとえば「ファイルのエクスポート」「メール送信」「外部APIとの連携」などは、CRUDの枠に収まらない処理だ。ただし、多くのWebアプリの中核はCRUDで成り立っているため、まずこの4つを押さえることが近道といえる。
PATCHとPUTの違いは?
どちらもUpdateに対応するHTTPメソッドだが、使い方が異なる。PUT はリソース全体を上書きする意味合いで使い、PATCH は一部だけを変更するときに使う。実際のAPI設計では PATCH のほうが使いやすい場面も多く、どちらを使うかは設計の方針による。
より詳しくAIに聞いてみよう
- CRUDとは何かを、初心者でもわかるように説明してください。
- REST APIにおけるCRUDとHTTPメソッドの対応関係を整理してください。
- Node.jsとデータベースを使ってCRUDのAPIを実装する基本的なコードを教えてください。
- CRUDのUpdateとDeleteで、誤操作・不正操作を防ぐにはどんな設計が必要ですか?
- AIコーディングでCRUDアプリを作るとき、どんな順番で実装を進めるのが効率的ですか?