Sử Dụng View Trong SQL

Học SQL cơ bản nâng cao
  • Cơ bản về SQL
  • Giới thiệu SQL
  • SQL là gì
  • Các khái niệm RDBMS
  • Database là gì
  • Cú pháp SQL cơ bản
  • Kiểu dữ liệu
  • Toán tử
  • Biểu thức (Expression)
  • SQL Database
  • Lệnh Create Database
  • Lệnh Drop Database
  • Lệnh Select Database
  • Lệnh Rename Database
  • SQL Table
  • Lệnh Create Table
  • Lệnh Drop Table
  • Lệnh Delete Table
  • Lệnh Rename Table
  • Lệnh Truncate Table
  • Lệnh ALter Table
  • Sao chép bảng
  • Bảng tạm (Temp Table)
  • Nhóm lệnh thao tác cơ bản
  • Truy vấn Update
  • Truy vấn Insert
  • Truy vấn Select
  • Mệnh đề Order By
  • Mệnh đề Group By
  • Từ khóa Distinct
  • Sắp xếp kết quả
  • Mệnh đề trong SQL
  • Mệnh đề Where
  • Mệnh đề AND & OR
  • Mệnh đề WITH
  • Mệnh đề Like
  • Mệnh đề Top
  • Hoạt động SQL nâng cao
  • Mệnh đề Union
  • Giá trị NULL
  • Cú pháp Alias
  • Chỉ mục (Index)
  • Sử dụng View
  • Mệnh đề Having
  • SQL Transaction
  • Toán tử Wildcard
  • Truy vấn con
  • Sử dụng Sequence
  • Xử lý bản sao
  • SQL Injection
  • Ràng buộc trong SQL
  • Ràng buộc (Constraint)
  • Ràng buộc NOT NULL
  • Ràng buộc DEFAULT
  • Ràng buộc UNIQUE
  • Ràng buộc PRIMARY KEY
  • Ràng buộc FOREIGN KEY
  • Ràng buộc CHECK
  • Ràng buộc INDEX
  • SQL Join
  • Sử dụng Join
  • Inner Join
  • Left Join
  • Right Join
  • Full Join
  • Self Join
  • Cartesian Join
  • Hàm trong SQL
  • Hàm hữu ích
  • Hàm xử lý Date
  • Hàm xử lý chuỗi
  • Hàm xử lý số
  • Tài liệu SQL tham khảo
  • First Normal Form (1NF)
  • Second Normal Form (2NF)
  • Third Normal Form (3NF)
  • Tuning DB
  • Tài liệu SQL tham khảo
Sử dụng View trong SQL Trang trước Trang sau

Một view là không gì khác ngoài môt lệnh SQL mà được lưu giữ trong Database với một tên liên kết. Một view thực sự là một thành phần của một bảng trong form của một truy vấn SQL đã được định nghĩa trước.

Một view có thể chứa tất cả các hàng của một bảng hoặc các hàng đã được chọn từ một bảng. Một view có thể được tạo từ một hoặc nhiều bảng, phụ thuộc vào truy vấn SQL đã viết để tạo một view.

View, về bản chất giống các Virtual Table (bảng ảo), cho phép người dùng thực hiện:

  • Cấu trúc dữ liệu theo cách mà người dùng tìm thấy tính tự nhiên hoặc tính trực quan.

  • Giới hạn truy cập tới dữ liệu để mà một người dùng có thể thấy và (đôi khi) sửa đổi một cách chính xác nhưng gì họ cần.

  • Tổng kết dữ liệu từ các bảng đa dạng để tạo các bản báo cáo.

Tạo View trong SQL

View được tạo bởi sử dụng lệnh CREATE VIEW. Các view có thể được tạo từ một bảng đơn, nhiều bảng hoặc từ view khác.

Để tạo một view, người dùng phải được trao quyền hệ thống thích hợp theo trình triển khai cụ thể.

Cú pháp cơ bản của lệnh CREATE VIEW trong SQL là như sau:

CREATE VIEW ten_view AS SELECT cot1, cot2..... FROM ten_bang WHERE [dieu_kien];

