6 VÍ DỤ CƠ BẢN VỀ VIEW TRONG SQL SERVER
6 ví dụ về view cơ bản trong SQL Server cho người mới nhập môn
Khái niệm view
View là gì? Các bảng trong cơ sở dữ liệu đóng vai trò là các đối tượng tổ chức và lưu trữ dữ liệu. Như vậy, ta có thể quan sát được dữ liệu trong cơ sở dữ liệu bằng cách thực hiện các truy vấn trên bảng dữ liệu. Ngoài ra, SQL còn cho phép chúng ta quan sát được dữ liệu thông qua việc định nghĩa các khung nhìn.
Một view trong SQL 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.
Cú pháp tạo view
create view [tên view]
as
select [giá trị 1, giá trị 2...]
from [tên bảng]
where [điều kiện]
Ví dụ về view trong SQL
Cho CSDL Quản lý bán hàng như sau:
- NHASANXUAT(Masx, Tensx)
- CHUCVU(Macv, Tencv)
- KHACHHANG(Makh, Hoten, Diachi, SoDT)
- SANPHAM( Masp, Tensp, Gia, Solg, Tgbaohanh, Masx)
- PHIEUNHAP(Mapn, Tonggia, Ngaynhap, Manv)
- SP_PN(Masp, Mapn, SoLuong)
- HOADON(Mahd, Ngaylap, Thanhtien, Manv, Makh)
- SP_HD(Masp, Mahd, Slg)
- PHIEUBAOHANH(Mapbh, Ngaybd, Ngaykt, Masp)
- NHANVIEN(Manv, Tennv, Gt, NS, DC, SDT, Macv)
Database Diagrams
--vd1: Cho thông tin về sản phẩm có mã là 1
các bảng ảnh hưởng: SANPHAM
[code]
create view vd1 //vd1: ten cua view
as
select Masp, Tensp, Giaban, Solgton, Tgbaohanh
//các thông tin cần hiện thị về sản phẩm
from SANPHAM //lấy thông tin từ bảng SANPHAM
Where Masp=1 //điều kiện hiển thị là mã sp= 1
--vd2:Tên các nhân viên của công ty có họ là Nguyễn
-các bảng ảnh hưởng:NHANVIEN
[code]
create view vd2
as
select Tennv
from NHANVIEN
where Tennv like 'Nguyen %' //ho là nguyen va cac ki tu dang sau
--vd3:Cho thông tin nhân viên lập hóa đơn có mã hóa đơn là 1
create view vd3
as
select tennv, Gt, NS,DC,SDT
from HOADON,NHANVIEN
where HOADON.MaNV=NHANVIEN.Manv //dieu kien noi 2 bang
and Mahd=1
--vd4:Tổng số lượng nhập của sản phẩm có mã phiếu nhập là 1
-các bảng ảnh hưởng: SP_PN,PHIEU NHAP
[code]
create view vd4
as
select PHIEUNHAP.Mapn, sum (SoLuong) as TongSLNhap
//thay tên cột sum(SoLuong) thành TongSLNhap
from PHIEUNHAP,SP_PN
where PHIEUNHAP.Mapn = SP_PN.Mapn
and PHIEUNHAP.Mapn=1
group by PHIEUNHAP.Mapn
//các thuộc tính khác ngoài thuộc tính gom nhóm (sum, count..)trên select bưng hết vào đây
--vd5:Thông tin sản phẩm của khách hàng có mã hóa đơn là 2
-các bảng ảnh hưởng:SANPHAM,SP_HD,HOADON
[code]
create view vd5
as
select HOADON.Mahd,Tensp,Giaban,Solgton,Tgbaohanh
from HOADON,SP_HD,SANPHAM
where HOADON.Mahd=SP_HD.Mahd
and SP_HD.Masp=SANPHAM.Masp
and HOADON.Mahd=2
and HOADON.Mahd=2
--vd6:tổng tiền hóa đơn cao nhất
-các bảng ảnh hưởng: HOADON,SP_HD,SANPHAM
[code]
create view vd6
as
Select top 1 * from (select sum (Slg*Giaban) as maxHD
from HOADON,SP_HD,SANPHAM
where HOADON.Mahd=SP_HD.Mahd
and SP_HD.Masp=SANPHAM.Masp
)
order by maxHD //mệnh đề order by dùng để sắp xếp dữ liệu
Chú ý: Khi liên kết nhiều bảng với nhau cần chú ý thứ tự các bảng để viết điều kiện nối
Xem thêm: Trigger trong SQL server và 3 ví dụ cơ bản
Trên đây là 6 ví dụ cơ bản về view trong SQL server.
Trên đây là 6 ví dụ cơ bản về view trong SQL server.
vd6 chỗ order by maxHD có DESC nữa ko ạ
Trả lờiXóa