06/04/2021, 14:50

Lệnh Drop View trong MySQL - MySQL nâng cao

Trong bài viết này chúng ta sẽ tìm hiểu lệnh Drop View trong MySQL, đây là lệnh dùng để xóa một View bất kì ra khỏi database trong MySQL. 1. Giới thiệu lệnh Drop View trong MySQL Lệnh Drop View sẽ xóa một view ra khỏi database, sau khi thực hiện bạn sẽ không thể phục hồi lại view đó được. ...

Trong bài viết này chúng ta sẽ tìm hiểu lệnh Drop View trong MySQL, đây là lệnh dùng để xóa một View bất kì ra khỏi database trong MySQL.

1. Giới thiệu lệnh Drop View trong MySQL

Lệnh Drop View sẽ xóa một view ra khỏi database, sau khi thực hiện bạn sẽ không thể phục hồi lại view đó được.

Cú pháp như sau:

DROP VIEW [IF EXISTS] view_name;

Trong đó:

  • Từ khóa DROP VIEW cho biết là bạn đang muốn xóa một view nào đó.
  • Từ khóa IF EXISTS có thể có hoặc không. Nếu có thì sẽ không bị lỗi khi view không tồn tai, ngược lại sẽ bị lỗi.

Để xóa nhiều view cùng một lúc thì ta sử dụng cú pháp sau:

DROP VIEW [IF EXISTS] view_name1 [,view_name2]...;

Trong lệnh này nếu bạn không sử dụng từ khóa IF EXISTS thì chỉ cần một view không tồn tại là kết quả lênh SQL không được thực hiện, đồng nghĩa với việc không có view nào được xóa.

* Lưu ý: Phiên bản MySQL 5.7 trở về trước thì lại khác, nó trả về lỗi các view không tồn tại nhưng vẫn xóa những view tồn tai.

2. Cách dùng Drop View trong MySQL để xóa View

Hãy làm một vài ví dụ về xóa view để hiểu rõ hơn câu lệnh này.

Vi dụ 1: Xóa một view

Giả sử mình dùng lệnh sau để tạo view customerPayments.

customers payments png

CREATE VIEW customerPayments 
AS
    SELECT 
        customerName, 
        SUM(amount) payment
    FROM
        customers
    INNER JOIN payments 
        USING (customerNumber)
    GROUP BY 
        customerName;

Sau đó mình dùng lệnh Drop View để xóa view vừa tạo đó.

DROP VIEW IF EXISTS customerPayments;

Ví dụ 2: Xóa nhiều view cùng một lệnh

Cho hai table có cấu trúc như sau:

offices employees png

Bây giờ mình tạo mới một view có tên là employeeOffices.

CREATE VIEW employeeOffices AS
    SELECT 
        firstName, lastName, addressLine1, city
    FROM
        employees
            INNER JOIN
        offices USING (officeCode);

Bạn hãy để ý nhé, mình chỉ mới tạo một view thôi, nên câu lệnh xóa 2 view dưới đây sẽ bị lỗi.

DROP VIEW employeeOffices, eOffices;

Lỗi thu được đó là:

Error Code: 1051. Unknown table 'classicmodels.eoffices'

Nhưng nếu ta thêm từ khóa IF EXISTS thì chuyện gì xảy ra?

DROP VIEW IF EXISTS employeeOffices, eOffices;

Kết quả thu được:

1 warning(s): 1051 Unknown table 'classicmodels.eoffices'

Như vậy câu lệnh vẫn chạy thành công, chỉ là xuất hiện một cảnh báo lỗi.

Giả sử ta tạo thêm một view nữa dựa trên hai bảng sau:

product productlines png

CREATE VIEW productCatalogs AS
    SELECT 
        productLine, productName, msrp
    FROM
        products
            INNER JOIN
        productLines USING (productLine);

Bây giờ chạy lênh Drop View để xóa hai views: productCatalogs và employeeOffices quá đơn giản.

DROP VIEW employeeOffices, productCatalogs;

Kết quả trả về thành công!

Như vậy mình đã hướng dẫn xong cách sử dụng lệnh Drop View trong MySQL để xóa các view. Chúc bạn thực hiện thành công!

Bùi Văn Nam

27 chủ đề

7090 bài viết

Cùng chủ đề
0