Tải bản đầy đủ (.pdf) (27 trang)

BÀI TẬP LỚN MÔN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU (SQL)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (563.48 KB, 27 trang )

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


×