SQL Cơ bản - VIEW
Trong bài viết này, chúng ta sẽ cùng nhau khám phá một khái niệm cực kỳ thú vị mà không phải ai cũng biết đến - đó chính là SQL VIEW. Hãy chuẩn bị tâm lý, vì biết đâu bạn sẽ cảm thấy hào hứng như đang xem một bộ phim hành động Hollywood!
1. SQL VIEW là gì?
Trước khi bắt đầu, chúng ta cần làm rõ một vấn đề: SQL VIEW không phải là một loại kính mà bạn dùng để xem Netflix, cũng không phải là một bộ phim với những cảnh quay đẹp mê hồn.
VIEW trong SQL là một cách để bạn tạo ra một bảng ảo (virtual table) từ các bảng dữ liệu có sẵn. Điều này có nghĩa là bạn có thể dễ dàng truy xuất dữ liệu mà không cần phải lôi ra từng bảng một.
Khi bạn tạo một VIEW, bạn thực chất đang tạo ra một truy vấn SQL được lưu trữ.
Khi bạn sử dụng VIEW, bạn giống như đang gọi lại truy vấn đó mà không cần phải gõ lại tất cả mọi thứ. Thật tiện lợi phải không nào?
2. Tại sao nên sử dụng VIEW?
Giảm bớt khó khăn:
Giả sử bạn có một bảng dữ liệu khổng lồ với hàng triệu dòng và bạn chỉ cần lấy một số cột cụ thể. Thay vì viết một truy vấn dài dòng và phức tạp, bạn chỉ cần tạo một VIEW.
Như việc bạn có một menu ăn uống chỉ với những món mình thích, thay vì phải đọc cả thực đơn dày cộp.
Bảo mật dữ liệu:
Một trong những ưu điểm khác của VIEW là khả năng bảo mật. Bạn có thể cung cấp quyền truy cập vào VIEW mà không cần phải tiết lộ toàn bộ bảng dữ liệu gốc.
Giống như việc bạn cho người khác mượn chiếc kính mát của mình, nhưng không cho họ biết được bạn đang nhìn thấy gì đằng sau nó!
Dễ dàng bảo trì:
Nếu có sự thay đổi trong cấu trúc của bảng gốc, bạn chỉ cần chỉnh sửa VIEW một lần thay vì phải thay đổi tất cả các truy vấn khác.
Thật tiết kiệm thời gian và công sức, đúng không nào?
3. Cách tạo một SQL VIEW
Cú pháp cơ bản:
Để tạo một VIEW, bạn chỉ cần sử dụng cú pháp đơn giản sau:
1
2
3
4
CREATE VIEW ten_view AS
SELECT cot1, cot2, ...
FROM ten_bang
WHERE dieu_kien;
Trong đó:
-
CREATE VIEW:Đây là câu lệnh để bắt đầu việc tạo mộtVIEWmới. Giống như việc đặt tên cho một"menu ảo"trong nhà hàng, bạn đang tạo ra một bảng ảo(VIEW)để dễ dàng truy vấn dữ liệu từ bảng thực. -
ten_view:Là tên bạn đặt choVIEW. Bạn có thể chọn bất kỳ tên nào miễn là nó không trùng với tên của bảng hayVIEWđã có trong cơ sở dữ liệu. -
SELECT cot1, cot2, ...:Phần này là câu lệnh truy vấn SQL mà bạn muốn lưu trữ trongVIEW. Bạn chọn những cột (cot1, cot2, …) từ bảng hoặc các bảng khác nhau mà bạn muốn xuất hiện trongVIEW. -
FROM ten_bang:Tên bảng thực từ đó bạn muốn lấy dữ liệu. Đây là bảng mà bạn đang làm việc để lấy thông tin và biến nó thànhVIEW. -
WHERE dieu_kien:Điều kiện lọc (nếu có). Bạn có thể áp dụng các điều kiện để chọn ra những dòng dữ liệu phù hợp từ bảng. Nếu không có điều kiện nào cụ thể,VIEWsẽ bao gồm tất cả dữ liệu từ bảng gốc.
Ví dụ cụ thể:
Giả sử chúng ta có một bảng khach_hang với các thông tin như sau:
| id | ten | tuoi | thanh_pho |
|---|---|---|---|
| 1 | Nguyen A | 25 | Ha Noi |
| 2 | Tran B | 30 | Ho Chi Minh |
| 3 | Le C | 28 | Da Nang |
| 4 | Pham D | 35 | Hai Phong |
Bây giờ, nếu bạn muốn tạo một VIEW chỉ chứa tên và thành phố của các khách hàng từ Hà Nội, bạn có thể làm như sau:
1
2
3
4
CREATE VIEW khach_hang_hanoi AS
SELECT ten, thanh_pho
FROM khach_hang
WHERE thanh_pho = 'Ha Noi';
Khi bạn muốn xem danh sách khách hàng từ Hà Nội, bạn chỉ cần thực hiện truy vấn:
1
SELECT * FROM khach_hang_hanoi;
Kết quả là:
| ten | thanh_pho |
|---|---|
| Nguyen A | Ha Noi |
Thật đơn giản phải không? Giờ bạn có thể tự hào khoe với bạn bè rằng mình đã tạo ra một VIEW ấn tượng!
4. Cập nhật VIEW
Nhưng hãy cẩn thận, không phải tất cả các VIEW đều có thể được cập nhật. Nếu VIEW của bạn dựa trên nhiều bảng hoặc có các hàm tổng hợp, bạn sẽ không thể cập nhật trực tiếp nó. Tương tự như việc bạn không thể sửa đổi một bức tranh nổi tiếng mà chỉ có thể ngắm nhìn nó từ xa.
Cập Nhật Dữ Liệu:
Nếu VIEW của bạn đủ đơn giản (tức là chỉ dựa trên một bảng và không sử dụng các hàm tổng hợp), bạn có thể cập nhật nó bằng cách sử dụng cú pháp sau:
1
2
3
UPDATE khach_hang_hanoi
SET thanh_pho = 'Ha Noi'
WHERE ten = 'Nguyen A';
Xóa VIEW:
Khi bạn không còn cần VIEW đó nữa, bạn có thể xóa nó bằng cú pháp sau:
1
DROP VIEW khach_hang_hanoi;
55. Lưu ý khi sử dụng VIEW
Hiệu suất: VIEW không lưu trữ dữ liệu, mà chỉ lưu trữ truy vấn. Do đó, mỗi lần truy cập VIEW, hệ thống sẽ thực hiện truy vấn đó. Hãy cẩn thận nếu VIEW của bạn quá phức tạp, có thể làm giảm hiệu suất.
Phân quyền: Hãy nhớ rằng bạn có thể áp dụng các phân quyền khác nhau cho VIEW so với bảng gốc. Điều này có thể giúp tăng cường bảo mật cho dữ liệu của bạn.
Không hỗ trợ tất cả các chức năng: Một số chức năng SQL không được hỗ trợ trong VIEW, ví dụ như ORDER BY. Hãy chắc chắn tìm hiểu kỹ trước khi bắt tay vào tạo VIEW.
Kết luận
Và đó là tất cả về SQL VIEW! Hy vọng sau khi đọc bài viết này, bạn đã có thêm kiến thức và sự hứng thú với việc sử dụng VIEW trong SQL. Nhớ rằng, VIEW không chỉ là một công cụ hữu ích mà còn là một cách tuyệt vời để làm cho cuộc sống lập trình viên của bạn trở nên dễ dàng hơn.
Nếu bạn có bất kỳ câu hỏi nào hoặc muốn chia sẻ kinh nghiệm của mình với VIEW, hãy để lại một bình luận bên dưới nhé! Chúc bạn có một ngày tuyệt vời với những dòng mã SQL thú vị!
Bài viết mang tính chất “ghi chú, lưu trữ, chia sẻ và phi lợi nhuận”.
Nếu bạn thấy hữu ích, đừng quên chia sẻ với bạn bè và đồng nghiệp của mình nhé!
Happy coding! 😎 👍🏻 🚀 🔥