Thứ Sáu, 14 tháng 8, 2026

CRUD là gì? (4 thao tác mà gần như website nào cũng phải làm với Database)

Chúng ta bấm nút nguồn trên remote để mở tivi xem phim. Hầu như chúng ta không biết, không quan tâm nó truyền tia hồng ngoại hay sóng gì. Đến khi tivi không lên, hành động đầu tiên của ta là đập đập cái remote vào lòng bàn tay.

Có một sự thật rất thú vị.

Nếu bạn đã làm website một thời gian...

Thì khả năng cao bạn đã sử dụng CRUD rồi.

😄

Chỉ là...

Bạn chưa biết nó có tên là CRUD thôi.

Ví dụ.

Bạn tạo tài khoản.

Create

Bạn xem danh sách tài khoản.

Read

Bạn sửa thông tin.

Update

Bạn xóa tài khoản.

Delete

Bốn thao tác.

Hết.

😄

Nhưng gần như toàn bộ website có Database đều xoay quanh bốn việc này.


CRUD là gì?

CRUD là viết tắt của:

  • C – Create: Tạo dữ liệu.
  • R – Read: Đọc hoặc lấy dữ liệu.
  • U – Update: Cập nhật dữ liệu.
  • D – Delete: Xóa dữ liệu.

CRUD là nhóm bốn thao tác cơ bản mà ứng dụng thường sử dụng để làm việc với dữ liệu trong Database.

Ví dụ một website bán hàng có thể:

Create: thêm sản phẩm.

Read: xem sản phẩm.

Update: sửa sản phẩm.

Delete: xóa sản phẩm.



Ví dụ đời thường nhất 📒

Hãy tưởng tượng.

Bạn có một cuốn sổ danh bạ.

📖

Trong đó có:

An       0901...
Bình     0902...
Cường    0903...

Một ngày đẹp trời.

Bạn làm bốn việc.


1. Thêm người mới

Bạn ghi:

Dũng     0904...

Đó là:

Create.


2. Xem thông tin

Bạn mở sổ.

Tìm:

Bình

Đó là:

Read.


3. Sửa thông tin

Bình đổi số điện thoại.

Bạn gạch số cũ.

Ghi số mới.

Đó là:

Update.


4. Xóa người

Cường chuyển sang sống trên sao Hỏa. 🚀

🤣

Bạn xóa Cường khỏi danh bạ.

Đó là:

Delete.


CRUD trong Database

Bây giờ.

Đổi cuốn sổ.

Thành MySQL.

😄

Ta có bảng:

users

Ví dụ:

id | name   | email
---|--------|----------------
1  | An     | an@email.com
2  | Bình   | binh@email.com
3  | Cường  | cuong@email.com

Bốn thao tác CRUD sẽ tương ứng với SQL.


C – Create

Muốn thêm dữ liệu.

Chúng ta dùng:

INSERT

Ví dụ:

INSERT INTO users (name, email)
VALUES ('Dũng', 'dung@email.com');

Database sẽ thêm:

4 | Dũng | dung@email.com

🎉

Bạn vừa thực hiện:

Create.


R – Read

Muốn đọc dữ liệu.

Chúng ta thường dùng:

SELECT

Ví dụ:

SELECT * FROM users;

Database trả về danh sách.

An
Bình
Cường
Dũng

Đây là:

Read.


U – Update

Bình đổi email.

Bạn cần sửa dữ liệu.

Dùng:

UPDATE

Ví dụ:

UPDATE users
SET email = 'binh-new@email.com'
WHERE id = 2;

Bình.

Có email mới.

😄

Đó là:

Update.


D – Delete

Cường không còn dùng tài khoản.

Bạn muốn xóa.

Dùng:

DELETE

Ví dụ:

DELETE FROM users
WHERE id = 3;

Cường biến mất khỏi bảng.

😅

Đó là:

Delete.


Chua thêm 😆

CRUD thực ra rất đời thường.

Bạn mua một cái tủ.

🗄️

Create

→ Bỏ đồ mới vào.

Read

→ Mở tủ xem đồ.

Update

→ Đổi vị trí đồ.

Delete

→ Vứt đồ không dùng.

🤣

Database cũng chẳng khác mấy.

Chỉ có điều...

Database không có cái tủ.

Nó có:

INSERT
SELECT
UPDATE
DELETE

CRUD và một website bán hàng 🛒

Hãy tưởng tượng.

Bạn có trang quản trị sản phẩm.

Thêm sản phẩm

Tên:
iPhone

Giá:
999

[Thêm sản phẩm]

Create


Xem sản phẩm

iPhone
Samsung
Laptop
iPad

Read


Sửa sản phẩm

iPhone
999 → 899

Update


Xóa sản phẩm