Bạn có thể bao nhiều bảng trong lệnh SELECT theo cách tương tự như bạn sử dụng chúng trong truy vấn SELECT thông thường.

Quảng cáo

Ví dụ

Bảng SINHVIEN có các bản ghi sau:

+----+---------+-----+-----------+--------+ | ID | TEN | TUOI| KHOAHOC | HOCPHI | +----+---------+-----+-----------+---------+ | 1 | Hoang | 21 | CNTT | 4000000 | | 2 | Viet | 19 | DTVT | 3000000 | | 3 | Thanh | 18 | KTDN | 4000000 | | 4 | Nhan | 19 | CK | 4500000 | | 5 | Huong | 20 | TCNH | 5000000 | +----+---------+-----+-----------+---------+

Bây giờ là một ví dụ để tạo một view từ bảng này. View này sẽ được sử dụng để có TEN và TUOI của sinh viên:

SQL > CREATE VIEW SINHVIEN_VIEW AS SELECT TEN, TUOI FROM SINHVIEN;

Bây giờ, bạn có thể truy vấn SINHVIEN_VIEW theo cách tương tự bạn truy vấn một bảng thực sự. Sau đây là ví dụ:

SQL > SELECT * FROM SINHVIEN_VIEW;

Ví dụ trên sẽ cho kết quả:

+----------+-----+ | TEN | TUOI | +----------+-----+ | Hoang | 21 | | Viet | 19 | | Thanh | 18 | | Nhan | 19 | | Huong | 20 | +----------+-----+

WITH CHECK OPTION trong SQL

WITH CHECK OPTION là một tùy chọn của lệnh CREATE VIEW. Mục đích của WITH CHECK OPTION là để bảo đảm rằng tất cả UPDATE và INSERT thỏa mãn các điều kiện trong định nghĩa view.

Nếu chúng không thỏa mãn các điều kiện, thì UPDATE và INSERT trả về một lỗi.

Ví dụ sau tạo cùng một view là SINHVIEN_VIEW với WITH CHECK OPTION.

CREATE VIEW SINHVIEN_VIEW AS SELECT TEN, TUOI FROM SINHVIEN WHERE TUOI IS NOT NULL WITH CHECK OPTION;

Trong trường hợp này, WITH CHECK OPTION nên từ chối bất kỳ giá trị NULL nào trong cột TUOI của view, bởi vì view được định nghĩa bởi dữ liệu mà không có giá trị NULL trong cột TUOI.

Cập nhật một View trong SQL

Một view có thể được cập nhật dưới các điều kiện cụ thể sau:

  • Mệnh đề SELECT không thể chứa từ khóa DISTINCT.

  • Mệnh đề SELECT không thể chứa các hàm tổng.

  • Mệnh đề SELECT không thể chứa các hàm tập hợp.

  • Mệnh đề SELECT không thể chứa các toán tử tập hợp.

  • Mệnh đề SELECT không thể chứa một mệnh đề ORDER BY.

  • Mệnh đề FROM không thể chứa nhiều bảng.

  • Mệnh đề WHERE không thể chứa các truy vấn phụ.

  • Truy vấn không thể chứa GROUP BY hoặc HAVING.

  • Các cột được ước lượng không thể bị cập nhật.

  • Tất cả các cột NOT NULL từ bảng ban đầu phải được bao trong view để cho truy vấn INSERT vận hành.

Vì thế, nếu một view thỏa mãn tất cả các qui tắc trên, thì bạn có thể cập nhật một view. Sau đây là ví dụ cập nhật TUOI của Hoang.

SQL > UPDATE SINHVIEN_VIEW SET TUOI = 20 WHERE TEN='Hoang';

Cuối cùng, bảng SINHVIEN ban đầu được cập nhật và theo đó view được cập nhật. Bây giờ, thử truy vấn bảng ban đầu, và lệnh SELECT sẽ cho kết quả:

+----+---------+-----+-----------+--------+ | ID | TEN | TUOI| KHOAHOC | HOCPHI | +----+---------+-----+-----------+---------+ | 1 | Hoang | 20 | CNTT | 4000000 | | 2 | Viet | 19 | DTVT | 3000000 | | 3 | Thanh | 18 | KTDN | 4000000 | | 4 | Nhan | 19 | CK | 4500000 | | 5 | Huong | 20 | TCNH | 5000000 | +----+---------+-----+-----------+---------+

