1. Trang chủ
  2. » Công Nghệ Thông Tin

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

15 909 2

Đ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

Định dạng
Số trang 15
Dung lượng 162,2 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

M C L C: Ụ Ụ

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 1-n ắ ể ế 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

Trang 2

B NG PHÂN CÔNG Ả

Tr n Thanh H i ầ ả T o b n, Nh p d li u ạ ả ậ ữ ệ

Ph n 4 ầ

Trang 3

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

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

- Ch c a hàng không ph i là ki u th c th vì đây là ki u th c th duy nh t ủ ử ả ể ự ể ể ự ể ấ

- Nhân viên c a hàng ch thu c m t b ph n và m t b ph n có nhi u nhân viên ủ ỉ ộ ộ ộ ậ ộ ộ ậ ề

- M i s n ph m thu c 1 lo i s n ph m và m t lo i s n ph m có th có nhi u s n ỗ ả ẩ ộ ạ ả ẩ ộ ạ ả ẩ ể ề ả

ph m ẩ

- M i hóa đ n do 1 nhân viên l p, m t nhân viên có th l p nhi u hóa đ n ỗ ơ ậ ộ ể ậ ể ơ

- M i hóa đ n đ ỗ ơ ượ ậ c l p cho 1 khách hàng, m t khách hàng có th có nhi u hóa ộ ể ề

đ n ơ

- Chi ti t hóa đ n có thông tin c a s n ph m trong 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 và ki u kiên k t ị ế ể ế

Nhanvien thu c phongban : n -1 ộ

nhanvien l p hoadon : 1 – n ậ

sanpham thu c loaisanpham : n – 1 ộ

khachhang có hoadon : 1 – n

CT_hoadon 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)

(5) Hoadon (mahd, ngaylap)

(6) CT_hoadon (mahd, soluong, giamgia)

(7) Phongban (maPB, tenPB,sonv)

- Quy t c 3: chuy n các 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)

Trang 4