iPad

[Xóa]

Delete

Bạn vừa xây một hệ thống CRUD.

😄


CRUD và PHP

Bây giờ.

Nếu dùng PHP thuần.

Bạn có thể viết:

<?php

$sql = "SELECT * FROM users";

$result = mysqli_query($conn, $sql);

Đây là:

Read.


Thêm dữ liệu:

$sql = "INSERT INTO users (name, email)
        VALUES ('An', 'an@email.com')";

Create.


Sửa:

$sql = "UPDATE users
        SET name = 'An Nguyễn'
        WHERE id = 1";

Update.


Xóa:

$sql = "DELETE FROM users
        WHERE id = 1";

Delete.


CRUD và Laravel

Đây là lúc bài 64 và bài 65 bắt đầu kết nối với nhau.

😄

Laravel.

Framework.

MVC.

CRUD.

Ví dụ.

Một trang quản lý sản phẩm.

ProductController

có thể xử lý:

index()
create()
store()
edit()
update()
destroy()

Bạn sẽ thấy những cái tên này rất nhiều khi học Laravel.

Và bây giờ.

Bạn đã biết chúng đang làm gì.


CRUD có phải chỉ dành cho website?

Không.

😄

CRUD xuất hiện ở rất nhiều nơi.

Ví dụ:

Ứng dụng quản lý nhân viên

Create → Thêm nhân viên.

Read → Xem nhân viên.

Update → Sửa thông tin.

Delete → Xóa nhân viên.


Blog

Create → Viết bài.

Read → Đọc bài.

Update → Sửa bài.

Delete → Xóa bài.


Website bán hàng

Create → Thêm sản phẩm.

Read → Xem sản phẩm.

Update → Sửa sản phẩm.

Delete → Xóa sản phẩm.


Quản lý bệnh nhân

Create → Thêm hồ sơ.

Read → Xem hồ sơ.

Update → Cập nhật hồ sơ.

Delete → Xóa hồ sơ.


Một hiểu lầm rất phổ biến 🤡

Nhiều người nghĩ:

"CRUD là một ngôn ngữ lập trình."

Không.

😄

CRUD chỉ là:

Bốn loại thao tác cơ bản với dữ liệu.

Nó không phải:

PHP.

Không phải:

MySQL.

Không phải:

Laravel.

Không phải:

Framework.

Nó chỉ là một cách gọi rất tiện.


CRUD có giống SQL không?

Không hoàn toàn.

SQL là:

Ngôn ngữ truy vấn Database.

CRUD là:

Khái niệm về bốn thao tác dữ liệu.

SQL có thể thực hiện CRUD.

Ví dụ:

Create → INSERT
Read   → SELECT
Update → UPDATE
Delete → DELETE

Đây là cách nhớ cực kỳ dễ.


CRUD và REST API 🌐

Đến đây.

Chúng ta có thể nối tiếp bài API.

😄

Một REST API thường có các HTTP method như:

POST
GET
PUT/PATCH
DELETE

Chúng thường được ánh xạ tương ứng với CRUD:

POST       → Create
GET        → Read
PUT/PATCH  → Update
DELETE     → Delete

Ví dụ.

Bạn gửi:

GET /api/products

Lấy danh sách sản phẩm.

Read.


Bạn gửi:

POST /api/products

Tạo sản phẩm mới.

Create.


Bạn gửi:

PUT /api/products/10

Cập nhật sản phẩm số 10.

Update.


Bạn gửi:

DELETE /api/products/10

Xóa sản phẩm số 10.

Delete.

😎

Bây giờ CRUD bắt đầu nối được:

Database → Backend → API → Frontend.

Đó chính là tư duy rất quan trọng.


Một lỗi cực nguy hiểm 😱

Trong CRUD.

Đặc biệt cẩn thận với:

DELETE

Ví dụ.

Bạn viết:

DELETE FROM users;

😨

Không có:

WHERE

Điều gì xảy ra?

...

Xóa toàn bộ users.

💀

Không phải một người.

Không phải mười người.

Mà...

Tất cả.


Và UPDATE cũng vậy 😭

Bạn viết:

UPDATE users
SET email = 'test@email.com';

Không có:

WHERE

Kết quả?

Tất cả user.

Có cùng email.

🤣

Đây chính là lý do.

Khi làm CRUD thật.

Bạn phải cực kỳ cẩn thận với:

UPDATE

DELETE.


InfinityFree Case 😅

Bạn đang test.

Website quản lý sản phẩm.

Bạn muốn xóa:

id = 15

Bạn viết:

DELETE FROM products
WHERE id = 15;

👍

An toàn hơn.

Nhưng nếu bạn vô tình viết:

DELETE FROM products;

...

