2 CREATE VIEW (7)

Một phần của tài liệu Giáo trình quản trị cơ sở dữ liệu (Trang 79 - 81)

- DEFAULT IDENTITY

5. 2 CREATE VIEW (7)

Là lệnh để tạo khung nhìn. Một khung nhìn được xác định bởi tên, danh sách các thuộc tính. Trong trường hợp khơng chỉ ra danh sách thuộc tính, CREATE VIEW sẽ mặc định lấy tất cả các trường hợp trong các bảng tiên đề.

Cú pháp:

CREATE VIEW <Viewname> [WITH SCHEMABINDING] AS <Select_Statement>

[WITH CHECK OPTION]

Trong đĩ:

+ Viewname: là tên của view cần tạo

+ WITH SCHEMABINDING: Đảm bảo rằng tất cả các đối tượng cĩ trong câu lệnh tạo View khơng thể được xố khi View đang tồn tại.

+ WITH CHECK OPTION: Đảm bảo rằng nếu bạn muốn sửa hoặc thêm dữ liệu thơng qua View thì những dữ liệu đĩ phải thoả mãn tất cả các điều kiện trong câu lệnh Select

Sau đây là các ví dụ:

Ví dụ 1: Tạo view KHACH_HANG_VW trên bảng KHACH_HANG chỉ cĩ thể truy

cập cột HO_KH và TEN_KH thì thực hiện như sau: USE QLBanHang

GO

CREATE VIEW KHACH_HANG_VW

AS

SELECT HO_KH, TEN_KH FROM KHACH_HANG

GO

Ví dụ 2: tạo view MatHang_VW trên bảng MatHang chỉ chứa những dịng dữ liệu cĩ

MaLoaiHang là CPU bạn thực hiện như sau: USE QLBanHang

GO

CREATE VIEW MatHang _VW

AS

SELECT * FROM MatHang

WHERE MaLoaiHang = ‘CPU’ GO

Ví dụ 3.tạo view TONG _GIA_CPU_VW chứa tổng giá trị của các loại mặt hàng là

CPU như sau, đặt tên cho cột SUM (DonGia) là TONG:

CREATE VIEW TONG_GIA_CPU_VW

AS

SELECT MaLoaiHang, SUM(DonGia) TONG From MatHang

Where MaLoaiHang = ‘CPU’ GO.

Ví dụ 4: tạo view TONG_GIA_VW chứa tổng giá trị của từng loại mặt hàng. CREATE VIEW TONG_GIA_VW

AS

SELECT MaLoaiHang, SUM (DonGia) TONG FROM MatHang

GROUP BY MaLoaiHang GO.

Ví dụ 5: CREATE VIEW NhanVienDuAn1

AS SELECT HoTen, Ten, TenDA, SoGio FROM NhanVien, DuAn, NhanVienDuAn

WHERE NhanVien.MaNV = NhanVienDuAn.MaVN AND DuAn.MaDA = NhanVienDuAn.MaDA;

Vì trong ví dụ này khơng chỉ ra danh sách các thuộc tính cho NhanVienDuAn1 nên khung nhìn này lấy tồn bộ các thuộc tính sau mệnh đề SELECT.

Ví dụ 6: CREATE VIEW DonVi_info

(TenDV varchar(15),

SoNhanVien integer,

TongLuong integer);

AS SELECT TenDV, COUNT(*), SUM (SALARY)

FROM (DonVi JOIN NhanVin ON DonVi.MaDV = NhanVien.MaDV) GROUP BY TenDV;

Trong ví dụ này chúng ta chỉ ra một cách tường minh tên các trường, nên các thuộc tính của khung nhìn DonVi_info khơng lấy tên mặc định của các thuộc tính của khung nhìn select nữa.

Một phần của tài liệu Giáo trình quản trị cơ sở dữ liệu (Trang 79 - 81)