Dạng xem SQL là một bảng ảo hoặc một tập kết quả được tạo bởi truy vấn SELECT. Không giống như bảng vật lý, khung nhìn không lưu trữ dữ liệu trong cơ sở dữ liệu. Khi chúng tôi chạy truy vấn CHỌN để điền dữ liệu, nó sẽ thực thi truy vấn tạo chế độ xem (Định nghĩa chế độ xem).
Chế độ xem trong MySQL là gì
Giả sử bạn có một truy vấn SQL phức tạp sử dụng nhiều phép nối và logic nghiệp vụ phức tạp. Bạn sử dụng truy vấn này trong mã ứng dụng thường xuyên. Tuy nhiên, do yêu cầu kinh doanh, bạn phải thay đổi logic truy vấn đó. Những thay đổi được thực hiện trong một truy vấn phải phản ánh trong toàn bộ ứng dụng.
Trong những trường hợp như vậy, tốt hơn nên tạo một dạng xem SQL và đóng gói logic nghiệp vụ bên trong nó. Hơn nữa, khi chúng tôi muốn thay đổi định nghĩa truy vấn, chúng tôi có thể thay đổi định nghĩa của chế độ xem thay vì thực hiện các thay đổi trong ứng dụng.
Các chế độ xem cũng áp dụng để ẩn tên thực và chi tiết của bảng. Nếu chúng tôi lưu trữ bất kỳ thông tin nhạy cảm nào của khách hàng trong bảng và chỉ muốn hiển thị các chi tiết chính, chúng tôi có thể tạo chế độ xem.
Bài viết này sẽ giải thích về Tạo chế độ xem , Thay thế Chế độ xem và Drop View sử dụng câu lệnh trong máy chủ MySQL.
Mẫu Cơ sở dữ liệu Thiết lập
Để trình diễn, tôi đã cài đặt MySQL Server và tạo cơ sở dữ liệu giả có tên EltechDB . Trong cơ sở dữ liệu đó, tôi đã tạo một bảng có tên tble Employee .
Truy vấn sau tạo EltechDB cơ sở dữ liệu:
Create database EltechDB;
Truy vấn sau tạo nhân viên thất nghiệp bảng:
CREATE TABLE tblemployees (
emp_no INT NOT NULL,
birth_date DATE NOT NULL,
first_name VARCHAR(14) NOT NULL,
last_name VARCHAR(16) NOT NULL,
gender ENUM ('M','F') NOT NULL,
hire_date DATE NOT NULL,
PRIMARY KEY (emp_no)
);
Tôi đã chèn một số bản ghi giả vào tble Employee bảng sử dụng truy vấn sau:
INSERT INTO `EltechDB`.`tblemployees`
VALUES
(10001,'1953-09-02','Georgi','Facello','M','1986-06-26'),
(10002,'1964-06-02','Bezalel','Simmel','F','1985-11-21'),
(10003,'1959-12-03','Parto','Bamford','M','1986-08-28'),
(10004,'1954-05-01','Chirstian','Koblick','M','1986-12-01'),
(10005,'1955-01-21','Kyoichi','Maliniak','M','1989-09-12'),
(10006,'1953-04-20','Anneke','Preusig','F','1989-06-02'),
(10007,'1957-05-23','Tzvetan','Zielinski','F','1989-02-10'),
(10008,'1958-02-19','Saniya','Kalloufi','M','1994-09-15'),
(10009,'1952-04-19','Sumant','Peac','F','1985-02-18'),
(10010,'1963-06-01','Duangkaew','Piveteau','F','1989-08-24');
Bây giờ, chúng ta hãy làm rõ các câu lệnh để quản lý các khung nhìn MySQL.
Cách tạo Chế độ xem trong MySQL
Câu lệnh Tạo dạng xem tạo dạng xem mới trong cơ sở dữ liệu. Cú pháp như sau:
Create View view_name
As
Select * from base_table
Đây:
- view_name là tên mong muốn của Chế độ xem.
- select * from là truy vấn tạo Chế độ xem bằng cách sử dụng base_table . Truy vấn được chỉ định sau AS từ khóa.
Ví dụ về cú pháp tạo chế độ xem trong MySQL
Giả sử chúng ta muốn tạo một dạng xem điền danh sách nhân viên. Định nghĩa của Chế độ xem như sau:
Create view vwEmployees
as
select * from tblemployees;
Để truy cập dữ liệu của View, chúng ta có thể sử dụng truy vấn SELECT. Để xem dữ liệu của vwE Employees , chạy truy vấn sau:
mysql> select * from vwEmployees;
Đầu ra:
Lọc dữ liệu của dạng xem bằng mệnh đề WHERE
Chúng ta có thể lọc đầu ra View bằng mệnh đề WHERE. Trong trường hợp của chúng tôi, chúng tôi muốn truy xuất danh sách nữ nhân viên từ vwE Employees . Truy vấn như sau:
mysql> select * from vwEmployees where gender='F';
Đầu ra của Truy vấn là:
Hãy lấy một ví dụ khác. Chúng tôi muốn truy xuất danh sách nhân viên có số nhân viên ít hơn 10005 . Truy vấn như sau:
mysql> select * from vwemployees where emp_no<10005;
Đầu ra truy vấn:
Sử dụng Hàm tổng hợp trên Chế độ xem
Chúng ta có thể sử dụng các chức năng tổng hợp trên Chế độ xem.
Ở đây, chúng tôi muốn điền số lượng nhân viên nam và nữ từ vwE Employees Lượt xem. Đầu tiên, chúng tôi sử dụng hàm COUNT để tính số lượng nhân viên. Sau đó, chúng tôi sử dụng mệnh đề GROUP BY để nhóm đầu ra dựa trên cột giới tính. Truy vấn như sau:
mysql> select gender, count(emp_no)as 'Total Employees' from vwEmployees group by gender;
Đầu ra truy vấn:
Sử dụng Hàm Ngày-Giờ trên Chế độ xem
Chúng ta có thể sử dụng chức năng ngày-giờ trên đầu ra View. Hãy truy xuất danh sách những nhân viên có năm gia nhập lớn hơn hoặc bằng 1990. Truy vấn như sau:
mysql> select * from vwemployees where Year(hire_date)>=1990;
Đầu ra truy vấn:
Sử dụng chức năng Control-Flow trên View
Chúng ta có thể sử dụng hàm CASE hoặc IF trên đầu ra của Chế độ xem.
Chúng tôi in giá trị của giới tính ở một số định dạng có ý nghĩa. Đầu ra của cột giới tính được Chế độ xem trả về là M hoặc F. Thay vì in M, truy vấn phải trả về Nam . Tương tự, thay vì in F, truy vấn phải trả về Nữ . Truy vấn như sau:
mysql> Select first_name, last_name, case when gender='M' then 'Male' when gender ='F' then 'Female' end as 'Gender', hire_date from vwEmployees;
Đầu ra truy vấn:
Đọc thêm cách tạo dạng xem trong SQL.
Thay thế Chế độ xem Tuyên bố
CHẾ ĐỘ XEM THAY THẾ được sử dụng để thay đổi định nghĩa của một chế độ xem. Từ khóa TẠO CHẾ ĐỘ XEM và THAY THẾ CHẾ ĐỘ XEM được sử dụng cùng nhau. Cú pháp như sau:
Create or replace View view_name
As
Select * from base_table
Đây:
- Tạo hoặc thay thế Chế độ xem: Các từ khóa này dùng để tạo hoặc thay thế Chế độ xem hiện tại. Khi chúng tôi chạy câu lệnh chế độ xem tạo hoặc thay thế, MySQL sẽ kiểm tra xem nó có tồn tại trong cơ sở dữ liệu hay không. Nếu Chế độ xem tồn tại, nó sẽ thay đổi định nghĩa Chế độ xem bằng cách sử dụng truy vấn được chỉ định sau từ khóa AS. Nếu Chế độ xem không tồn tại, Chế độ xem sẽ tạo một chế độ xem mới bằng cách sử dụng truy vấn được chỉ định sau từ khóa AS.
- view_name là tên mong muốn của Chế độ xem.
- select * from là truy vấn được sử dụng để tạo Chế độ xem bằng base_table . Truy vấn được chỉ định sau AS từ khóa.
Lưu ý: Tạo hoặc Thay thế các từ khóa chế độ xem tạo một chế độ xem mới hoặc thay đổi định nghĩa Chế độ xem hiện tại.
Viết tên Chế độ xem trong ‘database_name’. ’view_name’ định dạng . Nếu bạn không chỉ định cơ sở dữ liệu, bạn có thể tạo Chế độ xem trong một cơ sở dữ liệu khác.
Ví dụ về MySQL CREATE View hoặc MySQL REPLACE View Statements
Chúng tôi chỉ muốn hiển thị họ, tên và giới tính của nhân viên. Ngoài ra, chúng tôi muốn cung cấp tên thích hợp cho các cột. Ví dụ: first_name và last_name các giá trị cột phải được kết hợp và tên cột phải là tên của nhân viên. Truy vấn SQL phải như sau:
mysql> create or replace view vwEmployees(EmployeeName,gender) as select concat(first_name, " ",last_name),gender from tblEmployees;
Chạy truy vấn CHỌN sau để xem dữ liệu từ vwEprisees :
mysql> select * from vwEmployees
Đầu ra truy vấn:
Như bạn có thể thấy, first_name và last_name các giá trị được kết hợp trong Tên nhân viên cho biết rằng định nghĩa Chế độ xem đã được cập nhật.
Tuyên bố về chế độ xem MySQL DROP
Từ khóa DROP View dùng để loại bỏ View khỏi cơ sở dữ liệu. Cú pháp như sau:
Drop View ‘database_name’.’view_name’
Trong cú pháp, view_name là tên của Chế độ xem mà bạn muốn thả xuống.
Hãy để chúng tôi loại bỏ vwE Nhân viên Xem bằng cách sử dụng câu lệnh DROP View. Thực hiện truy vấn sau:
mysql> DROP VIEW `eltechdb`.`vwemployees`;
Để xác minh rằng Chế độ xem đã bị loại bỏ, hãy chạy truy vấn sau:
mysql> SELECT TABLE_SCHEMA, TABLE_NAME FROM information_schema.tables WHERE TABLE_TYPE LIKE 'VIEW' and table_schema='EltechDB';
Đầu ra:
Truy vấn trả về 0 hàng do đó cho biết rằng Chế độ xem đã bị xóa.
Tóm tắt
Bài viết này đã giải thích và trình bày các khung nhìn MySQL và các cách tạo và quản lý các khung nhìn đó. Nó cũng làm rõ việc sử dụng các câu lệnh CREATE VIEW, REPLACE View và DROP View. Chế độ xem CREATE được sử dụng để tạo một chế độ xem, THAY THẾ Chế độ xem thay đổi định nghĩa của Chế độ xem và Chế độ xem DROP sẽ xóa Chế độ xem.