Xin chia buồn.

🤣

Đó là lý do:

Backup Database trước khi "toang"

không phải bài viết cho vui.


Debug CRUD kiểu dev thật 😎

Khi CRUD không hoạt động.

Đừng chỉ nhìn giao diện.

Hãy đi từng bước.

1. Form có gửi dữ liệu không?

Nếu không.

Kiểm tra:

HTML.

Method.

Input name.


2. PHP có nhận dữ liệu không?

Kiểm tra:

$_POST

hoặc:

$_GET

3. SQL có đúng không?

Kiểm tra câu:

INSERT
SELECT
UPDATE
DELETE

4. Database có nhận dữ liệu không?

Mở phpMyAdmin.

Kiểm tra bảng.


5. Có lỗi SQL không?

Đừng chỉ nhìn:

"Không chạy."

Hãy lấy chính xác:

Error message.


6. UPDATE/DELETE có WHERE không?

Đây là bước:

CỰC KỲ QUAN TRỌNG.

😅


Một mẹo cực hay 😎

Khi học CRUD.

Đừng chỉ đọc lý thuyết.

Hãy tự xây một mini project.

Ví dụ:

Quản lý danh sách sách.

Bạn cần:

[Thêm sách]

[Danh sách sách]

[Sửa]

[Xóa]

Nếu làm được bốn chức năng này.

Bạn đã thực hành:

CRUD.

Và đồng thời.

Bạn sẽ đụng phải:

PHP.

MySQL.

Form.

Validation.

SQL.

Session.

Frontend.

Backend.

...

Một bài tập nhỏ.

Nhưng học được rất nhiều.


Checklist chuẩn không cần chỉnh 😎

  • CRUD = Create, Read, Update, Delete

  • Create thường dùng INSERT

  • Read thường dùng SELECT

  • Update dùng UPDATE

  • Delete dùng DELETE

  • CRUD không phải ngôn ngữ lập trình

  • CRUD không phải Framework

  • REST API thường ánh xạ HTTP methods với CRUD

  • Cẩn thận UPDATE/DELETE không có WHERE

  • Luôn backup dữ liệu quan trọng trước thao tác nguy hiểm


FAQ nhanh

CRUD có phải là Database không?

→ Không. CRUD là bốn thao tác cơ bản với dữ liệu.

CRUD có phải chỉ dành cho MySQL không?

→ Không. Ý tưởng CRUD có thể áp dụng với nhiều loại Database và hệ thống lưu trữ dữ liệu khác nhau.

CRUD có liên quan đến API không?

→ Có. REST API thường dùng GET, POST, PUT/PATCH và DELETE để thực hiện các thao tác tương ứng với Read, Create, Update và Delete.

Laravel có hỗ trợ CRUD không?

→ Có. Laravel cung cấp rất nhiều công cụ giúp xây dựng các ứng dụng CRUD nhanh và có cấu trúc.

CRUD có khó không?

→ Bản thân CRUD không khó. Cái khó nằm ở việc xây dựng một hệ thống CRUD an toàn, có validation, phân quyền, xử lý lỗi và bảo vệ Database.


Bạn có thể cũng đang gặp 😭

👉 MVC là gì? 

👉 Framework là gì? 

👉 API là gì? (Giải thích như gọi đồ ăn.)

👉 JSON là gì?

👉 LIMIT trong MySQL là gì? 

👉 Backup Database đúng cách trước khi "toang"

👉 SQL Injection là gì?

👉 Prepared Statement là gì?

👉 Session vs Cookie - Hai anh em dễ nhầm nhất của PHP


Tổng kết

Nếu Database là một cái tủ hồ sơ.

📚

Thì CRUD chính là bốn việc bạn làm với cái tủ đó:

C – Create

→ Bỏ hồ sơ mới vào.

R – Read

→ Lấy hồ sơ ra xem.

U – Update

→ Sửa hồ sơ.

D – Delete

→ Bỏ hồ sơ không cần nữa.

😄

Nghe đơn giản.

Nhưng hãy nhìn xung quanh.

Facebook.

Shopee.

Website bán hàng.

Blog.

Trang quản trị.

Hệ thống nhân viên.

Ứng dụng quản lý.

...

Gần như ở đâu có dữ liệu.

Ở đó có CRUD.

Và đây là một trong những lý do CRUD rất quan trọng với người mới học Backend.

Bạn không cần nhớ một đống thuật ngữ.

Chỉ cần nhớ:

Create → tạo

Read → đọc

Update → sửa

Delete → xóa

Bốn chữ.

CRUD.

🛠️

Nhưng hãy nhớ thêm một câu nữa:

UPDATE và DELETE mà quên WHERE thì đừng hỏi tại sao Database "khóc". 😭🤣