Chèn các hàng vào trong một View trong SQL

Các hàng dữ liệu có thể được chèn vào trong một view. Các qui tắc áp dụng cho lệnh UPDATE cũng sẽ được áp dụng cho lệnh INSERT trong SQL.

Ở đây, chúng ta không thể chèn các hàng vào trong SINHVIEN_VIEW bởi vì chúng ta không được bao gồm tất cả cột NOT NULL trong view này. Chúng ta có thể chèn các hàng vào trong một view theo cách tương tự khi bạn chèn chúng vào trong một bảng.

Xóa hàng từ một View trong SQL

Các hàng dữ liệu có thể bị xóa từ một view. Các qui tắc áp dụng cho lệnh UPDATE và lệnh INSERT cũng sẽ được áp dụng cho lệnh DELETE trong SQL.

Ví dụ sau sẽ xóa một hàng có TUOI = 18.

SQL > DELETE FROM SINHVIEN_VIEW WHERE TUOI = 18;

Cuối cùng, một hàng trong bảng SINHVIEN ban đầu sẽ bị xóa và kết quả tương tự với chính view đó. Bây giờ, thử truy vấn bảng ban đầu, và lệnh SELECT sẽ cho kết quả:

+----+---------+-----+-----------+--------+ | ID | TEN | TUOI| KHOAHOC | HOCPHI | +----+---------+-----+-----------+---------+ | 1 | Hoang | 21 | CNTT | 4000000 | | 2 | Viet | 19 | DTVT | 3000000 | | 4 | Nhan | 19 | CK | 4500000 | | 5 | Huong | 20 | TCNH | 5000000 | +----+---------+-----+-----------+---------+

Xóa View trong SQL

Rõ ràng là, khi bạn đã có một view, và việc không cần thiết sử dụng view này nữa thì điều cần làm là xóa chúng đi. Cú pháp cơ bản để xóa view trong SQL như sau:

DROP VIEW ten_view; Quảng cáo

Ví dụ sau để xóa SINHVIEN_VIEW từ bảng ban đầu.

DROP VIEW SINHVIEN_VIEW; Trang trước Trang sau Quảng cáo Bài viết liên quan
  • 160 bài học ngữ pháp tiếng Anh hay nhất

  • 155 bài học Java tiếng Việt hay nhất

  • 100 bài học Android tiếng Việt hay nhất

  • 247 bài học CSS tiếng Việt hay nhất

  • 197 thẻ HTML cơ bản

  • 297 bài học PHP

  • 101 bài học C++ hay nhất

  • 97 bài tập C++ có giải hay nhất

  • 208 bài học Javascript có giải hay nhất

Học cùng VietJack
Tài liệu giáo viên

Trang web chia sẻ nội dung miễn phí dành cho người Việt.

Lớp 1-2-3 Lớp 4 Lớp 5 Lớp 6 Lớp 7 Lớp 8 Lớp 9 Lớp 10 Lớp 11 Lớp 12 Lập trình Tiếng Anh

Chính sách

Chính sách bảo mật

Hình thức thanh toán

Chính sách đổi trả khóa học

Chính sách hủy khóa học

Tuyển dụng

Liên hệ với chúng tôi

Tầng 2, số nhà 541 Vũ Tông Phan, Phường Khương Đình, Quận Thanh Xuân, Thành phố Hà Nội, Việt Nam

Phone: 084 283 45 85

Email: vietjackteam@gmail.com

Tải nội dung trên Google Play Tải nội dung trên IOS Store

CÔNG TY TNHH ĐẦU TƯ VÀ DỊCH VỤ GIÁO DỤC VIETJACK

Người đại diện: Nguyễn Thanh Tuyền

Số giấy chứng nhận đăng ký kinh doanh: 0108307822, ngày cấp: 04/06/2018, nơi cấp: Sở Kế hoạch và Đầu tư thành phố Hà Nội.

2015 © All Rights Reserved. DMCA.com Protection Status

Từ khóa » Bài Tập Về View Trong Sql Có Lời Giải