1. Trang chủ
  2. » Thể loại khác

Tự luận it10(hệ quản trị csdl sql server) dành cho Đợt mở môn 29 9 2024 trở lên

20 2 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đề kiểm tra tự luận Môn: IT10(Hệ quản trị CSDL SQL Server)
Trường học Trường Đại Học Mở Hà Nội
Chuyên ngành Công nghệ thông tin
Thể loại Exam
Năm xuất bản 2024
Định dạng
Số trang 20
Dung lượng 712,38 KB

Nội dung

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 1

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

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 3

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 (

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 4

CREATE 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 5

Kiể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 6

pC 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 8

SELECT 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 10

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 đó

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 11

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 đó

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 12

GO

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 13

CREATE 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 15

Mã 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 16

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

Ngày đăng: 30/10/2024, 10:22

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w