TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN ********************** ĐỀ KIỂM TRA TỰ LUẬN Môn: IT10(Hệ quản trị CSDL SQL Server) Họ tên sinh viên:…………………………… Ngày sinh:………..…… Lớp: ………………….. Đề Bài: Cho CSDL quản lý kinh doanh quần áo gồm các bảng sau: *Viết câu lệnh truy vấn thực hiện lần lượt các yêu cầu sau Yêu cầu 1: Tạo View cho biết danh sách thông tin đầy đủ của các nhân viên nữ Yêu cầu 2: Tạo View cho biết danh sách thông tin đầy đủ của các sản phẩm quần áo của nhãn hiệu "Gucci" và có đơn giá > 500.000 Yêu cầu 3: Tạo View tính tổng số hóa đơn đã lập của từng Nhân viên Yêu cầu 4: Tạo View tính tổng số tiền đã bán của từng quần áo theo tên quần áo Yêu cầu 5: Tạo thủ tục cho biết tên các quần áo được bán trong một năm nào đó Yêu cầu 6: Tạo thủ tục cho biết tên các quần áo của một nhãn hiệu nào đó Yêu cầu 7: Thêm thuộc tính TongSoSanPham vào bảng tblNhanHieu. Sau đó viết Trigger thực hiện mỗi khi thêm một sản phẩm quần áo mới vào bảng tblSanPham thì TongSoSanPham tăng lên tương ứng *Hướng dẫn cách làm bài và nộp bài -Sinh viên tạo 01 file query trên SQLServer -Đầu mỗi file chương trình phải có đủ thông tin: Mã sinh viên, Họ tên, Lớp -Tên File được đặt tên theo nguyên tắc sau: Mã SV–Họ tên–Lớp–Số đề.sql Ví dụ: 1910A001-NguyenThiHa-19A5-De01.sql GỢI Ý CÁCH CHẤM ĐIỂM BÀI KIỂM TRA TT NỘI DUNG ĐIỂM GHI CHÚ
Trang 1TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN
********************** ĐỀ KIỂM TRA TỰ LUẬN Môn: IT10(Hệ quản trị CSDL SQL Server) Họ tên sinh viên:……… Ngày sinh:
……… …… Lớp: ………
Đề Bài: Cho CSDL quản lý kinh doanh quần áo gồm các bảng sau:
*Viết câu lệnh truy vấn thực hiện lần lượt các yêu cầu sau
Yêu cầu 1: Tạo View cho biết danh sách thông tin đầy đủ của các nhân viên nữ Yêu cầu 2: Tạo View cho biết danh sách thông tin đầy đủ của các sản phẩm quần áo của nhãn hiệu
"Gucci" và có đơn giá > 500.000
Yêu cầu 3: Tạo View tính tổng số hóa đơn đã lập của từng Nhân viên
Yêu cầu 4: Tạo View tính tổng số tiền đã bán của từng quần áo theo tên quần áo Yêu cầu 5: Tạo thủ tục cho biết tên các quần áo được bán trong một năm nào đó Yêu cầu 6: Tạo thủ tục cho biết tên các quần áo của một nhãn hiệu nào đó
Yêu cầu 7: Thêm thuộc tính TongSoSanPham vào bảng tblNhanHieu Sau đó viết Trigger thực
hiện mỗi khi thêm một sản phẩm quần áo mới vào bảng tblSanPham thì
TongSoSanPham tăng lên
tương ứng
Trang 2*Hướng dẫn cách làm bài và nộp bài
-Sinh viên tạo 01 file query trên SQLServer
-Đầu mỗi file chương trình phải có đủ thông tin: Mã sinh viên, Họ tên, Lớp -Tên File được đặt tên theo nguyên tắc sau: Mã SV–Họ tên–Lớp–Số đề.sql
Ví dụ: 1910A001-NguyenThiHa-19A5-De01.sql
GỢI Ý CÁCH CHẤM ĐIỂM BÀI KIỂM TRA
TT NỘI DUNG ĐIỂM GHI CHÚ
BÀI LÀM
Dạng nộp
Mã sinh viên: 1910A001
Họ tên: Nguyen Thi Ha
Lớp: 19A5
Bước 1: Xóa khóa ngoại và bảng nếu tồn tại
IF OBJECT_ID('dbo.tblSanPham', 'U') IS NOT NULL
BEGIN
ALTER TABLE tblSanPham DROP CONSTRAINT
FK_tblSanPham_tblLoaiSanPham;
ALTER TABLE tblSanPham DROP CONSTRAINT FK_tblSanPham_tblNhanHieu; DROP TABLE dbo.tblSanPham;
END
GO
IF OBJECT_ID('dbo.tblLoaiSanPham', 'U') IS NOT NULL
DROP TABLE dbo.tblLoaiSanPham;
GO
Trang 3IF OBJECT_ID('dbo.tblNhanHieu', 'U') IS NOT NULL
DROP TABLE dbo.tblNhanHieu;
GO
Yêu cầu 1: Tạo bảng tblLoaiSanPham, tblNhanHieu, tblSanPham
CREATE TABLE tblLoaiSanPham (
maLoaiSP INT PRIMARY KEY,
tenLoaiSP NVARCHAR(50)
);
GO
CREATE TABLE tblNhanHieu (
maNH INT PRIMARY KEY,
tenNH NVARCHAR(50),
TongSoSanPham INT DEFAULT 0
);
GO
CREATE TABLE tblSanPham (
maSP INT PRIMARY KEY,
tenSP NVARCHAR(50),
maLoaiSP INT FOREIGN KEY REFERENCES tblLoaiSanPham(maLoaiSP),
maNH INT FOREIGN KEY REFERENCES tblNhanHieu(maNH),
donGia INT,
soLuongBan INT
);
GO
Yêu cầu 2: Thêm dữ liệu mẫu
INSERT INTO tblLoaiSanPham (maLoaiSP, tenLoaiSP) VALUES (1, N'Áo'), (2, N'Quần');
INSERT INTO tblNhanHieu (maNH, tenNH) VALUES (1, N'Gucci'), (2,
N'Adidas');
INSERT INTO tblSanPham (maSP, tenSP, maLoaiSP, maNH, donGia,
soLuongBan)
VALUES
(1, N'Áo Gucci', 1, 1, 600000, 10),
(2, N'Quần Gucci', 2, 1, 550000, 5),
(3, N'Áo Adidas', 1, 2, 500000, 8);
GO
Yêu cầu 3: Tạo View liệt kê danh sách sản phẩm theo loại sản phẩm
IF OBJECT_ID('dbo.DanhSachSanPhamTheoLoai', 'V') IS NOT NULL
DROP VIEW dbo.DanhSachSanPhamTheoLoai;
GO
CREATE VIEW DanhSachSanPhamTheoLoai AS
SELECT lsp.tenLoaiSP, sp.tenSP, sp.donGia, sp.soLuongBan
FROM tblSanPham AS sp
JOIN tblLoaiSanPham AS lsp ON sp.maLoaiSP = lsp.maLoaiSP;
GO
Yêu cầu 4: Tạo View tính tổng số tiền đã bán của từng quần áo theo tên quần áo
IF OBJECT_ID('dbo.TongSoTienBanTheoSanPham', 'V') IS NOT NULL
DROP VIEW dbo.TongSoTienBanTheoSanPham;
GO
Trang 4CREATE VIEW TongSoTienBanTheoSanPham AS
SELECT sp.tenSP, SUM(sp.soLuongBan * sp.donGia) AS TongSoTienBan
FROM tblSanPham AS sp
GROUP BY sp.tenSP;
GO
Yêu cầu 5: Tạo thủ tục cho biết tên các quần áo được bán trong một năm nào đó
IF OBJECT_ID('dbo.spDanhSachQuanAoBanTrongNam', 'P') IS NOT NULL
DROP PROCEDURE dbo.spDanhSachQuanAoBanTrongNam;
GO
CREATE PROCEDURE spDanhSachQuanAoBanTrongNam
@Nam INT
AS
BEGIN
SELECT DISTINCT sp.tenSP
FROM tblSanPham AS sp
JOIN tblChiTietHoaDon AS cthd ON sp.maSP = cthd.maSP
JOIN tblHoaDon AS hd ON cthd.maHD = hd.maHD
WHERE YEAR(hd.ngayLap) = @Nam;
END;
GO
Yêu cầu 6: Tạo thủ tục cho biết tên các quần áo của một nhãn hiệu nào đó
IF OBJECT_ID('dbo.spLayDanhSachQuanAoTheoNhanHieu', 'P') IS NOT NULL DROP PROCEDURE dbo.spLayDanhSachQuanAoTheoNhanHieu;
GO
CREATE PROCEDURE spLayDanhSachQuanAoTheoNhanHieu
@TenNhanHieu NVARCHAR(50)
AS
BEGIN
SELECT sp.tenSP AS TenQuanAo
FROM tblSanPham AS sp
JOIN tblNhanHieu AS nh ON sp.maNH = nh.maNH
WHERE nh.tenNH = @TenNhanHieu;
END;
GO
Yêu cầu 7: Tạo Trigger tự động tăng giá trị khi có sản phẩm mới thêm vào tblSanPham
IF OBJECT_ID('dbo.trg_UpdateTongSoSanPham', 'TR') IS NOT NULL
DROP TRIGGER dbo.trg_UpdateTongSoSanPham;
GO
CREATE TRIGGER trg_UpdateTongSoSanPham
ON tblSanPham
AFTER INSERT
AS
BEGIN
UPDATE tblNhanHieu
SET TongSoSanPham = TongSoSanPham + 1
FROM tblNhanHieu nh
INNER JOIN inserted i ON nh.maNH = i.maNH;
END;
GO
Trang 5Kiểm tra Trigger bằng cách thêm sản phẩm mới vào tblSanPham
INSERT INTO tblSanPham (maSP, tenSP, maLoaiSP, maNH, donGia,
soLuongBan)
VALUES
(4, N'Quần Adidas', 2, 2, 550000, 5);
GO
Kiểm tra kết quả cập nhật cột TongSoSanPham trong bảng tblNhanHieu SELECT * FROM tblNhanHieu;
GO
1910A001-NguyenThiHa-19A5-De01.sql
Yêu cầu 1: Tạo View cho biết danh sách thông tin đầy đủ của các nhân viên nữ
***Mã code
Chạy trên nền SQL SEVER 2008 R2
USE QuanLyKinhDoanhQuanAo;
GO
Xóa View nếu đã tồn tại
IF OBJECT_ID('dbo.DanhSachNhanVienNu', 'V') IS NOT NULL
DROP VIEW dbo.DanhSachNhanVienNu;
GO
Xóa các bảng nếu đã tồn tại (theo thứ tự để tránh xung đột khóa ngoại)
IF OBJECT_ID('dbo.tblChiTietHoaDon', 'U') IS NOT NULL
DROP TABLE dbo.tblChiTietHoaDon;
GO
IF OBJECT_ID('dbo.tblHoaDon', 'U') IS NOT NULL
DROP TABLE dbo.tblHoaDon;
GO
IF OBJECT_ID('dbo.tblSanPham', 'U') IS NOT NULL
DROP TABLE dbo.tblSanPham;
GO
IF OBJECT_ID('dbo.tblNhanHieu', 'U') IS NOT NULL
DROP TABLE dbo.tblNhanHieu;
GO
IF OBJECT_ID('dbo.tblLoaiSanPham', 'U') IS NOT NULL
DROP TABLE dbo.tblLoaiSanPham;
GO
IF OBJECT_ID('dbo.tblNhanVien', 'U') IS NOT NULL
DROP TABLE dbo.tblNhanVien;
GO
Tạo lại các bảng
CREATE TABLE tblNhanVien
maNV INT PRIMARY KEY,
tenNV NVARCHAR(50),
gioiTinh NVARCHAR(10),
queQuan NVARCHAR(50),
diaChi NVARCHAR(100),
SDT NVARCHAR(15),
hsl FLOAT,
Trang 6pC FLOAT,
ngayVaoLam DATE
);
GO
CREATE TABLE tblLoaiSanPham
maLoaiSP INT PRIMARY KEY,
tenLoaiSP NVARCHAR(50)
);
GO
CREATE TABLE tblNhanHieu
maNH INT PRIMARY KEY,
tenNH NVARCHAR(50)
);
GO
CREATE TABLE tblSanPham
maSP INT PRIMARY KEY,
tenSP NVARCHAR(50),
maLoaiSP INT,
maNH INT,
donGia FLOAT,
soLuongBan INT,
FOREIGN KEY (maLoaiSP) REFERENCES tblLoaiSanPham(maLoaiSP),
FOREIGN KEY (maNH) REFERENCES tblNhanHieu(maNH)
);
GO
CREATE TABLE tblHoaDon
maHD INT PRIMARY KEY,
maNV INT,
ngayLap DATE,
tongHD FLOAT,
FOREIGN KEY (maNV) REFERENCES tblNhanVien(maNV)
);
GO
CREATE TABLE tblChiTietHoaDon
maCTHD INT PRIMARY KEY,
maHD INT,
maSP INT,
SL INT,
donGia FLOAT,
giamGia FLOAT,
FOREIGN KEY (maHD) REFERENCES tblHoaDon(maHD),
FOREIGN KEY (maSP) REFERENCES tblSanPham(maSP)
);
GO
Tạo View danh sách nhân viên nữ
CREATE VIEW DanhSachNhanVienNu AS
SELECT
FROM tblNhanVien
WHERE gioiTinh = N'Nữ';
GO
Thêm dữ liệu vào bảng tblNhanVien
INSERT INTO tblNhanVien maNV, tenNV, gioiTinh, queQuan, diaChi, SDT, hsl,
pC, ngayVaoLam)
VALUES
( , N'Nguyễn Thị A', N'Nữ', N'Hà Nội', N'Số 1 Đường A', N'0123456789',
3.5, 0.5, '2023-01-01'),
( , N'Nguyễn Văn B', N'Nam', N'Hải Phòng', N'Số 2 Đường B',
N'0987654321', 4.0, 1.0, '2023-02-01');
GO
Kiểm tra View bằng cách truy vấn
SELECT FROM DanhSachNhanVienNu;
Trang 7*** Ảnh chụp màn hình
***
Yêu cầu 2: Tạo View cho biết danh sách thông tin đầy đủ của các sản phẩm quần áo của nhãn hiệu
"Gucci" và có đơn giá > 500.000
***MÃ CODE
USE QuanLyKinhDoanhQuanAo;
GO
Xóa View nếu đã tồn tại
IF OBJECT_ID('dbo.DanhSachSanPhamGucci', 'V') IS NOT NULL
DROP VIEW dbo.DanhSachSanPhamGucci;
GO
Tạo View danh sách sản phẩm của nhãn hiệu "Gucci" có đơn giá > 500000 CREATE VIEW DanhSachSanPhamGucci AS
SELECT
sp.maSP,
sp.tenSP,
sp.maLoaiSP,
sp.donGia,
sp.soLuongBan,
nh.maNH AS maNhanHieu,
nh.tenNH
FROM
tblSanPham AS sp
JOIN
tblNhanHieu AS nh ON sp.maNH = nh.maNH
WHERE
nh.tenNH = N'Gucci'
AND sp.donGia > 500000;
GO
Kiểm tra View bằng cách truy vấn
Trang 8SELECT FROM DanhSachSanPhamGucci;
GO
***ẢNH CHỤP MÀN HÌNH
Yêu cầu 3: Tạo View tính tổng số hóa đơn đã lập của từng Nhân viên
Mã code
USE QuanLyKinhDoanhQuanAo;
GO
Xóa View nếu đã tồn tại
IF OBJECT_ID('dbo.TongSoHoaDonNhanVien', 'V') IS NOT NULL
DROP VIEW dbo.TongSoHoaDonNhanVien;
GO
Tạo View tính tổng số hóa đơn của từng nhân viên
CREATE VIEW TongSoHoaDonNhanVien AS
SELECT
nv.maNV,
nv.tenNV,
COUNT(hd.maHD) AS TongSoHoaDon
FROM
tblNhanVien AS nv
LEFT JOIN
tblHoaDon AS hd ON nv.maNV = hd.maNV
GROUP BY
nv.maNV, nv.tenNV;
GO
Kiểm tra View bằng cách truy vấn
SELECT FROM TongSoHoaDonNhanVien;
GO
Ảnh chụp màn hình
Trang 9*** Yêu cầu 4: Tạo View tính tổng số tiền đã bán của từng quần áo theo tên quần áo
***Mã Code
USE QuanLyKinhDoanhQuanAo;
GO
Xóa View nếu đã tồn tại
IF OBJECT_ID('dbo.TongSoTienBanTheoSanPham', 'V') IS NOT NULL
DROP VIEW dbo.TongSoTienBanTheoSanPham;
GO
Tạo lại View tính tổng số tiền đã bán của từng sản phẩm quần áo theo tên sản phẩm
CREATE VIEW TongSoTienBanTheoSanPham AS
SELECT
sp.tenSP,
SUM(cthd.SL * cthd.donGia * (1 - cthd.giamGia)) AS TongSoTienBan
FROM
tblChiTietHoaDon AS cthd
JOIN
tblSanPham AS sp ON cthd.maSP = sp.maSP
GROUP BY
sp.tenSP;
GO
Kiểm tra View bằng cách truy vấn
SELECT FROM TongSoTienBanTheoSanPham;
GO
Ảnh chụp màn hình
Trang 10Yêu cầu 5: Tạo thủ tục cho biết tên các quần áo được bán trong một năm nào đó
Mã code
USE QuanLyKinhDoanhQuanAo;
GO
Xóa thủ tục nếu đã tồn tại
IF OBJECT_ID('dbo.spDanhSachQuanAoBanTrongNam', 'P') IS NOT NULL
DROP PROCEDURE dbo.spDanhSachQuanAoBanTrongNam;
GO
Tạo thủ tục mới
CREATE PROCEDURE spDanhSachQuanAoBanTrongNam
@Nam INT
AS
BEGIN
SELECT DISTINCT sp.tenSP
FROM tblChiTietHoaDon AS cthd
JOIN tblHoaDon AS hd ON cthd.maHD = hd.maHD
JOIN tblSanPham AS sp ON cthd.maSP = sp.maSP
WHERE YEAR(hd.ngayLap) = @Nam;
END;
GO
Gọi thủ tục để kiểm tra (thay 2023 bằng năm bạn muốn kiểm tra)
EXEC spDanhSachQuanAoBanTrongNam @Nam = 2023;
GO
*** Ảnh màn hình:
Trang 11Yêu cầu 6: Tạo thủ tục cho biết tên các quần áo của một nhãn hiệu nào đó
Mã code:
USE QuanLyKinhDoanhQuanAo;
GO
Xóa thủ tục nếu đã tồn tại
IF OBJECT_ID('dbo.spLayDanhSachQuanAoTheoNhanHieu', 'P') IS NOT NULL
DROP PROCEDURE dbo.spLayDanhSachQuanAoTheoNhanHieu; GO
Tạo thủ tục mới
CREATE PROCEDURE spLayDanhSachQuanAoTheoNhanHieu
@TenNhanHieu NVARCHAR(50)
AS
BEGIN
SELECT sp.tenSP AS TenQuanAo
FROM tblSanPham AS sp
JOIN tblNhanHieu AS nh ON sp.maNH = nh.maNH
WHERE nh.tenNH = @TenNhanHieu;
Trang 12GO
Gọi thủ tục để kiểm tra (thay 'Gucci' bằng tên nhãn hiệu bạn muốn kiểm tra) EXEC spLayDanhSachQuanAoTheoNhanHieu @TenNhanHieu = N'Gucci'; GO
EXEC spLayDanhSachQuanAoTheoNhanHieu @TenNhanHieu = N'Gucci'; Ảnh màn hình
Yêu cầu 7: Thêm thuộc tính TongSoSanPham vào bảng tblNhanHieu Sau đó viết Trigger thực hiện mỗi khi thêm một sản phẩm quần áo mới vào bảng tblSanPham thì TongSoSanPham tăng lên
tương ứng
Mã code
Xóa Trigger nếu đã tồn tại
IF OBJECT_ID 'dbo.trg_UpdateTongSoSanPham', 'TR') IS NOT NULL
DROP TRIGGER trg_UpdateTongSoSanPham;
GO
Xóa bảng nếu đã tồn tại
IF OBJECT_ID('dbo.tblSanPham', 'U') IS NOT NULL
DROP TABLE tblSanPham;
IF OBJECT_ID('dbo.tblNhanHieu', 'U') IS NOT NULL
DROP TABLE tblNhanHieu;
IF OBJECT_ID('dbo.tblLoaiSanPham', 'U') IS NOT NULL
DROP TABLE tblLoaiSanPham;
GO
Tạo bảng tblLoaiSanPham
Trang 13CREATE TABLE tblLoaiSanPham
maLoaiSP INT PRIMARY KEY,
tenLoaiSP NVARCHAR(50)
);
GO
Tạo bảng tblNhanHieu
CREATE TABLE tblNhanHieu
maNH INT PRIMARY KEY,
tenNH NVARCHAR(50),
TongSoSanPham INT DEFAULT 0
);
GO
Tạo bảng tblSanPham
CREATE TABLE tblSanPham
maSP INT PRIMARY KEY,
tenSP NVARCHAR(50),
maLoaiSP INT FOREIGN KEY REFERENCES tblLoaiSanPham(maLoaiSP),
maNH INT FOREIGN KEY REFERENCES tblNhanHieu(maNH),
donGia DECIMAL(18, 2),
soLuongBan INT
);
GO
Tạo Trigger trg_UpdateTongSoSanPham để cập nhật TongSoSanPham khi thêm sản phẩm
CREATE TRIGGER trg_UpdateTongSoSanPham
ON tblSanPham
AFTER INSERT
AS
BEGIN
UPDATE tblNhanHieu
SET TongSoSanPham = TongSoSanPham + 1
FROM tblNhanHieu nh
INNER JOIN inserted i ON nh.maNH = i.maNH;
END;
GO
Thêm dữ liệu mẫu vào bảng tblLoaiSanPham và tblNhanHieu
INSERT INTO tblLoaiSanPham maLoaiSP, tenLoaiSP) VALUES ( , N'Áo'), 2
N'Quần');
INSERT INTO tblNhanHieu maNH, tenNH) VALUES ( , N'Gucci'), 2 N'Adidas'); GO
Thêm sản phẩm mới vào tblSanPham để kiểm tra Trigger
INSERT INTO tblSanPham maSP, tenSP, maLoaiSP, maNH, donGia, soLuongBan) VALUES
( , N'Áo Gucci', 1, 1, 600000, 10),
( , N'Quần Gucci', 2, 1, 550000, 5),
( , N'Áo Adidas', 1, 2, 500000, 8);
GO
Kiểm tra bảng tblNhanHieu để xem cột TongSoSanPham đã cập nhật đúng chưa SELECT FROM tblNhanHieu;
GO
Ảnh màn hình:
Trang 14*Hướng dẫn cách làm bài và nộp bài -Sinh viên tạo 01 file query trên SQLServer -Đầu mỗi file chương trình phải có đủ thông tin: Mã sinh viên, Họ tên, Lớp -Tên File được đặt tên theo nguyên tắc sau: Mã SV–Họ tên–Lớp–Số đề.sql Ví dụ: 1910A001-NguyenThiHa-19A5-De01.sql
Để chuẩn bị file bài nộp theo hướng dẫn của bạn, bạn có thể thực hiện các bước sau đây:
1 Mở SQL Server Management Studio (SSMS).
2 Tạo một file truy vấn mới:
o Tạo một file query (truy vấn) bằng cách chọn "New Query".
3 Thêm thông tin sinh viên vào đầu file:
o Nhập mã sinh viên, họ tên và lớp của bạn vào phần đầu file Ví dụ:
sql Sao chép mã Mã sinh viên: 1910A001 Họ tên: Nguyen Thi Ha Lớp: 19A5
4 Viết mã truy vấn:
o Sao chép toàn bộ mã truy vấn của bạn từ yêu cầu 1 đến yêu cầu 7 và dán vào file này.
5 Đặt tên file:
Sao chép mã 1910A001-NguyenThiHa-19A5-De01.sql
6 Lưu và nộp bài:
o Sau khi hoàn tất, bạn có thể lưu file SQL này và nộp bài theo hướng dẫn của trường hoặc giảng viên.
Trang 15Mã Code tổng hợp yêu cầu 1 đến 7
Mã sinh viên: 1910A001
Họ tên: Nguyen Thi Ha
Lớp: 19A5
Bước 1: Xóa khóa ngoại và bảng nếu tồn tại
IF OBJECT_ID('dbo.tblSanPham', 'U') IS NOT NULL
BEGIN
ALTER TABLE tblSanPham DROP CONSTRAINT FK_tblSanPham_tblLoaiSanPham; ALTER TABLE tblSanPham DROP CONSTRAINT FK_tblSanPham_tblNhanHieu; DROP TABLE dbo.tblSanPham;
END
GO
IF OBJECT_ID('dbo.tblLoaiSanPham', 'U') IS NOT NULL
DROP TABLE dbo.tblLoaiSanPham;
GO
IF OBJECT_ID('dbo.tblNhanHieu', 'U') IS NOT NULL
DROP TABLE dbo.tblNhanHieu;
GO
Yêu cầu 1: Tạo bảng tblLoaiSanPham, tblNhanHieu, tblSanPham
CREATE TABLE tblLoaiSanPham (
maLoaiSP INT PRIMARY KEY,
tenLoaiSP NVARCHAR(50)
);
GO
CREATE TABLE tblNhanHieu (
Trang 16maNH INT PRIMARY KEY,
tenNH NVARCHAR(50),
TongSoSanPham INT DEFAULT 0
);
GO
CREATE TABLE tblSanPham (
maSP INT PRIMARY KEY,
tenSP NVARCHAR(50),
maLoaiSP INT FOREIGN KEY REFERENCES tblLoaiSanPham(maLoaiSP),
maNH INT FOREIGN KEY REFERENCES tblNhanHieu(maNH),
donGia INT,
soLuongBan INT
);
GO
Yêu cầu 2: Thêm dữ liệu mẫu
INSERT INTO tblLoaiSanPham (maLoaiSP, tenLoaiSP) VALUES (1, N'Áo'), (2, N'Quần'); INSERT INTO tblNhanHieu (maNH, tenNH) VALUES (1, N'Gucci'), (2, N'Adidas'); INSERT INTO tblSanPham (maSP, tenSP, maLoaiSP, maNH, donGia, soLuongBan) VALUES
(1, N'Áo Gucci', 1, 1, 600000, 10),
(2, N'Quần Gucci', 2, 1, 550000, 5),
(3, N'Áo Adidas', 1, 2, 500000, 8);
GO
Yêu cầu 3: Tạo View liệt kê danh sách sản phẩm theo loại sản phẩm
IF OBJECT_ID('dbo.DanhSachSanPhamTheoLoai', 'V') IS NOT NULL