(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ệ

2 Th c hành trong SQL server ự

T o c s d li u ạ ơ ở ữ ệ

CREATEDATABASE BanHangDienTu;

T o b ng ạ ả

Createtable phongban

(

mapb varchar(9)primarykey,

)

Trang 5

Createtable loaisp

(

maloaispvarchar(9)primarykey,

tenloaispnvarchar(20)

)

Createtable khachhang

(

makh varchar(9)notnullprimarykey,

);

Createtable nhanvien

(

manv varchar(9)notnullprimarykey,

ngaysinhsmalldatetime,

gioitinh nvarchar(3)check (gioitinh in('Nam',N'N 'ữ)),

mapb varchar(9)references phongban(mapb) );

Createtable sanpham

(

masp varchar(9)primarykey,

maloaispvarchar(9)references loaisp(maloaisp)

);

Createtable hoadon

(

mahd varchar(9)notnullprimarykey,

manv varchar(9)references nhanvien(manv),

makh varchar(9)references khachhang(makh),

);

Createtable CT_hoadon

(

mahd varchar(9)notnullreferences hoadon(mahd),

masp varchar(9)notnullreferences sanpham(masp),

primarykey(mahd,masp) );

Thêm trường soluongnv vào b ng phongban ả

Altertable phongban

Add soluongnv int

S a tennv có 30 ký t ử ự

Altertable nhanvien

Altercolumn tennv nvarchar(30)

Trang 6

Đ t m c đ nh cho s trặ ặ ị ố ường nhân viên là

0 Altertable phongban

Addconstraint df_soluongnv default 0 for soluongnv

Đ t m c đ nh cho trặ ặ ị ường gi m giá là 0 ả

Altertable hoadon

Addconstraint df_giamgia default 0 for giamgia

Thêm d li u cho b ng phongban ữ ệ ả

Insertinto phongban

Values ('PB01',N'K Toán'ế ,''

Insertinto phongban

Values ('PB02',N'Kinh Doanh',''

Insertinto phongban

Values ('PB03',N'Bán Hàng',''

Xóa trường

mapb Deletefrom phongban

Where mapb='PB01'

Chèn d li u vào b ng khachhang ữ ệ ả

Insertinto khachhang

Values ('KH01',N'Tr n Di u Linh'ầ ệ ,N'Hà N i'ộ ,'086433545','dieulinh@gmail.com')

Insertinto khachhang

Values ('KH02',N'Nguy n Qu c Đ t'ễ ố ạ ,N'Thái Nguyên','086433567','quocdat@gmail.com')

Insertinto khachhang

Values ('KH03',N'Nguy n Mai Anh'ễ ,N'Hà N i'ộ ,'0864445545','maianh@gmail.com')

Insertinto khachhang

Values ('KH04',N'Vũ M nh Toàn'ạ ,N'Hà N i'ộ ,'0864335456','manhhoang@gmail.com')

Insertinto khachhang

Values ('KH05',N'Dương Lam An',N'H i Phòng'ả ,'086433455','duonglamanh@gmail.com')

Chèn d li u vào b ng nhanvien ữ ệ ả

Insertinto nhanvien

Values('NV01',N'Nguy n Anh Tu n'ễ ấ ,'02/7/1996',N'Nam',N'Hà N i'ộ ,'PB01')

Insertinto nhanvien

Values('NV02',N'Nguy n Minh Anh'ễ ,'02/12/1993',N'N 'ữ,N'H i Phòng'ả ,'PB01')

Insertinto nhanvien

Values('NV03',N'Vũ M nh Ti n'ạ ề ,'12/24/1998',N'Nam',N'Hà N i'ộ ,'PB02')

Insertinto nhanvien

Values('NV04',N'Tr n Ng c Huy n'ầ ọ ề ,'11/28/1997',N'N 'ữ,N'Thái Nguyên','PB03')

Trang 7

Chèn d li u vào b ng maloaisp ữ ệ ả

Insertinto loaisp

Values('MLSP01','SmartPhone')

Insertinto loaisp

Values('MLSP02','TV')

Xóa

nhanvien Deletefrom nhanvien

Where manv='NV02'

Chèn d li u vào b ng sanpham ữ ệ ả

Insertinto sanpham

Values('SP01','Samsung galaxy S1',N'Cái','2100000','MLSP01')

Insertinto sanpham

Values('SP02','Samsung galaxy S2',N'Cái','800000','MLSP01')

Insertinto sanpham

Values('SP03','LG 113',N'Cái','4500000','MLSP02')

Chèn d li u vào b ng hoadon ữ ệ ả

Insertinto hoadon

Values('HD01','12/10/1996','NV01','KH01',''

Insertinto hoadon

Values ('HD02','3/6/2016','NV02','KH02',''

Insertinto hoadon

Values ('HD03','3/11/2016','NV03','KH03',''

Insertinto hoadon

Values ('HD04','3/26/2016','NV04','KH04',''

Xóa

mahd Deletefrom hoadon

Where mahd='HD04'

Chèn d li u vào b ng CT_hoadon ữ ệ ả

Insertinto CT_hoadon

Values('HD01','SP01','2')

Insertinto CT_hoadon

Values('HD04','SP02','2')

Insertinto CT_hoadon

Values('HD03','SP03','22')

Xóa mahd trong

CT_hoadon Deletefrom CT_hoadon

Where mahd='HD04'

TEST Select*from phongban

Select*from loaisp

Select*from khachhang

Select*from nhanvien

Select*from sanpham

Trang 8

Select*from hoadon

Select*from CT_hoadon

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

**T o view tính tu i c a nhân viên** ạ ổ ủ

Createview 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** ạ ổ ề

createview tt(masp,tensp,mahd,tongtien)

As

Select sanpham.masp,sanpham.tensp,CT_hoadon.mahd,sum(dongia*soluong)

Where sanpham.masp=CT_hoadon.masp

Groupby sanpham.masp,sanpham.tensp,CT_hoadon.mahd

Truy xu t view tongtien ấ

Select*from tt

Trang 9

**T o view l y ra nhanvien co diachi "Ha Noi"** ạ ấ ở

Createview diachihanoi(manv,tennv,diachi)

As

Select manv,tennv,diachi

Where diachi likeN'Hà%'

Truy xu t ấ

Select*From diachihanoi

**View l y ra khachhang có email** ấ

Createview emailkhachhang(makh,tenkh,email)

As

Select makh,tenkh,email

Where email like'%@%'

Truy Xu t ấ

Select*From emailkhachhang

**T o view th c hi n danh sách nhanvien n sinh tháng 3** ạ ự ệ ữ Createview nhanviennu

As

Select manv,tennv,ngaysinh

Where gioitinh=N'N 'ữ andmonth(ngaysinh)=3

Truy xu t ấ

select*

From nhanviennu

Trang 10

**T o view tính t ng s nhân viên nam c a c a hàng** ạ ổ ố ủ ử Createview nhanviennam

As

Selectcount(manv)as SoNVnam

Where gioitinh='Nam'

Truy xu t ấ

Select*

From nhanviennam

Trang 11

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

**T o proc tính nhân viên tu i cao nh t** ạ ổ ấ

Createproc tuoicaonhat

As

Begin

Declare @maxtuoi int

Select @maxtuoi=max(tuoi)

Select manv,tennv,tuoi

Wheretuoi=@maxtuoi

End

Truy xu t ấ

Tuoicaonhat

**T o proc cho bi t tên nhân viên bán đạ ế ược nhi u ti n hàng nh t** ề ề ấ

Createview tienhang(manv,tennv,tongtien)

As

Select nhanvien.manv,nhanvien.tennv,sum(soluong*dongia)

Where nhanvien.manv=hoadon.manv and hoadon.mahd=CT_hoadon.mahd and CT_hoadon.masp= san-pham.masp

Groupby nhanvien.manv,nhanvien.tennv

Createproc nhanvienbannhieutien

As

Begin

Declare @tongtien float

Select @tongtien=max(tongtien)

Select manv,tennv,tongtien

Where tongtien=@tongtien

End

Truy xu t ấ

nhanvienbannhieutien

Trang 12

**T o proc cho bi t khách hàng mua nhi uu ti n nh t** ạ ế ề ề ấ

Createview khachhangmuanhieutien(makh,tenkh,tongtien)

As

Select khachhang.makh,khachhang.tenkh,sum(soluong*dongia)

Where khachhang.makh=hoadon.makh and hoadon.mahd=CT_hoadon.mahd and CT_hoadon -masp=sanpham.masp

Groupby khachhang.makh,khachhang.tenkh

Createproc khachhangmua

As

Begin

Declare @tongtien float

Select @tongtien=max(tongtien)

Select makh,tenkh,tongtien

Wheretongtien=@tongtien

End

Truy xu t ấ

khachhangmua

**T o proc cho pháp hi n th danh sách nhân viên trong phòng ban nào đó** ạ ể ị

Createproc dsnhanvien(@MaPB varchar(9))

As

Begin

Select *

Wheremapb=@mapb

End

Truy xu t ấ

dsnhanvien @mapb='PB01'

Trang 13

**T o proc nh p masp thì hi n ra lo i s n ph m** ạ ậ ệ ạ ả ẩ

Createproc dsloaisanpham(@tensp nvarchar(20))

As

Begin

Select tensp,loaisp.maloaisp,tenloaisp

From loaisp,sanpham

Where sanpham.maloaisp=loaisp.maloaisp and @tensp=tensp

End

Dropproc dsloaisanpham

Truy xu t ấ

dsloaisanpham @tensp=N'Đi n Tho i'ệ ạ

Trang 14

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

**T o trigger khi nh p s lạ ậ ố ượng nhanvien thì s tăng soluongnv trong b ng phongban** ẽ ả Createtrigger nhapnhanvien

On nhanvien

Forinsert,delete

As

Begin

Declare @MaPB1 varchar(9)

If (exists(Select*From phongban Where mapb=@MaPB1)) Update phongban

Else

Print 'Khong ton tai ma phong ban!!!!!'

Declare @MaPB2 varchar(9)

Update phongban

End

**T o trigger n u t ng ti n l n h nn 1.000.000 thì gi m 10 % còn l i gi m 0%** ạ ế ổ ề ớ ơ ả ạ ả

trigger Createtrigger tinhgiamgia

Forinsert

As

Begin

Declare @MaHD varchar(9)

Declare @TongTien float=

(

)

Update hoadon

Else

Update hoadon

End

Trang 15

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

T o Login ạ

Createlogin login1 Withpassword='123456'

Go

Xóa

login Droplogin login1

Thêm c t user_name cho b ng nhanvien ộ ả

Altertable nhanvien

Add username varchar(9)

T o user ạ

Createuser haitran

Forlogin login1

WithDEFAULT_SCHEMA= BanHangDienTu

Gán quy n "ALTER" b ng phongban cho user ề ả

Grantalter

On phongban

To haitran

WithGrantOption

H y quy n user ủ ề

Revokealter

Revokeall

Test Use BanHangDienTu

Insertinto nhanvien

Values('NV10',N'Nguy n Anh 'ễ ,'02/7/1996',N'Nam',N'Hà N i'ộ ,'PB01')

Altertable phongban

add test int

Altertable phongban

Dropcolumn test

End

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

TỪ KHÓA LIÊN QUAN

w