bai tap lon mon quan ly ban hang dien tu sql server

15 886 2
bai tap lon mon quan ly ban hang dien tu sql server

Đ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

B Ả NG PHÂN CÔNG: ...........................................................................................................2 1. Phân tích bài toán.........................................................................................................3 1.1. Xác đ ị nh ki ể u th ự c th ể........................................................................................3 1.2. Xác đ ị nh liên k ế t và ki ể u kiên k ế t .....................................................................3 1.3. Mô hình quan hệ...................................................................................................3 Quy t ắ c 3: chuy ể n các liên k ế t 1n ........................................................................3 Mô hình quan hệ...........................................................................................................4 2. Th ự c hành trong SQL server .......................................................................................4 PH Ầ N 1 : T Ạ O VIEW CHO B Ả NG ..................................................................8 PH Ầ N 2 : T Ạ O PROCEDURE CHO CÁC B Ả NG ...............................................10 PH Ầ N 3 : T Ạ O TRIGGER ....................................................................................12 PH Ầ N 4 : PHÂN QUY Ề N VÀ B Ả O M Ậ T CHO CSDL ......................................13 3. TOÀN B Ộ CODE C Ủ A BÀI .....................................................................................14

1 MỤC LỤC: BẢNG PHÂN CÔNG: Phân tích toán .3 1.1 Xác định kiểu thực thể 1.2 Xác định liên kết kiểu kiên kết 1.3 Mô hình quan hệ - Quy tắc 3: chuyển liên kết 1-n - Mô hình quan hệ Thực hành SQL server .4 PHẦN : TẠO VIEW CHO BẢNG */ PHẦN : TẠO PROCEDURE CHO CÁC BẢNG */ .10 PHẦN : TẠO TRIGGER */ 12 PHẦN : PHÂN QUYỀN VÀ BẢO MẬT CHO CSDL */ 13 TOÀN BỘ CODE CỦA BÀI 14 BẢNG PHÂN CÔNG Sinh viên Trần Thanh Hải Đình Văn Hiếu Phân công Tạo bản, Nhập liệu Phần Phần Vũ Thế Hiếu Phần Phạm Văn Hoàng Phần Phân tích toán 1.1 Xác định kiểu thực thể - Chủ cửa hàng kiểu thực thể kiểu thực thể Nhân viên hàng thuộc phận phận có nhiều nhân viên Mỗi sản phẩm thuộc loại sản phẩm loại sản phẩm có nhiều sản phẩm Mỗi hóa đơn nhân viên lập, nhân viên lập nhiểu hóa đơn Mỗi hóa đơn lập cho khách hàng, khách hàng có nhi ều hóa đơn Chi tiết hóa đơn có thông tin sản phẩm hóa đơn Nhanvien ( Manv, hoten, ngaysinh, GT, diachi) Khachhang (makh, tenkh, diachi, dienthoai, email) Sanpham ( masp, tensp, donvi, dongia) Hoadon (mahd, ngaylap) CT_hoadon(mahd, soluong, giamgia) Phongban (maPB, tenPB) 1.2 Xác định liên kết kiểu kiên kết Nhanvien nhanvien sanpham khachhang có CT_hoadon thuộc phongban : n -1 lập hoadon :1–n thuộc loaisanpham : n – hoadon :1–n có info sản phẩm :1–n 1.3 Mô hình quan hệ - - Quy tắc 1: chuyển liên thực thể mạnh (1) Nhanvien ( Manv, hoten, ngaysinh, GT, diachi) (2) Khachhang (makh, tenkh, diachi, dienthoai, email) (3) Sanpham (masp, tensp, donvi, dongia,MLSP) (4) loaisp (maloaisp, tenloaisp) (5) Hoadon (mahd, ngaylap) (6) CT_hoadon (mahd, soluong, giamgia) (7) Phongban (maPB, tenPB,sonv) Quy tắc 3: chuyển liên kết 1-n (1.1) Nhanvien( Manv, hoten, ngaysinh, GT, diachi) (4.1) loaisp (maloaisp, tenloaisp, masp) (5.1) Hoadon (mahd, ngaylap) (5.2) Hoadon (mahd, ngaylap) (6.1) CT_hoadon (mahd, masp, soluong, giamgia) => (1.1) Nhanvien( Manv, hoten, ngaysinh, GT, diachi) (2) Khachhang (makh, tenkh, diachi, dienthoai, email) (3) Sanpham (masp, tensp, donvi, dongia,MLSP) (4.1) loaisp (maloaisp, tenloaisp, masp) (5.2) Hoadon (mahd, ngaylap, manv, makh) (6.1) CT_hoadon (mahd,masp, soluong, giamgia) (7) Phongban (maPB, tenPB,sonv) - Mô hình quan hệ Thực hành SQL server Tạo sở liệu-CREATE DATABASE BanHangDienTu; use BanHangDienTu; Tạo bảng-Create table phongban ( mapb varchar(9) primary key, tenpb nvarchar(20), soluongnv int ) Create table loaisp ( maloaisp varchar(9) primary key, tenloaisp nvarchar(20) ) Create table khachhang ( makh varchar(9) not null primary key, tenkh nvarchar(30), diachi_kh nvarchar(30), sdt varchar(12), email varchar(30) ); Create table nhanvien ( manv varchar(9) not null primary key, tennv nvarchar(30), ngaysinh smalldatetime, gioitinh nvarchar(3) check (gioitinh in('Nam',N'Nữ')), diachi nvarchar(30), mapb varchar(9) references phongban(mapb) ); Create table sanpham ( masp varchar(9) primary key, tensp nvarchar(20), donvi nvarchar(20), dongia float, maloaisp varchar(9) references loaisp(maloaisp) ); Create table hoadon ( mahd varchar(9) not null primary key, ngaylap smalldatetime, manv varchar(9) references nhanvien(manv), makh varchar(9) references khachhang(makh), giamgia float ); Create table CT_hoadon ( mahd varchar(9) not null references hoadon(mahd), masp varchar(9) not null references sanpham(masp), soluong int, primary key(mahd,masp) ); Thêm trường soluongnv vào bảng phongban-Alter table phongban Add soluongnv int Sửa tennv có 30 ký tự-Alter table nhanvien Alter column tennv nvarchar(30) Đặt mặc định cho số trường nhân viên 0-Alter table phongban Add constraint df_soluongnv default for soluongnv Đặt mặc định cho trường giảm giá 0-Alter table hoadon Add constraint df_giamgia default for giamgia Thêm liệu cho bảng phongban-Insert into phongban Values ('PB01',N'Kế Toán','') Insert into phongban Values ('PB02',N'Kinh Doanh','') Insert into phongban Values ('PB03',N'Bán Hàng','') Xóa trường mapb-Delete from phongban Where mapb='PB01' Chèn liệu vào bảng khachhang-Insert into khachhang Values ('KH01',N'Trần Diệu Linh',N'Hà Nội','086433545','dieulinh@gmail.com') Insert into khachhang Values ('KH02',N'Nguyễn Quốc Đạt',N'Thái Nguyên','086433567','quocdat@gmail.com') Insert into khachhang Values ('KH03',N'Nguyễn Mai Anh',N'Hà Nội','0864445545','maianh@gmail.com') Insert into khachhang Values ('KH04',N'Vũ Mạnh Toàn',N'Hà Nội','0864335456','manhhoang@gmail.com') Insert into khachhang Values ('KH05',N'Dương Lam An',N'Hải Phòng','086433455','duonglamanh@gmail.com') Chèn liệu vào bảng nhanvien-Insert into nhanvien Values('NV01',N'Nguyễn Anh Tuấn','02/7/1996',N'Nam',N'Hà Nội','PB01') Insert into nhanvien Values('NV02',N'Nguyễn Minh Anh','02/12/1993',N'Nữ',N'Hải Phòng','PB01') Insert into nhanvien Values('NV03',N'Vũ Mạnh Tiền','12/24/1998',N'Nam',N'Hà Nội','PB02') Insert into nhanvien Values('NV04',N'Trần Ngọc Huyền','11/28/1997',N'Nữ',N'Thái Nguyên','PB03') Chèn liệu vào bảng maloaisp-Insert into loaisp Values('MLSP01','SmartPhone') Insert into loaisp Values('MLSP02','TV') Xóa nhanvien-Delete from nhanvien Where manv='NV02' Chèn liệu vào bảng sanpham-Insert into sanpham Values('SP01','Samsung galaxy S1',N'Cái','2100000','MLSP01') Insert into sanpham Values('SP02','Samsung galaxy S2',N'Cái','800000','MLSP01') Insert into sanpham Values('SP03','LG 113',N'Cái','4500000','MLSP02') Chèn liệu vào bảng hoadon-Insert into hoadon Values('HD01','12/10/1996','NV01','KH01','') Insert into hoadon Values ('HD02','3/6/2016','NV02','KH02','') Insert into hoadon Values ('HD03','3/11/2016','NV03','KH03','') Insert into hoadon Values ('HD04','3/26/2016','NV04','KH04','') Xóa mahd-Delete from hoadon Where mahd='HD04' Chèn liệu vào bảng CT_hoadon-Insert into CT_hoadon Values('HD01','SP01','2') Insert into CT_hoadon Values('HD04','SP02','2') Insert into CT_hoadon Values('HD03','SP03','22') Xóa mahd CT_hoadon-Delete from CT_hoadon Where mahd='HD04' TEST-Select * from phongban Select * from loaisp Select * from khachhang Select * from nhanvien Select * from sanpham Select * from hoadon Select * from CT_hoadon /* PHẦN : TẠO VIEW CHO BẢNG */ **Tạo view tính tuổi nhân viên**-Create view tuoinv(manv,tennv,tuoi) As Select manv,tennv,year(getdate())-year(ngaysinh) as tuoi From nhanvien Test tuoinv-Select * From tuoinv **Tạo view tính tổng tiền**-create view tt (masp,tensp,mahd,tongtien) As Select sanpham.masp,sanpham.tensp,CT_hoadon.mahd,sum(dongia*soluong) From sanpham,CT_hoadon Where sanpham.masp=CT_hoadon.masp Group by sanpham.masp,sanpham.tensp,CT_hoadon.mahd Truy xuất view tongtien-Select * from tt **Tạo view lấy nhanvien co diachi "Ha Noi"**-Create view diachihanoi(manv,tennv,diachi) As Select manv,tennv,diachi From nhanvien Where diachi like N'Hà%' Truy xuất-Select * From diachihanoi **View lấy khachhang có email**-Create view emailkhachhang(makh,tenkh,email) As Select makh,tenkh,email From khachhang Where email like '%@%' Truy Xuất-Select * From emailkhachhang **Tạo view thực danh sách nhanvien nữ sinh tháng 3**-Create view nhanviennu As Select manv,tennv,ngaysinh From nhanvien Where gioitinh=N'Nữ' and month(ngaysinh)=3 Truy xuất-select * From nhanviennu 10 **Tạo view tính tổng số nhân viên nam cửa hàng**-Create view nhanviennam As Select count(manv) as SoNVnam From nhanvien Where gioitinh='Nam' Truy xuất-Select * From nhanviennam 11 /* PHẦN : TẠO PROCEDURE CHO CÁC BẢNG */ **Tạo proc tính nhân viên tuổi cao nhất**-Create proc tuoicaonhat As Begin Declare @maxtuoi int Select @maxtuoi=max(tuoi) From tuoinv Select manv,tennv,tuoi From tuoinv Where tuoi=@maxtuoi End Truy xuất-Tuoicaonhat **Tạo proc cho biết tên nhân viên bán nhiều tiền hàng nh ất**-Create view tienhang(manv,tennv,tongtien) As Select nhanvien.manv,nhanvien.tennv,sum(soluong*dongia) From nhanvien,hoadon,CT_hoadon,sanpham Where nhanvien.manv=hoadon.manv and hoadon.mahd=CT_hoadon.mahd and CT_hoadon.masp=sanpham.masp Group by nhanvien.manv,nhanvien.tennv Create proc nhanvienbannhieutien As Begin Declare @tongtien float Select @tongtien=max(tongtien) From tienhang Select manv,tennv,tongtien From tienhang Where tongtien=@tongtien End Truy xuất-nhanvienbannhieutien 12 **Tạo proc cho biết khách hàng mua nhiềuu tiền nh ất**-Create view khachhangmuanhieutien(makh,tenkh,tongtien) As Select khachhang.makh,khachhang.tenkh,sum(soluong*dongia) From khachhang,hoadon,CT_hoadon,sanpham Where khachhang.makh=hoadon.makh and hoadon.mahd=CT_hoadon.mahd and CT_hoadon.masp=sanpham.masp Group by khachhang.makh,khachhang.tenkh Create proc khachhangmua As Begin Declare @tongtien float Select @tongtien=max(tongtien) From khachhangmuanhieutien Select makh,tenkh,tongtien From khachhangmuanhieutien Where tongtien=@tongtien End Truy xuất-khachhangmua **Tạo proc cho pháp hiển thị danh sách nhân viên phòng ban đó**-Create proc dsnhanvien(@MaPB varchar(9)) As Begin Select * From nhanvien Where mapb=@mapb End Truy xuất-dsnhanvien @mapb='PB01' 13 **Tạo proc nhập masp loại sản phẩm**-Create proc dsloaisanpham(@tensp nvarchar(20)) As Begin Select tensp,loaisp.maloaisp,tenloaisp From loaisp,sanpham Where sanpham.maloaisp=loaisp.maloaisp and @tensp=tensp End Drop proc dsloaisanpham Truy xuất-dsloaisanpham @tensp=N'Điện Thoại' 14 /* PHẦN : TẠO TRIGGER */ **Tạo trigger nhập số lượng nhanvien tăng soluongnv b ảng phongban**-Create trigger nhapnhanvien On nhanvien For insert,delete As Begin Declare @MaPB1 varchar(9) Select @MaPB1=mapb From inserted If (exists(Select * From phongban Where mapb=@MaPB1)) Update phongban Set soluongnv=soluongnv+1 Where mapb=@MaPB1 Else Print 'Khong ton tai ma phong ban!!!!!' Declare Select From Update Set Where @MaPB2 varchar(9) @MaPB2=mapb deleted phongban soluongnv=soluongnv-1 mapb=@MaPB2 End **Tạo trigger tổng tiền lớn hơnn 1.000.000 giảm 10 % lại giảm 0%** -trigger-Create trigger tinhgiamgia On For insert As Begin Declare Select From Declare ( CT_hoadon @MaHD varchar(9) @MaHD=mahd inserted @TongTien float= Select From Where tongtien tt mahd=@MaHD ) If Update Set Where Else Update Set Where End (@TongTien>=1000000) hoadon giamgia=((@TongTien*10)/100) mahd=@MaHD hoadon giamgia=0 mahd=@MaHD 15 /* PHẦN : PHÂN QUYỀN VÀ BẢO MẬT CHO CSDL */ Tạo Login-Create login login1 With password = '123456' Go Xóa login-Drop login login1 Thêm cột user_name cho bảng nhanvien-Alter table nhanvien Add username varchar(9) Tạo user-Create user haitran For login login1 With DEFAULT_SCHEMA = BanHangDienTu Gán quyền "ALTER" bảng phongban cho user-Grant alter On phongban To haitran With Grant Option Hủy quyền user-Revoke alter On phongban From haitran Revoke all On From haitran phongban Test-Use BanHangDienTu Insert into nhanvien Values('NV10',N'Nguyễn Anh ','02/7/1996',N'Nam',N'Hà Nội','PB01') Alter table phongban add test int Alter table phongban Drop column test End ... soluong, giamgia) (7) Phongban (maPB, tenPB,sonv) - Mô hình quan hệ Thực hành SQL server Tạo sở liệu-CREATE DATABASE BanHangDienTu; use BanHangDienTu; Tạo bảng-Create table phongban ( mapb varchar(9)... nhân viên tu i cao nhất**-Create proc tuoicaonhat As Begin Declare @maxtuoi int Select @maxtuoi=max(tuoi) From tuoinv Select manv,tennv,tuoi From tuoinv Where tuoi=@maxtuoi End Truy xuất-Tuoicaonhat... With DEFAULT_SCHEMA = BanHangDienTu Gán quyền "ALTER" bảng phongban cho user-Grant alter On phongban To haitran With Grant Option Hủy quyền user-Revoke alter On phongban From haitran Revoke

Ngày đăng: 10/04/2017, 11:25

Từ khóa liên quan

Mục lục

  • 1. Phân tích bài toán

    • 1.1. Xác định kiểu thực thể

    • 1.2. Xác định liên kết và kiểu kiên kết

    • 1.3. Mô hình quan hệ

    • Quy tắc 3: chuyển các liên kết 1-n

    • - Mô hình quan hệ

    • 2. Thực hành trong SQL server

      • /* PHẦN 1 : TẠO VIEW CHO BẢNG */

      • /* PHẦN 2 : TẠO PROCEDURE CHO CÁC BẢNG */

      • /* PHẦN 3 : TẠO TRIGGER */

      • /* PHẦN 4 : PHÂN QUYỀN VÀ BẢO MẬT CHO CSDL */

Tài liệu cùng người dùng

Tài liệu liên quan