TRƯỜNG ĐẠI HỌC CÔNG NGHỆ GIAO THÔNG VẬN TẢI
KHOA CÔNG NGHỆ THÔNG TIN
--------*********-------
BÁO CÁO HỌC PHẦN
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
ĐỀ TÀI: QUẢN LÝ CỬA HÀNG BÁN THỰC PHẨM SẠCH
GVHD: NGUYỄN THỊ KIM HUỆ
NHÓM 3:
1.
2.
3.
4.
5.
BÙI THANH THƯ
NGUYỄN THỊ LAN CHINH
LÊ THỊ LÂM
NGUYỄN VŨ HOÀNG
VŨ THANH TÙNG
Hà Nội, 05/2019
LỜI NÓI ĐẦU
Trên thế giới hiện nay, tin học là ngành phát triển không ngừng, thời kì
công nghệ 4.0 cũng đòi hỏi thông tin phải nhanh chóng và chính xác hơn.
Đất nước ta đang có những chuyển biến tích cực trong mọi lĩnh vực
như kinh tế, chính trị, khoa học- kỹ thuật.. Đảng và Nhà nước ta cũng rất
coi trọng việc áp dụng Công nghệ thông tin vào tất cả các lĩnh vực của đời
sống. Trong đó, quản lý kinh tế là một môi trường khá hấp dẫn và có tín
phổ biến hiện nay. Quản lý bán hàng là một đề tài thực tế được áp dụng
công nghệ thông tin trong tất cả các khâu và nếu thực hiện tốt sẽ mang lại
hiệu quả cực lớn. Chính vì vậy, nhóm em quyết định thực hiện đề tài:
“Quản lý cửa hàng bán thực phẩm sạch”.
Trong quá trình thực hiện đề tài, chúng em đã cố gắng rất nhiều nhưng
không thể tránh được những sai sót. Vì vậy rất mong nhận được ý kiến
góp ý từ phía thầy cô để chúng em hoàn thiện hơn nữa
Chúng em xin chân thành cám ơn!
MỤC LỤC
MÔ HÌNH CƠ SỞ DỮ LIỆU ............................................................................ 1
I.
1. Danh mục MẶT HÀNG (MATHANG) ......................................................... 1
2. Danh mục KHÁCH HÀNG (KHACHHANG) ............................................... 1
3. Danh mục NHÂN VIÊN (NHANVIEN) ........................................................ 1
4. Danh mục NHÀ CUNG CẤP (NCC) ............................................................. 2
5. Danh mục LOẠI HÀNG (LAOIHANG) ........................................................ 2
6. Danh mục BỘ PHẬN (BOPHAN) ................................................................. 3
7. Danh mục HÓA ĐƠN BÁN HÀNG (HDBH) ................................................ 3
8. Danh mục PHIẾU NHẬP KHO (PHIEUNHAPKHO) ................................... 3
9. Danh mục PHIẾU XUẤT KHO (PHIEUXUATKHO) ................................... 4
MÔ HÌNH LIÊN KẾT THỰC THỂ ............................................................... 5
II. THIẾT LẬP CƠ SỞ DỮ LIỆU ......................................................................... 6
III.
CHÈN DỮ LIỆU VÀO CÁC BẢNG ............................................................. 9
IV.
BÀI TẬP VIEW ........................................................................................... 15
V. BÀI TẬP CÂU LỆNH TRUY VẤN ............................................................... 16
VI.
BÀI TẬP PROCEDURE .............................................................................. 19
VII. BÀI TẬP TRIGGER .................................................................................... 22
I. MÔ HÌNH CƠ SỞ DỮ LIỆU
1. Danh mục MẶT HÀNG (MATHANG)
Tên cột
Ý nghĩa
Kiểu dữ liệu
Độ rộng
masanpham
Mã sản phẩm
nchar
20
maloaihang
Mã loại hàng
nchar
20
manhacungcap Mã nhà cung cấp
nchar
20
tensanpham
Tên sản phẩm
nchar
20
dongia
Đơn giá
money
donvitinh
Đơn vị tính
nchar
ngaysanxuat
Ngày sản xuất
date
hansudung
Hạn sử dụng
date
Allow
nulls
null
null
20
null
2. Danh mục KHÁCH HÀNG (KHACHHANG)
Tên cột
Ý nghĩa
Kiểu dữ
liệu
Độ rộng
makhachhang
Mã khách hàng
nchar
20
tenkhachhang
Tên khách hàng
nchar
20
sodienthoai
Số điện thoại
nchar
20
null
diachi
Địa chỉ
nchar
20
null
Độ rộng
Allow
nulls
3. Danh mục NHÂN VIÊN (NHANVIEN)
Tên cột
Ý nghĩa
Kiểu dữ
liệu
Allow
nulls
1
manhanvien
Mã nhân viên
nchar
20
hoten
Họ tên
nchar
20
ngaysinh
Ngày sinh
date
ngaylamviec
Ngày làm việc
date
dienthoai
Điện thoại
nchar
20
Null
diachi
Địa chỉ
nchar
10
Null
luongcoban
Lương cơ bản
money
gioitinh
Giới tính
nchar
10
mabophan
Mã bộ phận
nchar
20
4. Danh mục NHÀ CUNG CẤP (NCC)
Tên cột
Ý nghĩa
Null
Null
Kiểu dữ
liệu
Độ rộng
Null
Allow
nulls
manhacungcap
Mã nhà cung cấp
nchar
20
tennhacungcap
Tên nhà cung cấp
nchar
20
sodienthoai
Số điện thoại
nchar
20
null
diachi
Địa chỉ
nchar
20
null
5. Danh mục LOẠI HÀNG (LAOIHANG)
Tên cột
Ý nghĩa
Kiểu dữ
liệu
maloaihang
Mã loại hàng
Nchar
Độ rộng
Allow
nulls
20
2
tenloaihang
Tên loại hàng
6. Danh mục BỘ PHẬN (BOPHAN)
Tên cột
Ý nghĩa
nchar
20
null
Kiểu dữ
liệu
Độ rộng
Allow
nulls
mabophan
Mã bộ phận
Nchar
20
tenbophan
Tên bộ phận
nchar
20
null
Độ rộng
Allow
nulls
7. Danh mục HÓA ĐƠN BÁN HÀNG (HDBH)
Tên cột
Ý nghĩa
Kiểu dữ
liệu
sohoadon
Số hóa đơn
nchar
ngay
Ngày
date
masanpham
Mã sản phẩm
nchar
soluong
Số lượng
int
Null
dongia
Đơn giá
money
Null
manhanvien
Mã nhân viên
nchar
20
makhachhang
Mã khách hàng
nchar
20
20
null
20
8. Danh mục PHIẾU NHẬP KHO (PHIEUNHAPKHO)
Tên cột
Ý nghĩa
Kiểu dữ
Độ rộng
liệu
sophieunhap
Số phiếu nhập
nchar
ngaynhap
Ngày nhập
date
Allow
nulls
20
null
3
masanpham
Mã sản phẩm
nchar
20
soluong
Số lượng
int
Null
dongia
Đơn giá
money
Null
manhanvien
Mã nhân viên
nchar
20
9. Danh mục PHIẾU XUẤT KHO (PHIEUXUATKHO)
Tên cột
Ý nghĩa
Kiểu dữ
Độ rộng
liệu
Allow
nulls
sophieuxuat
Số phiếu xuất
nchar
20
ngayxuat
Ngày xuất
date
masanpham
Mã sản phẩm
nchar
soluong
Số lượng
int
Null
dongia
Đơn giá
money
Null
manhanvien
Mã nhân viên
nchar
null
20
20
4
MÔ HÌNH LIÊN KẾT THỰC THỂ
5
II. THIẾT LẬP CƠ SỞ DỮ LIỆU
1. Tạo bảng NHANVIEN
create table nhanvien (
manhanvien nchar (20) not null
constraint pk_manhanvien
primary key(manhanvien),
hoten nchar (20) null,
ngaysinh date null,
ngaylamviec date null,
dienthoai nchar (20) null,
diachi nchar (30) null,
luongcoban money null,
mabophan nchar (20) not null
)
2. Tạo bảng KHACHHANG
create table khachhang (
makhachhang nchar (20) not null
constraint pk_makhachhang
primary key (makhachhang),
tenkhachhang nchar (20) null,
sodienthoai nchar (20) null,
diachi nchar (30) null
)
3. Tạo bảng MATHANG
create table mathang (
masanpham char (20) not null
constraint pk_masanpham
primary key(masanpham),
maloaihang nchar (20) not null,
tensanpham nchar (20) null,
manhacungcap nchar (20) not null,
dongia money null,
donvitinh nchar (20) null,
ngaysanxuat date null,
hansudung date null
)
4. Tạo bảng LOAIHANG
6
5.
6.
7.
8.
create table loaihang (
maloaihang nchar (20) not null
constraint pk_maloaihang
primary key(maloaihang),
tenloaihang nchar (20) not null
)
Tạo bảng BOPHAN
Create table bophan (
Mabophan nchar(20) not null
constraint pk_mabophan
primary key(mabophan),
tenbophan nchar(20) null
)
Tạo bảng NHACUNGCAP
create table nhacungcap (
manhacungcap nchar (20) not null
constraint pk_manhacungcap
primary key (manhacungcap),
tennhacungcap nchar (20) null,
diachi nchar (20) null,
dienthoai nchar (20) null
)
Tạo bảng HOADONBANHANG
create table hoadonbanhang (
sohoadon nchar hoadon
primary key(sohoadon),
ngay date null,
masanpham nchar (20) not null,
soluong nchar (20) null,
dongia money null,
manhanvien nchar (20) not null,
makhachhang nchar (20) not null
)
Tạo bảng PHIEUNHAPKHO
create table phieunhapkho (
sophieunhap nchar (20) not null
constraint pk_phieunhap
primary key(sophieunhap),
7
ngaynhap date null,
masanpham nchar (20) not null,
soluong nchar (20) null,
dongia money null,
manhanvien nchar (20) not null
)
9. Tạo bảng PHIEUXUATKHO
create table phieuxuatkho (
sophieuxuat nchar (20) not null
constraint pk_phieuxuat
primary key(sophieuxuat),
ngayxuat date null,
masanpham nchar (20) not null,
soluong nchar (20) null,
dongia money null,
manhanvien nchar (20) not null
)
10. Tạo liên kết giữa các bảng
alter table mathang
add constraint fk_mathang_nhacungcap
foreign key(manhacungcap)
references nhacungcap(manhacungcap),
constraint fk_mathang_loaihang
foreign key(maloaihang)
references loaihang(maloaihang)
alter table nhanvien
add
constraint fk_nhanvien_bophan
foreign key(mabophan)
references bophan(mabophan)
alter table phieunhapkho
add
constraint fk_phieunhap_nhanvien
foreign key(manhanvien)
references nhanvien(manhanvien)
alter table phieunhapkho
add constraint fk_phieunhap_mathang
8
foreign key(masanpham)
references mathang(masanpham)
alter table phieuxuatkho
add
constraint fk_phieuxuat_nhanvien
foreign key(manhanvien)
references nhanvien(manhanvien),
constraint fk_phieuxuat_mathang
foreign key(masanpham)
references mathang(masanpham)
alter table hoadonbanhang
add
constraint fk_hoadon_khachhang
foreign key(makhachhang)
references khachhang(makhachhang),
constraint fk_hoadon_nhanvien
foreign key(manhanvien)
references nhanvien(manhanvien),
constraint fk_hoadon_mathang
foreign key(masanpham)
references mathang(masanpham)
III. CHÈN DỮ LIỆU VÀO CÁC BẢNG
1. Chèn bảng BOPHAN
insert into bophan (mabophan, tenbophan)
values ('bp1', N'Bán hàng')
insert into bophan (mabophan, tenbophan)
values ('bp2', N'Kho')
insert into bophan (mabophan, tenbophan)
values ('bp3', N'Bán hàng')
2. Chèn bảng LOAIHANG
insert into loaihang (maloaihang, tenloaihang)
values ('R1', N'Rau xanh')
insert into loaihang (maloaihang, tenloaihang)
values ('C1', N'Rau Cải')
insert into loaihang (maloaihang, tenloaihang)
values ('K1', N'Thực phẩm khô')
insert into loaihang (maloaihang, tenloaihang)
9
values ('T1', N'Thịt tươi sống')
insert into loaihang (maloaihang, tenloaihang)
values ('T2', N'Thực phẩm đông lạnh')
3. Chèn bảng NHACUNGCAP
insert into nhacungcap (manhacungcap, tennhacungcap, diachi,
dienthoai)
values ('CC1', N'Bình Liêu', N'Bình Thuận', '0987452301')
insert into nhacungcap (manhacungcap, tennhacungcap, diachi,
dienthoai)
values ('CC2', N'IAE', N'Hà Nội','0987487018')
insert into nhacungcap (manhacungcap, tennhacungcap, diachi,
dienthoai)
values ('CC3', N'Hoàng Dương', N'Thái Nguyên', '0387400301')
insert into nhacungcap (manhacungcap, tennhacungcap, diachi,
dienthoai)
values ('CC4', N'Bác Tôm', N'Hà Nam','0398740293')
insert into nhacungcap (manhacungcap, tennhacungcap, diachi,
dienthoai)
values ('CC5', N'Kim An’, N'Hà Nội','0984022976')
insert into nhacungcap (manhacungcap, tennhacungcap, diachi,
dienthoai)
values ('CC6', N'An An Phát', N'Hải Dương','09774523115')
insert into nhacungcap (manhacungcap, tennhacungcap, diachi,
dienthoai)
values ('CC7', N'Bình Minh', N'Hưng Yên','0977071160')
insert into nhacungcap (manhacungcap, tennhacungcap, diachi,
dienthoai)
values ('CC8', N'Vĩnh Tường', N'Hà Nam','0967882301')
insert into nhacungcap (manhacungcap, tennhacungcap, diachi,
dienthoai)
values ('CC9', N'Hoàng Dương', N'Hưng Yên','0367017463')
insert into nhacungcap (manhacungcap, tennhacungcap, diachi,
dienthoai)
values ('CC10', N'Tân Đại Dương', N'Lào Cai','0987452301')
4. Chèn bảng KHACHHANG
insert into khachhang (makhachhang, tenkhachhang, sodienthoai,
diachi)
values ('KH1', N'Bùi Thanh Thư', 0398740293, Hà Nội')
10
insert into khachhang (makhachhang, tenkhachhang,s odienthoai,
diachi)
values ('KH2', N'Lê Thị Lâm', 0988740295, N'Nghệ An')
insert into khachhang (makhachhang, tenkhachhang, sodienthoai,
diachi)
values ('KH3', N'Nguyễn Thị Ánh', 0397540122, N'Hưng
Yên')
insert into khachhang (makhachhang, tenkhachhang, sodienthoai,
diachi)
values ('KH4', N'Nguyễn Thị Hạ', 0354012964, N'Hà Nội')
insert into khachhang (makhachhang, tenkhachhang, sodienthoai,
diachi)
values ('KH5', N'Nguyễn Đình Quang', 0368795402, Bắc Giang')
insert into khachhang (makhachhang, tenkhachhang, sodienthoai,
diachi)
values ('KH6', N'Đỗ Xuân Hòa', 0398551003, Bắc Giang')
insert into khachhang (makhachhang, tenkhachhang, sodienthoai,
diachi)
values ('KH7', N'Ngô Bình Dân', 0398741999, Hà Nội')
insert into khachhang (makhachhang, tenkhachhang, sodienthoai,
diachi)
values ('KH8', N'Nguyễn Thị Lan Chinh', 0367770099, N'Ninh Bình')
insert into khachhang (makhachhang, tenkhachhang, sodienthoai,
diachi)
values ('KH9', N'Nguyễn Thị Kim Oanh', 0345002211, N'Hải Phòng')
insert into khachhang (makhachhang, tenkhachhang, sodienthoai,
diachi)
values ('KH10', N'Cao Minh Tuấn', 0944556600, Hưng Yên')
5. Chèn bảng NHANVIEN
insert into
nhanvien (manhanvien, hoten, ngaysinh, ngaylamviec, dienthoai,
diachi, luongcoban, mabophan)
values ('NV1', N'Pạm Tuấn Anh', '1998/03/25', '2018/03/19',
'0366554411', N'Yên Bái', 3000000,'bp2')
insert into
nhanvien (manhanvien, hoten, ngaysinh, ngaylamviec, dienthoai,
diachi, luongcoban, mabophan)
values ('NV2', N'Phạm Minh Ngọc', '1999/05/28', '2017/05/05',
'0344444411', N'Ninh Bình', 3000000, 'bp2')
11
insert into nhanvien (manhanvien, hoten, ngaysinh, ngaylamviec,
dienthoai, diachi, luongcoban, mabophan)
values
('NV3',
N'Mai
Công
Chuyên',
'1999/05/03',
'2019/01/12','0356554400', N'Thái Bình',3000000,'bp2')
insert into nhanvien (manhanvien, hoten, ngaysinh, ngaylamviec,
dienthoai, diachi, luongcoban, mabophan)
values ('NV4', N'Lê Văn Hoàn', '1995/06/16', '2016/10/05',
'0916554411', N'Thanh Hóa',3000000,'bp2')
insert into nhanvien (manhanvien, hoten, ngaysinh, ngaylamviec,
dienthoai, diachi, luongcoban, mabophan)
values ('NV5', N'Nguyễn Hoài Nam', '1990/08/12', '2016/12/20',
'0355554411', N'Hà Nội',3500000,'bp2')
insert into nhanvien (manhanvien, hoten, ngaysinh, ngaylamviec,
dienthoai, diachi, luongcoban, mabophan)
values
('NV6',
N'Lê
Hương
Giang',
'1998/10/10',
'2016/05/05','0340214411', N'Hà Nam',3000000,'bp1')
insert into nhanvien (manhanvien, hoten, ngaysinh, ngaylamviec,
dienthoai, diachi, luongcoban, mabophan)
values ('NV7', N'Hoàng Kim Ngân', '1999/08/02', '2018/01/26',
'0999554411', N'Hà Nội', 3800000, 'bp1')
insert into nhanvien (manhanvien, hoten, ngaysinh, ngaylamviec,
dienthoai, diachi, luongcoban, mabophan)
values ('NV8', N'Nguyễn Thị Thảo', '1999/15/02', '2016/06/13',
'0366533311', N'Hưng Yên', 3200000, 'bp1')
insert into nhanvien (manhanvien, hoten, ngaysinh, ngaylamviec,
dienthoai, diachi, luongcoban, mabophan)
values ('NV9', N'Lê Ngọc Minh', '1998/04/16', '2018/09/03',
'0385404411', N'Hà Nội', 3100000, 'bp1')
insert into nhanvien (manhanvien, hoten, ngaysinh, ngaylamviec,
dienthoai, diachi, luongcoban, mabophan)
values
('NV10',
N'Nguyễn
Phương
Mai',
'1993/02/26',
'2018/03/08','0333554410', N'Lạng Sơn', 4000000, 'bp1')
6. Chèn bảng MATHANG
insert into mathang (masanpham, maloaihang, tensanpham,
manhacungcap, dongia, donvitinh, ngaysanxuat, hansudung)
values ('SP1','R1', N'Rau cải','CC1',10000,'kg','2019/03/19', null)
insert into mathang (masanpham, maloaihang, tensanpham,
manhacungcap, dongia, donvitinh, ngaysanxuat, hansudung)
values ('SP2','R1', N'Rau muống', 'CC5', 8000, 'kg', '2019/03/19', null)
12
insert into mathang (masanpham, maloaihang, tensanpham,
manhacungcap, dongia, donvitinh, ngaysanxuat, hansudung)
values ('SP3','C1', N'Cà rốt','CC10',15000,'kg','2019/03/15', null)
insert into mathang (masanpham, maloaihang, tensanpham,
manhacungcap, dongia, donvitinh, ngaysanxuat, hansudung)
values ('SP4','C1', N'Khoai tây', 'CC10', 17000, 'kg', '2019/03/10', null)
insert into mathang (masanpham, maloaihang, tensanpham,
manhacungcap, dongia, donvitinh, ngaysanxuat, hansudung)
values ('SP5','C1', N'Khoai lang', 'CC10', 21000, 'kg', '2019/03/10', null)
insert into mathang (masanpham, maloaihang, tensanpham,
manhacungcap, dongia, donvitinh, ngaysanxuat, hansudung)
values ('SP0', 'T1', N'Thịt ba chỉ heo', 'CC4', 100000, 'kg', '2019/03/19',
'2019/03/24')
insert into mathang (masanpham, maloaihang, tensanpham,
manhacungcap, dongia, donvitinh, ngaysanxuat, hansudung)
values ('SP6','T1', N'Thịt chân giò heo', 'CC4', 110000,' kg',
'2019/03/19', '2019/03/24')
insert into mathang (masanpham, maloaihang, tensanpham,
manhacungcap, dongia, donvitinh, ngaysanxuat, hansudung)
values ('SP7', 'T2', N'Cá thu đông lạnh', 'CC2', 180000, 'kg',
'2019/03/10', '2019/03/20')
insert into mathang (masanpham, maloaihang, tensanpham,
manhacungcap, dongia, donvitinh, ngaysanxuat, hansudung)
values ('SP8', 'K1', N'Lạc', 'CC3', 50000, 'kg', '2019/02/15', null)
insert into mathang (masanpham, maloaihang, tensanpham,
manhacungcap, dongia, donvitinh, ngaysanxuat, hansudung)
values ('SP9', 'K1', N'Gạo','CC6',175000,'kg','2019/01/25', null)
insert into mathang (masanpham, maloaihang, tensanpham,
manhacungcap, dongia, donvitinh, ngaysanxuat, hansudung)
values ('SP10', 'K1', N'Nấm hương', 'CC7', 155000, 'kg', '2019/01/09',
null)
7.
Chèn bảng PHIEUNHAPKHO
insert into phieunhapkho (sophieunhap, ngaynhap, masanpham,
soluong, dongia, manhanvien)
values ('PN1','2019/01/08','SP1',50, 6000,'NV1')
insert into phieunhapkho (sophieunhap, ngaynhap, masanpham,
soluong, dongia, manhanvien)
values ('PN2','2019/03/01','SP5',50, 80000,'NV5')
insert into phieunhapkho (sophieunhap, ngaynhap, masanpham,s
oluong, dongia, manhanvien)
13
values ('PN3','2019/01/02','SP3',40, 10000,'NV2')
insert into phieunhapkho (sophieunhap, ngaynhap, masanpham,
soluong, dongia, manhanvien)
values ('PN4','2019/01/13','SP2',30, 4000,'NV1')
insert into phieunhapkho (sophieunhap, ngaynhap, masanpham,
soluong, dongia, manhanvien)
values ('PN5','2019/01/24','SP4',50, 10000,'NV1')
insert into phieunhapkho (sophieunhap, ngaynhap, masanpham,
soluong, dongia, manhanvien)
values ('PN6','2019/02/16','SP9',150, 95000,'NV1')
8. Chèn bảng PHIEUXUATKHO
insert into phieuxuatkho (sophieuxuat, ngayxuat, masanpham, soluong,
dongia, manhanvien)
values ('PX1','2019/02/03','SP9',50, 175000,'NV1')
insert into phieuxuatkho (sophieuxuat, ngayxuat, masanpham, soluong,
dongia, manhanvien)
values ('PX2','2019/02/13','SP3',10, 15000,'NV3')
insert into phieuxuatkho (sophieuxuat, ngayxuat, masanpham, soluong,
dongia, manhanvien)
values ('PX3','2019/02/09','SP1',50, 10000,'NV4')
insert into phieuxuatkho (sophieuxuat, ngayxuat, masanpham, soluong,
dongia, manhanvien)
values ('PX4','2019/02/11','SP5',50, 100000,'NV6')
insert into phieuxuatkho (sophieuxuat, ngayxuat, masanpham, soluong,
dongia, manhanvien)
values ('PX5','2019/01/15','SP10',20, 155000,'NV5')
insert into phieuxuatkho (sophieuxuat, ngayxuat, masanpham, so luong,
dongia, manhanvien)
values ('PX6','2019/01/06','SP2',10, 8000,'NV1')
insert into phieuxuatkho (sophieuxuat, ngayxuat, masanpham, soluong,
dongia, manhanvien)
values ('PX7','2019/03/03','SP7',50, 180000,'NV1')
9. Chèn bảng HOADONBANHANG
insert into hoadonbanhang (sohoadon, ngay, masanpham, soluong,
dongia, manhanvien, makhachhang)
values ('HD1','2019/03/18','SP1',1,10000,'NV7','KH2')
14
insert into hoadonbanhang (sohoadon, ngay, masanpham,
dongia, manhanvien, makhachhang)
values ('HD2','2019/03/17','SP10',1,155000,'NV7','KH10')
insert into hoadonbanhang (sohoadon, ngay, masanpham,
dongia, manhanvien, makhachhang)
values ('HD3','2019/03/19','SP6',1,110000,'NV10','KH5')
insert into hoadonbanhang (sohoadon, ngay, masanpham,
dongia, manhanvien, makhachhang)
values ('HD4','2019/03/10','SP4',5,17000,'NV8','KH6')
insert into hoadonbanhang (sohoadon, ngay, masanpham,
dongia, manhanvien, makhachhang)
values ('HD5','2019/03/15','SP9',10,175000,'NV7','KH1')
insert into hoadonbanhang (sohoadon, ngay, masanpham,
dongia, manhanvien, makhachhang)
values ('HD7','2019/03/28','SP9','15',175000,'NV6','KH009')
soluong,
soluong,
soluong,
soluong,
soluong,
IV. BÀI TẬP VIEW
1 Tạo khung nhìn Danh sách nhân viên với các cột: manv, hoten, tuoi,
tenbophan
create view vw_dsnhanvien
as select manhanvien, hoten, DATEDIFF (YY, ngaysinh, getdate ()) as
N'tuổi', tenbophan
from nhanvien, bophan
where nhanvien.mabophan=bophan.mabophan
select * from ds_nhanvien
2 Tạo khung nhìn khách hàng với các cột: maKH, tenKH, mặt hàng đã
mua, số tiền phải trả
create view vw_khachhang
as select hoadonbanhang.makhachhang, tenkhachhang, tensanpham as
N'mặt hàng đã mua', sum(hoadonbanhang.dongia*soluong) as N'Thanh
Toán'
from khachhang, hoadonbanhang, mathang
where khachhang.makhachhang= hoadonbanhang.makhachhang
and hoadonbanhang.masanpham= mathang.masanpham
group by hoadonbanhang.makhachhang, tenkhachhang, tensanpham
select * from ds_khachhang
3 Tạo khung nhìn (gồm: sohoadon, masanpham, tensanpham, soluong)
thống kê các sản phẩm đã bán
create view vw_sanpham
15
as select hoadonbanhang.masanpham, tensanpham, soluong
from hoadonbanhang, mathang
where hoadonbanhang.masanpham= mathang.masanpham
select * from vw_sanpham_daban
4 Tạo view thống kê giá nhập và xuất của từng sản phẩm
alter view vw_gianhap_giaxuat
as
select phieunhapkho.masanpham, tensanpham, phieunhapkho.dongia
as N'Giá mua vào', mathang.dongia as N'Giá bán ra'
from phieunhapkho, mathang
where phieunhapkho.masanpham= mathang.masanpham
select * from vw_gianhap_giaxuat
5 Tạo view thống kê tên sản phẩm cùng nhà cung cấp tương ứng
create view vw_sanpham_nhacungcap
as
select masanpham, tensanpham, mathang.manhacungcap,
tennhacungcap
from nhacungcap, mathang
where mathang.manhacungcap= nhacungcap.manhacungcap
select * from vw_sanpham_nhacungcap
V. BÀI TẬP CÂU LỆNH TRUY VẤN
1. Tính tổng số tiền của các hóa đơn do nhân viên có mã là NV6 thực hiện
select hoadonbanhang.manhanvien as N'Mã nhân viên',
hoten as N'Họ tên', sum (soluong *dongia) as N'Tổng tiền đã bán'
from hoadonbanhang, nhanvien
where hoadonbanhang.manhanvien=nhanvien.manhanvien and
hoadonbanhang.manhanvien='NV6'
group by hoadonbanhang.manhanvien, hoten
2. Cho biết mỗi loại hàng bao gồm những sản phẩm gì?
16
select loaihang.maloaihang, tenloaihang, masanpham, tensanpham,
dongia
from loaihang,mathang
where loaihang.maloaihang=mathang.maloaihang
order by loaihang.maloaihang
3. Cho biết mỗi nhà cung cấp cung cấp những mặt hàng nào
select
mathang.manhacungcap,
tennhacungcap,
masanpham,
tensanpham
from mathang, nhacungcap
where mathang.manhacungcap= nhacungcap.manhacungcap
order by mathang.manhacungcap
4. Cho biết các mặt hàng đã nhập trong tháng 1/2019 và tính tiền các
mặt hàng đó
17
select
phieunhapkho.masanpham,
tensanpham,
sum(phieunhapkho.dongia*soluong) as N'Tổng Tiền nhập'
from phieunhapkho, mathang
where phieunhapkho.masanpham= mathang.masanpham
and year(ngaynhap)=2019 and month(ngaynhap)=1
group by phieunhapkho.masanpham, tensanpham
5. Cho biết những nhân viên nào chưa từng thực hiện một hóa đơn bán
hàng nào
select manhanvien,hoten
from nhanvien
where not exists (select manhanvien from hoadonbanhang
where manhanvien= nhanvien.manhanvien)
6. Đưa ra tên sản phẩm có giá bán đắt nhất
select top 1 masanpham, tensanpham, dongia
from mathang order by dongia DESC
7. Cho biết số tiền lời thu được trong tháng 3
select sum (hoadonbanhang.dongia * hoadonbanhang.soluong)sum(phieunhapkho.dongia*hoadonbanhang.soluong)
as N'Tổng lãi tháng 3'
from hoadonbanhang, phieunhapkho
where hoadonbanhang.masanpham= phieunhapkho.masanpham
and month(ngay)=3
18
8. Cho biết hiện tại cửa hàng có bao nhiêu loại mặt hàng
select count(masanpham) as N'Tổng mặt hàng'
from mathang
VI. BÀI TẬP PROCEDURE
1. Xây dựng thủ tục thêm dữ liệu vào bảng NHANVIEN
create proc proc_nhapdulieuNV @manhanvien nchar (20), @hoten nchar
(20), @ngaysinh date, @ngaylamviec date, @dienthoai nchar (20),
@diachi nchar (20), @luongcoban money, @mabophan nchar (20)
as
insert into nhanvien values (@manhanvien, @hoten, @ngaylamviec,
@ngaysinh, @dienthoai, @diachi, @luongcoban, @mabophan)
execute proc_themdulieu_NV 'NV14', N'Hoàng Thị Loan', '2018/05/12',
'1993/05/07', '0366021110', N'Lạng Sơn', 4000000,'bp1'
select *from nhanvien
2. Xây dựng thủ tục so sánh giá của 2 sản phẩm bất kì
alter
proc
pr_sosanhdongia
(@masanpham_1
nchar
(20),
@masanpham_2 nchar (20))
as
declare @tensanpham_1 nchar (20)
declare @dongia_1 nchar (20)
declare @tensanpham_2 nchar (20)
declare @dongia_2 nchar (20)
select @tensanpham_1= tensanpham, @dongia_1= dongia
from mathang
where masanpham= @masanpham_1
select @tensanpham_2= tensanpham, @dongia_2= dongia
from mathang
where masanpham= @masanpham_2
print @tensanpham_1 +'co gia la:'+@dongia_1
19
print @tensanpham_2 +'co gia la:'+@dongia_2
if @dongia_1>@dongia_2 print @tensanpham_1+có giá cao hơn '+
@tensanpham_2
else if @dongia_1<@dongia_2 print @tensanpham_1+có giá thấp hơn '
+ @tensanpham_2
else print N'Hai sản phẩm có giá bằng nhau'
execute sosanh_dongia 'SP9','SP2'
3. Thủ tục pr_khachhang được định nghĩa với tham số @diachi để tìm
kiếm khách hàng theo địa chỉ
create proc pr_khachhang_HN (@tenkhachhang nchar (20) = null,
@diachi nchar (20) = N'Hà Nội')
as begin
if
@tenkhachhang is null
select tenkhachhang, diachi
from khachhang
where diachi=@diachi
else
select tenkhachhang, diachi
from khachhang
where diachi= @diachi and tenkhachhang= @tenkhachhang
end
- Cho biết tên các khách hàng có địa chỉ tại Hà Nội:
execute pr_khachhang_HN
20
- Cho biết tên các khách hàng có địa chỉ tại Hải Phòng:
execute pr_khachhang_HN @diachi=N'Hải Phòng'
4. Thủ tục tính tổng tiền của một hóa đơn bán hàng bất kì
create proc pr_thanhtoan (@sohoadon nchar (20))
as
declare @tongtien money
select @tongtien= sum(dongia*soluong)
from hoadonbanhang
where sohoadon= @sohoadon
print N ‘Số tiền cần thanh toán là:’
print @tongtien
execute pr_thanhtoan 'HD4'
5. Thủ tục thống kê số lượng nhập vào của một mặt hàng bất kì trong
tháng 1/2019
alter proc pr_soluongnhap (@masanpham nchar (20))
as
select tensanpham, phieunhapkho.soluong as N'Số lượng đã nhập'
from phieunhapkho, mathang
where phieunhapkho.masanpham= mathang.masanpham and
mathang.masanpham=@masanpham
and month(ngaynhap)=1 and year(ngaynhap)=2019
execute pr_soluongnhap 'SP2'
21
VII. BÀI TẬP TRIGGER
1 Xây dựng trigger cho phép nhập tuổi của nhân viên không được nhỏ
hơn 18
alter trigger trg_tuoi
on nhanvien
for insert as
declare @ngaysinh date
select @ngaysinh= ngaysinh
from inserted
if datediff (YY, @ngaysinh, getdate())<18
begin
print N'Dữ liệu không hợp lệ'
rollback transaction
end
2 Viết trigger cho bảng HOADONBANHANG sao cho soluong bán ra
không được nhỏ hơn 1
create trigger trg_soluong
on hoadonbanhang
for insert, update
as
declare @soluong int
select @soluong=soluong from inserted
if @soluong<0
begin
print N'Dữ liệu không hợp lệ'
rollback transaction
end
3. Cập nhật lại số lượng của bảng MATHANG khi dữ liệu được chèn vào
bảng HOADONBANHANG
create trigger trg_nhatkibanhang
on hoadonbanhang
22