1. Trang chủ
  2. » Luận Văn - Báo Cáo

SQL Quản lí web bán xe máy cuối kì_ Bài tập lớn

42 493 8

Đ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

Nội dung

SQL quản lý web bán se máy thi cuối kì nộp bản word đầy đủ. .................................................................................................................................................................................................................................................................................................................

MỤC LỤC Chương I: Mơ Hình Cơ Sở Dữ Liệu Lập từ điển liệu 1.1 Bảng KhachHang 1.2 Bảng MatHang 1.3 Bảng NhaCungCap 1.4 Bảng NhanVien 1.5 Bảng PNhap 1.6 Bảng PXuat 1.7 Bảng CTPNhap 1.8 BảngCTPXuat Mơ hình liệu vật lý Diagram Chương II: Thiết kế code cho SQL 1.1 Tạo Bảng MatHang .9 1.2 Tạo Bảng NhanVien 1.3 Tạo Bảng KhachHang 10 1.4 Tạo Bảng NhaCungCap 10 1.5 Tạo Bảng PNhap 10 1.6 Tạo Bảng CTPNhap 11 1.7 Tạo Bảng PXuat 11 1.8 Tạo Bảng CTPXuat .12 Nhập liệu cho bảng .13 2.1 Nhập Dữ Liệu Bảng MatHang .13 2.2 Nhập Dữ Liệu Bảng NhanVien 14 2.3 Nhập Dữ Liệu Bảng KhachHang 16 2.4 Nhập Dữ Liệu Bảng NhaCungCap 17 2.5 Nhập Dữ Liệu Bảng PNhap 18 2.6 Nhập Dữ Liệu Bảng CTPNhap 19 2.7 Nhập Dữ Liệu Bảng PXuat 20 2.8 Nhập Dữ Liệu Bảng CTPXuat .22 Tạo View 32 Tạo Procedure 23 4.1 Tạo Procedure bảng NhaCungCap 23 4.2 Tạo Procedure bảng KhachHang 28 Page | Tạo Trigger 36 Chương IV Tạo thống kê 1.Tạo thống kê 40 Page | Chương I : Mơ Hình Cơ Sở Dữ Liệu Lập từ điển liệu 1.1 Bảng KhachHang STT Tên thuộc tính Kiểu (Độ rộng) Ràng buộc Khóa / Khóa phụ (PK/FK) MAKHACHHANG Nvarchar(50) Not null TENKHACHHANG Nvarchar(50) Not null DIACHI Nvarchar(50) Not null DIENTHOAI Nvarchar(50) Null EMAIL Nvarchar(50) Null PK Mô tả Mã khách hàng Tên khách hàng Địa khách hàng Điện thoại khách hàng Email khách hàng 1.2 Bảng MatHang STT Tên thuộc tính Kiểu ( Độ rộng ) Ràng buộc Khóa Mơ tả chính/ Khóa phụ (PK/FK) MAHANG Nvarchar(50) Not null TENHANG Nvarchar(50) Not null Tên hàng NHASX Nvarchar(50) Not null Nhà sản xuất PK Mã hàng Page | SOLUONG Int(4) Not null Số lượng THONGTINBAOHAN Nvarchar(100) H Null DONVITINH Nvarchar(50) Null MOTA Nvarchar(100) Null Thơng tin bảo hành Đơn vị tính Mơ tả hàng 1.3 Bảng NhaCungCap STT Tên thuộc tính MANHACUNGCAP Kiểu ( Độ rộng ) Nvarchar(50) Ràng buộc TENNHACUNGCAP Nvarchar(50) Not null DIACHI Nvarchar(50) Not null DIENTHOAI Nvarchar(50) Null EMAIL Nvarchar(50) Null Khóa chính/ Mơ tả Khóa phụ PK Mã nhà cung cấp PK Tên nhà cung cấp Địa nhà cung cấp Điện thoại nhà cung cấp Email nhà cung cấp Page | 1.4 Bảng NhanVien Page | STT Tên thuộc tính Kiểu ( Độ rộng ) Ràng buộc MANHANVIEN Nvarchar(50) Not null Khóa Mơ tả chính/ Khóa phụ (PK/FK) PK Mã nhân viên TENNHANVIEN Nvarchar(50) Not null Tên nhân viên NAM SINH Int Not null Năm Sinh GIOITINH Char(10) Not null DIACHI Nvarchar(50) Not null DIENTHOAI Nvarchar(50) Null CHUC VU Nvarchar(50) Not null Giới tính nhân viên Địa nhân viên Điện thoại nhân viên Chức Vụ LUONGCOBAN Nvarchar(50) Not Null Lương 1.5 Bảng PNhap STT Tên thuộc tính Kiểu ( Độ rộng ) Ràng buộc MAPN Nvarchar(50) Not null NGAYNHAP Datatime(8) MANHANVIEN Nvarchar(50) Not null FK MANHACUNGCAP Nvarchar(50) Not null FK Not null Khóa chính/ Mơ tả Khóa phụ (PK/FK) PK Mã phiếu nhập Ngày nhập Mã nhân viên Mã nhà cung cấp 1.6 Bảng PXuat Page | STT Tên thuộc tính Kiểu ( Độ rộng ) Ràng buộc MAPX Nvarchar(50) Not null NGAYXUAT Datatime(8) MANHANVIEN Nvarchar(50) Not null FK MAKHACHHANG Nvarchar(50) Not null FK Not null Khóa chính/ Mơ tả Khóa phụ (PK/FK) PK Mã phiếu xuất Ngày xuất Mã nhân viên Mã khách hàng 1.7 Bảng CTPNhap STT Tên thuộc tính Kiểu ( Độ rộng ) Ràng buộc MAPN Nvarchar(50) Not null MAHANG Nvarchar(50) Not null SLNHAP Int(4) Not null DONGIANHAP Float(8) Not null THUE Float(8) Null Ràng buộc Khóa chính/ Mơ tả Khóa phụ (PK/FK) PK Mã phiếu nhập PK Mã hàng Số lượng hàng nhập Đơn giá nhập Thuế 1.8 Bảng chi CTPXuat STT Tên thuộc tính Kiểu ( Độ rộng ) MAPX Nvarchar(50) Not null MAHANG Nvarchar(50) Not null SLXUAT Int(4) Not null Khóa chính/ Mơ tả Khóa phụ (PK/FK) PK Mã phiếu xuất PK Mã hàng Số lượng Page | DONGIAXUAT Float(8) Not null THUE Float(8) Null hàng xuất Đơn giá xuất Thuế Mơ hình liệu vật lý Diagram Ảnh 1.2 : Diagram Page | Bảng liệu mẫu : KhachHang Bảng liệu mẫu : NhaCungCap Bảng liệu mẫu : NhanVien Page | Chương II Thiết kế code cho SQL Tạo bảng CSDL 1.1 Tạo bảng MatHang CREATE TABLE MatHang ( MAHANG NVARCHAR(50) NOT NULL CONSTRAINT pk_MatHang primary key(MAHANG), TENHANG NVARCHAR(50) NOT NULL, NHASX NVARCHAR(50) NOT NULL, ) SOLUONG INT NOT NULL, THONGTINBAOHANH NVARCHAR(100) NULL, DONVITINH NVARCHAR(50) NULL, MOTA NVARCHAR(100) NULL 1.2 Tạo bảng NhanVien CREATE TABLE NhanVien ( MANHANVIEN NVARCHAR(50) NOT NULL, CONSTRAINT pk_NhanVien PRIMARY KEY(MANHANVIEN), TENNHANVIEN NVARCHAR(50) NOT NULL, NAMSINH INT NOT NULL, GIOITINH CHAR(10) NOT NULL, DIENTHOAI NVARCHAR(50) NULL, DIACHI NVARCHAR(50) NOT NULL, CHUCVU NVARCHAR(50) NOT NULL, LUONGCOBAN NVARCHAR(50) NULL ) 1.3 Tạo bảng KhachHang Page | 10 AS TONGGIATRI FROM (((MATHANG INNER JOIN CTPXUAT ON MATHANG.MAHANG=CTPXUAT.MAHANG) INNER JOIN PXUAT ON PXUAT.MAPX=CTPXUAT.MAPX )INNER JOIN KHACHHANG ON KHACHHANG.MAKHACHHANG=PXUAT.MAKHACHHANG ) INNER JOIN NHANVIEN ONNHANVIEN.MANHANVIEN=PXUAT.MANHANVIEN View phiếu xuất 3.5 Tạo View NhaCungCap bao gồm MANHACUNGCAP, TENNHACUNGCAP dùng để thống kê danh sách nhà cung cấp sản phẩm cho cửa hàng : CREATE VIEW vw_NHACUNGCAP AS SELECT MANHACUNGCAP,TENNHACUNGCAP FROM NhaCungCap Page | 28 View danh sách Nhà Cung Cấp Tạo Procedure 4.1 Tạo Procedure bảng NhaCungCap * Xây dựng thủ tục thêm liệu vào bảng NhaCungCap với tên SP_THEM_ NHACUNGCAP với tham số vào MANHACUNGCAP, TENNHACUNGCAP, DIACHI, DIENTHOAI, EMAIL (MANHACUNG phải nhất) Kiểm tra ràng buộc liệu phải hợp lệ trước thực INSERT : CREATE PROCEDURE SP_THEM_NHACUNGCAP @MANHACUNGCAP NVARCHAR(50), @TENNHACUNGCAP NVARCHAR(50), @DIACHI NVARCHAR(50), @DIENTHOAI NVARCHAR(50), @EMAIL NVARCHAR(50) AS IF(NOT EXISTS(SELECT MANHACUNGCAP FROM NHACUNGCAP WHERE MANHACUNGCAP=@MANHACUNGCAP)) INSERT INTO NHACUNGCAP VALUES (@MANHACUNGCAP,@TENNHACUNGCAP,@DIACHI,@DIENTHOAI,@ EMAIL) Page | 29 ELSE RAISERROR('DA TON MA NHA CUNG CAP NAY',12,1) GO Thêm Nhà Cung Cấp thành công Thêm thất bại trùng Mã Nhà Cung Cấp * Xây dựng thủ tục sửa đổi Nhà cung cấp bảng NhaCungCap với tên SP_SUA_NHACUNGCAP với tham số vào giá trị cần thay đổi Page | 30 cột bảng NhaCungCap Thủ tục cần thực lệnh UPDATE SET với giá trị tương ứng : CREATE PROCEDURE SP_SUA_NHACUNGCAP @MANHACUNGCAP NVARCHAR(50), @TENNHACUNGCAP NVARCHAR(50), @DIACHI NVARCHAR(50), @DIENTHOAI NVARCHAR(50), @EMAIL NVARCHAR(50) AS IF(NOT EXISTS(SELECT MANHACUNGCAP FROM NHACUNGCAP WHERE MANHACUNGCAP=@MANHACUNGCAP)) RAISERROR('KHONG TON TAI NHA CUNG CAP NAY',12,1) ELSE UPDATE NHACUNGCAP SET TENNHACUNGCAP=@TENNHACUNGCAP,DIACHI=@DIACHI,DIENTH OAI= @DIENTHOAI,EMAIL=@EMAIL WHERE MANHACUNGCAP=@MANHACUNGCAP GO Sửa Nhà Cung Cấp thành công Page | 31 Sửa thất bại không tồn Mã Nhà Cung Cấp * Xây dựng thủ tục xoá Nhà cung cấp có bảng NhaCungCap với tên SP_XOA_NHACUNGCAP với tham số vào MANHACUNGCAP cần xố) Kiểm tra ràng buộc liệu trước thực lệnh DELETE : CREATE PROCEDURE SP_XOA_NHACUNGCAP @MANHACUNGCAP NVARCHAR(50) AS IF NOT EXISTS(SELECT MANHACUNGCAP FROM NHACUNGCAP WHERE MANHACUNGCAP=@MANHACUNGCAP) RAISERROR('KHONG TON TAI NHA CUNG CAO NAY',12,1) ELSE DELETE FROM NHACUNGCAP WHERE MANHACUNGCAP=@MANHACUNGCAP GO Page | 32 Xóa Nhà Cung Cấp thành cơng Xóa thất bại không tồn Mã Nhà Cung Cấp 4.2 Tạo Procedure bảng KhachHang * Xây dựng thủ tục thêm liệu vào bảng KhachHang với tên SP_THEMM_KHACHHANG với tham số vào MAKHACHHANG, TENKHACHHANG, DIACHI, DIENTHOAI, EMAIL (MANHACUNG phải nhất) Kiểm tra ràng buộc liệu phải hợp lệ trước thực INSERT : CREATE PROCEDURE SP_THEMM_KHACHHANG @MAKHACHHANG NVARCHAR(50), @TENKHACHHANG NVARCHAR(50), Page | 33 @DIACHI NVARCHAR(50), @DIENTHOAI NVARCHAR(50), @EMAIL NVARCHAR(50) AS IF(NOT EXISTS(SELECT MAKHACHHANG FROM KHACHHANG WHERE MAKHACHHANG=@MAKHACHHANG)) INSERT INTO KHACHHANG VALUES (@MAKHACHHANG,@TENKHACHHANG,@DIACHI,@DIENTHOAI,@E MAIL) ELSE RAISERROR('DA TON TAI MA KHACH HANG NAY!!',12,1) GO Thêm Khách Hàng thành công Page | 34 Thêm thất bại trùng Mã Khách Hàng * Xây dựng thủ tục sửa đổi Khách hang bảng KhachHang với tên SP_SUAA_KHACHHANG với tham số vào giá trị cần thay đổi cột bảng NhaCungCap Thủ tục cần thực lệnh UPDATE SET với giá trị tương ứng : CREATE PROCEDURE SP_SUAA_KHACHHANG @MAKHACHHANG NVARCHAR(50), @TENKHACHHANG NVARCHAR(50), @DIACHI NVARCHAR(50), @DIENTHOAI NVARCHAR(50), @EMAIL NVARCHAR(50) AS IF(NOT EXISTS(SELECT MAKHACHHANG FROM KHACHHANG WHERE MAKHACHHANG=@MAKHACHHANG)) RAISERROR('KHONG TON TAI KHACH HANG NAY',12,1) ELSE UPDATE KHACHHANG SET TENKHACHHANG=@TENKHACHHANG,DIACHI=@DIACHI,DIENTHO AI=@DIENTHOAI,EMAIL=@EMAIL WHERE MAKHACHHANG=@MAKHACHHANG GO Page | 35 Sửa Khách Hàng thành công Sửa thất bại không tồn Mã Khách Hàng * Xây dựng thủ tục xố Khách hàng có bảng KhachHang với tên SP_XOAA_KHACHHANG với tham số vào MAKHACHHANG cần xoá) Kiểm tra ràng buộc liệu trước thực lệnh DELETE : CREATE PROCEDURE SP_XOAA_KHACHHANG Page | 36 @MAKHACHHANG NVARCHAR(50) AS IF(NOT EXISTS(SELECT MAKHACHHANG FROM KHACHHANG WHERE MAKHACHHANG=@MAKHACHHANG)) RAISERROR('KHONG TON TAI Khach HANG NAY',12,1) ELSE DELETE FROM KHACHHANG WHERE MAKHACHHANG=@MAKHACHHANG Xóa Khách Hàng thành cơng Xóa thất bại không tồn Mã Khách Hàng 4.4 Xây dụng thủ tục lấy danh sách nhân viên có tên theo tham số truyền vào Page | 37 CREATE PROCEDURE LayDanhSachNhanVienCoTenTruyenVao @ten nvarchar(50) AS BEGIN SELECT * FROM NhanVien where TENNHANVIEN =@ten END Tạo Trigger 1.Tạo trigger với tên Unbreakable Trigger có chức thơng báo ngăn cản việc cập nhật sửa đổi diệu trường TENNHACUNGCAP bảng NHACUNGCAP CREATE TRIGGER Unbreakable ON NHACUNGCAP FOR UPDATE AS IF UPDATE(TENNHACUNGCAP) BEGIN PRINT N'Bạn cập nhật tên nhà cung cấp' ROLLBACK TRAN END Thực lệnh: Update NHACUNGCAP set TENNHACUNGCAP = 'Sửa tên nhà cung cấp' where MANHACUNGCAP = '1000' Page | 38 2.Tạo Trigger với tên Error_Delete Trigger có chưc Khơng cho phép Xóa ghi có loại nội dung lúc CREATE TRIGGER ERROR_DELETE ON KHACHHANG FOR DELETE AS IF((SELECT COUNT(DIACHI) FROM DELETED)>2) BEGIN PRINT 'BAN KHONG DUOC XOA CUNG LUC DIA CHI' ROLLBACK TRAN END Thực lệnh DELETE KHACHHANG WHERE DIACHI='HANOI' Chương IV Tạo thống kê 1.Tạo thống kê Page | 39 1.1 Cho biết số phiếu nhập nhà cung cấp bao gồm thông tin : MANHACUNGCAP, TENNHACUNGCAP SOLUONG SELECT PNHAP.MANHACUNGCAP,TENNHACUNGCAP, COUNT(MAPN) AS SOLUONG FROM NHACUNGCAP INNER JOIN PNHAP ON NHACUNGCAP.MANHACUNGCAP=PNHAP.MANHACUNGCAP GROUP BY PNHAP.MANHACUNGCAP,TENNHACUNGCAP 1.2 Thống kê tổng số lượng nhập sản phẩm,kết bao gồm thông tin: MAHANG,TENHANG,DONVITINH,SOLUONG xếp tang dần SELECT MAHANG,TENHANG,DONVITINH, ( SELECT ISNULL(SUM(SLNHAP),0 ) AS SOLUONG FROM CTPNHAP WHERE MATHANG.MAHANG=CTPNHAP.MAHANG ) AS SOLUONG FROM MATHANG ORDER BY SOLUONG ASC Page | 40 1.3 Cho biết mặt hàng có phiếu xuất select CTPXuat.MAHANG,TENHANG, count(MAPX) as SOLUONGHANG from MatHang inner join CTPXuat on MatHang.MAHANG=CTPXuat.MAHANG group by CTPXuat.MAHANG,TENHANG 1.4 Cho biết nhà cung cấp có phiếu nhập SELECT PNHAP.MANHACUNGCAP,TENNHACUNGCAP, COUNT(MAPN) AS SOLUONG FROM NHACUNGCAP INNER JOIN PNHAP ON NHACUNGCAP.MANHACUNGCAP=PNHAP.MANHACUNGCAP GROUP BY PNHAP.MANHACUNGCAP,TENNHACUNGCAP Page | 41 Page | 42 ... KhachHang Bảng liệu mẫu : NhaCungCap Bảng liệu mẫu : NhanVien Page | Chương II Thiết kế code cho SQL Tạo bảng CSDL 1.1 Tạo bảng MatHang CREATE TABLE MatHang ( MAHANG NVARCHAR(50) NOT NULL CONSTRAINT

Ngày đăng: 08/10/2019, 22:11

TỪ KHÓA LIÊN QUAN

w