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

TIỂU LUẬN THUYẾT TRÌNH ONLINE cơ sở dữ LIỆU đề tài xây DỰNG mô HÌNH cơ sở dữ LIỆU QUẢN lý MUA bán XE của cửa HÀNG HONDA

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 (390.78 KB, 34 trang )

lOMoARcPSD|9234052

BỘ GIÁO DỤC VÀ ĐÀO TẠO

ĐẠI HỌC KINH TẾ TP HỒ CHÍ MINH (UEH)
TRƯỜNG CƠNG NGHỆ VÀ THIẾT KẾ


TIỂU LUẬN THUYẾT TRÌNH ONLINE
CƠ SỞ DỮ LIỆU
ĐỀ TÀI: XÂY DỰNG MƠ HÌNH CƠ SỞ DỮ LIỆU QUẢN LÝ
MUA BÁN XE CỦA CỬA HÀNG HONDA
Sinh viên thứ 1
MSSV: 31211021362
Họ và tên: Hà Gia Hiến
Sinh viên thứ 2
MSSV: 31211027635
Họ và tên: Trần Hoàng Trung Đức

Giảng Viên: ThS. Viên Thanh Nhã

TP. Hồ Chí Minh, Ngày 11 tháng 11 năm 2022


lOMoARcPSD|9234052

MỤC LỤC
MỤC LỤC......................................................................................................................... 2
ĐỀ BÀI.............................................................................................................................. 3
LỜI GIẢI...........................................................................................................................4
BÀI 1.............................................................................................................................. 4


1. Phân Tích.................................................................................................................4
2. Thuật Tốn............................................................................................................... 4
BÀI 2.............................................................................................................................. 4
1. Phân Tích.................................................................................................................4
2. Thuật Tốn............................................................................................................... 4
BÀI 3.............................................................................................................................. 4
1. Phân Tích.................................................................................................................4
2. Thuật Tốn............................................................................................................... 4
BÀI 4.............................................................................................................................. 5
1. Phân Tích.................................................................................................................5
2. Thuật Tốn............................................................................................................... 5
BÀI 5.............................................................................................................................. 5
1. Phân Tích.................................................................................................................5
2. Thuật Tốn............................................................................................................... 5
BÀI 6.............................................................................................................................. 5
1. Phân Tích.................................................................................................................5
2. Thuật Tốn............................................................................................................... 5
ỨNG DỤNG...................................................................................................................... 6
PHỤ LỤC.......................................................................................................................... 7
TÀI LIỆU THAM KHẢO..................................................................................................8

2


lOMoARcPSD|9234052

LỜI NÓI ĐẦU
Dữ liệu – “dầu mỏ” của xã hội hiện đại. Khơng có nó, nghĩa là danh tính, cơng
việc, giải trí của chúng ta cũng ngừng tồn tại. Theo tạp chí Forbes năm 2018, trung
bình mỗi ngày lồi người sản xuất ra 2.5 tỷ tỷ byte dữ liệu! Nhìn vào con số khổng lồ

này thì khơng ai có thể phủ nhận rằng: dữ liệu đã trở thành một phần rất quan trọng
trong cuộc sống. Cũng như dầu mỏ, người thấy được giá trị của dữ liệu và biết cách
chiết xuất, sử dụng chúng sẽ gặt hái được nhiều thành quả.
Theo thời gian, tầm quan trọng của việc thu thập, đánh giá chất lượng và quản
lý dữ liệu đã thay đổi đáng kể. Khái niệm về dữ liệu đang liên tục tiến triển và biến
đổi trong giới kinh doanh, bởi nó khơng chỉ đem đến những chiều sâu mới cho các
doanh nghiệp nhưng cịn khiến việc điều hành khó khăn hơn.
Do đó, một hệ quản trị cơ sở dữ liệu là hết sức cần thiết cho doanh nghiệp trong
việc quản lý cơ sở dữ liệu và thu thập các thông tin hữu dụng. Việc sử dụng và áp
dụng một hệ thống dữ liệu sẽ giúp doanh nghiệp hoạt động suôn sẻ cũng như tiết kiệm
chi phí.
Sử dụng kiến thức đã học trong môn Cơ sở dữ liệu, chúng em xây dựng một
mơ hình cơ sở dữ liệu, cụ thể là để quản lý việc mua bán xe máy trong cửa hàng
Honda. Chương trình này được thực hiện trên SQL Server Management Studio
(SSMS) và biểu đồ được vẽ trên trang web app.diagrams.net.
Đặc biệt, chúng em xin cảm ơn thầy Viên Thanh Nhã đã hết sức nhiệt tình chỉ
dạy, hướng dẫn chúng em qua những buổi học hữu ích trên giảng đường.

3


lOMoARcPSD|9234052

Chương I – Khảo sát nghiệp vụ đề tài
Hệ thống bán xe máy bao gồm các chức năng sau:
1. Quản lý thông tin khách hàng
 Lưu lại thông tin của tất cả khách hàng. Thông tin này bao gồm: mã khách
hàng, họ và tên, email, số điện thoại.
 Thêm dữ liệu khi có khách hàng mới, có thể cập nhật hoặc xóa dữ liệu khi
cần thiết.

2. Quản lý thơng tin nhân viên
 Lưu lại thông tin của tất cả nhân viên. Thông tin này bao gồm: mã nhân
viên, họ và tên, ngày sinh (có thể dùng để tính tuổi), giới tính, số điện thoại.
 Ngồi ra, các nhân viên sẽ được một nhân viên khác quản lý (trừ nhân viên
có chức vụ cao nhất), do đó cũng cần thêm cột thông tin là mã người quản
lý.
 Thêm dữ liệu khi có nhân viên mới, có thể cập nhật hoặc xóa dữ liệu khi
cần thiết.
3. Quản lý sản phẩm
 Lưu lại thông tin của tất cả sản phẩm. Thông tin này bao gồm mã sản phẩm,
mã loại sản phẩm, tên, giá, số lượng tồn kho.
 Mỗi sản phẩm thuộc một trong bốn loại xe là xe số, xe tay ga, xe cơn tay và
xe mơ tơ.
 Thêm dữ liệu khi có sản phẩm mới, có thể cập nhật hoặc xóa dữ liệu khi cần
thiết.
4. Quản lý phụ tùng
 Lưu lại thông tin của tất cả phụ tùng. Thông tin này bao gồm mã phụ tùng,
tên, giá, số lượng tồn kho.
 Phụ tùng sẽ liên kết với sản phẩm qua một bảng trung gian. Bảng này xác
định phụ tùng nào tương thích với sản phẩm nào.
 Thêm dữ liệu khi có phụ tùng mới hay phụ tùng tương thích với sản phẩm
mới, có thể cập nhật hoặc xóa dữ liệu khi cần thiết.
5. Quản lý giao dịch
 Cửa hàng dựa vào hóa đơn để quản lý các giao dịch.
 Lưu lại thông tin của tất cả hóa đơn. Thơng tin này bao gồm mã hóa đơn,
mã nhân viên (lập hóa đơn), mã khách hàng (thanh tốn hóa đơn).
4


lOMoARcPSD|9234052


 Hóa đơn sẽ có hai bảng trung gian để liên kết nó với sản phẩm và phụ tùng.
Hai bảng này chính là chi tiết hóa đơn xe và chi tiết hóa đơn phụ tùng,
chúng cũng sẽ lưu lại số lượng mua. Việc sử dụng bảng trung gian cũng giải
quyết được trường hợp khách hàng mua sản phẩm nhưng không mua phụ
tùng và ngược lại.
 Thêm dữ liệu khi có hóa đơn (giao dịch) mới, có thể cập nhật hoặc xóa dữ
liệu khi cần thiết.

Chương II – Diễn tả các quy tắc mô tả, ràng buộc về bản số. Xác định
thuộc tính cho việc hình thành thực thể
1. Mơ tả dữ liệu và quy trình hệ thống.
 Mỗi nhân viên có một mã nhân viên khác nhau và cần lưu trữ các thông tin
cơ bản của mỗi nhân viên này với mẫu thơng tin như: họ và tên, giới tính,
ngày sinh, số điện thoại.
 Mỗi khách hàng có một mã khách hàng khác nhau và cần lưu trữ các thông
tin cơ bản của mỗi khách hàng này với mẫu thông tin như: họ và tên, số
điện thoại, email
 Mỗi sản phẩm có một mã sản phẩm khác nhau và cần lưu trữ các thông tin
cơ bản của mỗi sản phẩm này với mẫu thông tin như: tên sản phẩm, loại sản
phẩm, giá sản phẩm, số lượng tồn kho của sản phẩm
 Mỗi phụ tùng có mã phụ tùng khác nhau và cần lưu trữ các thông tin cơ bản
của mỗi phụ tùng: mã phụ tùng, tên phụ tùng, giá phụ tùng, số lượng tồn
kho
 Mỗi hóa đơn sẽ có mã hóa đơn khác nhau, lưu trữ thơng tin: mã hóa đơn,
mã nhân viên xuất hóa đơn và mã khách hàng mua.
2. Xác định thuộc tính cho việc hình thành thực thể.
 nhanvien(manv, hotennv, ngaysinh, gioitinh, sdtnv).
o manv: nchar(5).
o hotennv: nvarchar(50).

o ngaysinh: datetime
o gioitinh: nvarchar(5)
o sdtnv: char(10)
 khachhang(makh, hotenkh, email, sdtkh).
o makh: nchar(5).
o hotenkh: nvarchar(50).
o email: varchar(50)
o sdtkh: char(10)
5


lOMoARcPSD|9234052

 sanpham(masp, tensp, giasp, sl_tonkho).
o masp: nchar(5)
o tensp: nvarchar(50)
o giasp: float
o sl_tonkho: int
 phutung(mapt, tenpt, giapt, sl_tonkho).
o mapt: nchar(5)
o tenpt: nvarchar(50)
o giapt: float
o sl_tonkho: int
 hoadon(mahd, manv, makh, soluong, masp, mapt).
o mahd: nchar(5)
o makh: nchar(5)
o manv: nchar(5)

Chương III – Thiết kế hệ thống
1. Diễn tả các mối quan hệ giữa các thực thể:

a. Mối quan hệ 1-n
 nhanvien – nhanvien: 1 người quản lí có thể quản lí nhiều nhân viên, 1 nhân
viên chỉ được quản lí bởi 1 người quản lí.
 khachhang – hoadon: 1 khách hàng có nhiều hóa đơn, 1 hóa đơn chỉ thuộc về 1
khách hàng.
 nhanvien – hoadon: 1 nhân viên xuất nhiều hóa đơn, 1 hóa đơn chỉ được xuất
bởi 1 nhân viên.
 loaisp – sanpham: Sau khi xem xét để lưu trữ không bị trùng lắp thông tin, tách
loại sản phẩm thành 1 thực thể riêng: 1 loại sản phẩm có nhiều sản phẩm, 1 sản
phẩm chỉ thuộc 1 loại sản phẩm.

b. Mối quan hệ n-n
 sanpham – hoadon: 1 sản phẩm có thể có nhiều hóa đơn, 1 hóa đơn có thể có
nhiều sản phẩm.
 Tạo bảng trung gian: cthoadon_xe
 phutung – hoadon: 1 phụ tùng có thể có nhiều hóa đơn, 1 hóa đơn có thể có
nhiều phụ tùng.
6


lOMoARcPSD|9234052

 Tạo bảng trung gian: cthoadon_pt
 Sanpham – phutung: 1 sản phẩm có thể đi kèm với nhiều phụ tùng, 1 phụ tùng
có thể đi kèm với nhiều sản phẩm.
 Tạo bảng trung gian: sp_pt

2. Xây dựng mơ hình thực thể kết hợp (ERD)

3. Chuyển hóa mơ hình mức quan niệm sang mơ hình quan hệ

Dựa vào lược đồ ER, ta có thể chuyển sang mơ hình quan hệ với các quy tắc được quy
định chung.
Quy tắc chuyển đổi từ mơ hình ER sang mơ hình quan hệ:
 Đối với các thực thể yếu: Khóa của chủ( thực thể mạnh ) sẽ trở thành khóa
ngoại.
 Đối với các mối quan hệ 1-1: Thuộc tính khóa bên này sẽ làm khóa ngoại bên
kia hoặc ngược lại.
 Đối với các mối quan hệ 1-N: Thuộc tính khóa bên 1 làm khóa ngoại bên
nhiều.
 Đối với các mối quan hệ N-N: Chuyển thành quan hệ mới với khóa chính gồm
2 thuộc tính khóa của quan hệ trở lên. Thuộc tính mối kết hợp trở thành thuộc
tính của quan hệ mới nếu có.

7


lOMoARcPSD|9234052

Thực hiện chuyển đổi:
nhanvien(manv, hotennv, ngaysinh, manql, gioitinh, sdtnv)
khachhang(makh, hotenkh, email, sdtkh)
loaisp(maloai, tenloai)
sanpham(masp, maloai, tensp, giasp, sl_tonkho)
phutung(mapt, tenpt, giapt, sl_tonkho)
sp_pt(mapt, masp)
hoadon(mahd, makh, manv)
cthoadon_xe(mahd, masp, soluong)
cthoadon_pt(mahd, mapt, soluong)

Chương IV – Xây dựng phép toán đại số quan hệ

1. Phép chọn (σ)
 Chọn ra các nhân viên có giới tính nữ:
(nhanvien)
 Chọn ra các phụ tùng có giapt > 500k và sl_ton kho > 300
(phutung)
 Chọn ra hóa đơn có mã khách hàng = ‘KH003’ hoặc mã nhân viên = ‘NV005’
(hoadon)

2. Phép chiếu (π)
 Hiển thị thông tin của tất cả khách hàng (Thông tin hiển thị: hotenkh, sdtkh,
email)
(khachhang)
 Chọn các sản phẩm có sl_tonkho > 200 (Thơng tin hiển thị: tensp, giasp)
()
 Chọn hóa đơn phụ tùng có soluong > 5 (Thông tin hiển thị: mahd, makh)
()

3. Phép giao
 Chọn ra các nhân viên có manql = ‘NV010’ và gioitinh = N‘Nữ’
8


lOMoARcPSD|9234052

(
 Chọn ra các sản phẩm có maloai = ‘TYPE4’ và giasp > 200 triệu
(
 Chọn ra các phụ tùng có sl_tonkho > 300
(


4. Phép hội
 Chọn ra các phụ tùng có giá > 150 hoặc sl_tonkho > 300
(
 Chọn ra các sản phẩm có maloai = ‘TYPE1’ hoặc giasp < 40 triệu
(
 Chọn ra các khách hàng có hotenkh chứa chữ ‘L’ hoặc các khách hàng có 3 số
đầu của số điện thoại là ‘096’
(

5. Phép trừ
 Chọn ra các nhân viên đã có người quản lí
( - (()
 Chọn ra các phụ tùng chưa được bán
( - (()
 Chọn ra các sản phẩm không thuộc ‘TYPE1’
(sanpham) – (()

6. Phép Tích Decac
 Với mỗi phụ tùng, liệt kê số lượng đã bán:
B1: Tích Decac phutung và hoadon_pt
pt_hd(phutung hoadon_pt)
B2: Chọn ra những bộ thỏa
(
B3: Cộng số lượng theo từng phụ tùng
(kq)
9


lOMoARcPSD|9234052


 Với mỗi nhân viên, liệt kê số hóa đơn đã xuất:
B1: Tích Decac nhanvien và hoadon
(nhanvien hoadon)
B2: Chọn ra những bộ thỏa
(
B3: Đếm số hóa đơn theo từng nhân viên
(kq)
 Với mỗi khách hàng, liệt kê số lượng phụ tùng và số lượng sản phẩm đã mua:
B1: Tích Decac nhanvien và hoadon
(khachhang hoadon)
B2: Chọn ra những bộ thỏa
(
B3: Tích Decac kq1 và chitiethoadon_xe
(kq1 hoadon)
B4: Chọn ra những bộ thỏa chitiethoadon_xe.mahd = kq1.mahd
(
B5: Đổi tên cột soluong thành slsp
B6: Tích Decac kq2 và hoadon_pt
(kq1 hoadon_pt)
B7: Chọn ra những bộ thỏa hoadon_pt.mahd = kq2.mahd
(
B8: Đổi tên cột soluong thành slpt
B9: Hiển thị thông tin: makh, hotenkh, sdtkh, mahd, slsp, slpt
(

7. Phép kết nối
 Nối theta (theta join) là phép nối có điều kiện:
-

Ký hiệu:


- C gọi là điều kiện nối trên thuộc tính.
10


lOMoARcPSD|9234052

 Nối bằng (equi join) khi C là điều kiện so sánh bằng.
 Nối tự nhiên (natural join)
-

Ký hiệu: là quan hệ trên lược đồ gồm các phần tử t mà t chiếu trên R là
phần tử thuộc r còn chiếu của t lên S là phần tử củaa s.

-

Vậy

 Phép nối theta: Tìm các sản phẩm có giá lớn hơn sản phẩm có mã ‘SP002’
B1: Tìm sản phẩm có mã ‘SP002’
(
B2: Nối theta sp002 và sanpham , điều kiện : sanpham.giasp > sp002.giasp
 Phép nối bằng: Hiển thị thông tin sản phẩm(masp, tensp, tenloai, giasp)
B1: Tích Decac sanpham và loaisp
(sanpham loaisp)
B2: Chọn ra những bộ thỏa mãn
(
 Phép nối tự nhiên: Hiển thị thông tin các sản phẩm và số lượng đã bán
B1: Tích Decac sanpham va chitiethoadon_xe
chitiethoadon_xe)

B2: gom nhóm theo sản phẩm để tính số lượng đã bán của từng sản phẩm
()

8. Gom nhóm
 Được dùng để phân chia quan hệ thành nhiều nhóm dựa trên điều kiện gom
nhóm nào đó.
 Tính KPI nhân viên:
B1: Tích Decac nhanvien và HoaDonBanHang
( nhanvien HoaDonBanHang)
B2: Chọn ra những bộ thỏa nv.manv = hdb.MaNV
(
B3: Gom nhóm theo từng mã nhân viên
(kq)
 Đếm số lượng của mỗi loại hoa
11


lOMoARcPSD|9234052

(Hoa)
 Đếm số lượng hoa đã bán
B1: Tích Decac Hoa và ChiTietDonHang
( Hoa ChiTietDonHang)
B2: Chọn ra những bộ thỏa
(
B3: Gom nhóm theo từng mã hoa, tên hoa, mơ tả
(kq)

9. Gom nhóm có điều kiện
 Đếm số lượng hoa đã bán > 15

B1: Tích Decac Hoa và ChiTietDonHang
( Hoa ChiTietDonHang)
B2: Chọn ra những bộ thỏa
(
B3: Gom nhóm theo từng mã hoa, tên hoa
(kq))
 Đếm số loại hoa của hoa Hồng
Đếm số lượng của hoa hồng
(Hoa))
 Tìm tiền phải trả cho Nhà Cung Cấp và > 1.000.000
((kq))

Chương V – Lệnh mô tả dữ liệu
1. Tạo database
Lệnh sau tạo một cơ sở dữ liệu là QuanLiCuaHangHonda và chọn database này.
create database QuanLiCuaHangHonDa
go
use QuanLiCuaHangHonDa
go

2. Tạo các table
Các câu lệnh sau lần lượt tạo bảng nhanvien, khachhang, loaisp, sanpham, phutung,
sp_pt, hoadon, cthoadon_xe, cthoadon_pt.

12

Downloaded by Heo Út ()


lOMoARcPSD|9234052


Mỗi bảng sẽ có một cột làm primary key (khóa chính) và có những cột khác với kiểu
dữ liệu khác nhau, đồng thời sử dụng constraint là foreign key (khóa ngoại) để liên kết
các bảng liên quan với nhau.
create table nhanvien(
manv nchar(5) not null primary key,
hotennv nvarchar(50),
ngaysinh datetime,
manql nchar(5),
gioitinh nvarchar(5),
sdtnv char(10),
foreign key (manql) references nhanvien(manv)
)
create table khachhang(
makh nchar(5) not null primary key,
hotenkh nvarchar(50),
email varchar(50),
sdtkh char(10),
)

create table loaisp(
maloai nchar(5) not null primary key,
tenloai nvarchar(50),
)
create table sanpham(
masp nchar(5) not null primary key,
maloai nchar(5),
tensp nvarchar(50),
giasp float,
sl_tonkho int,

foreign key (maloai) references loaisp(maloai),
)
create table phutung(
mapt nchar(5) not null primary key,
tenpt nvarchar(50),
giapt float,
sl_tonkho int
)
create table sp_pt(
mapt nchar(5),
masp nchar(5),
primary key (mapt, masp),
foreign key (mapt) references phutung(mapt),
foreign key (masp) references sanpham(masp)
)

create table hoadon(
mahd nchar(5) not null primary key,
makh nchar(5),
manv nchar(5),
foreign key (makh) references khachhang(makh),
foreign key (manv) references nhanvien(manv)
)
create table cthoadon_xe(
mahd nchar(5),
masp nchar(5),
soluong int,

13


Downloaded by Heo Út ()


lOMoARcPSD|9234052

primary key(mahd, masp),
foreign key (masp) references sanpham(masp),
foreign key (mahd) references hoadon(mahd)
)
create table cthoadon_pt(
mahd nchar(5),
mapt nchar(5),
soluong int,
primary key(mahd, mapt),
foreign key (mapt) references phutung(mapt),
foreign key (mahd) references hoadon(mahd)
)

3. Thay đổi cấu trúc bảng
Các câu lệnh sau thay đổi cấu trúc bảng với việc thêm cột, thay đổi kiểu dữ liệu của
cột và sau đó là xóa cột.
Cụ thể, ta thêm cột quequan và diachi vào bảng nhanvien, thay đổi kiểu dữ liệu của
cột gioitinh là nvarchar(5) thành nvarchar(10), cho phép nhập dữ liệu vào cột này tối
đa 10 kí tự thay vì 5. Cuối cùng, ta xóa cột quequan và diachi.
alter table nhanvien
add quequan nvarchar(50)
alter table khachhang
add diachi nvarchar(50)
alter
alter

alter
alter

table nhanvien
column gioitinh nvarchar(10)
table khachhang
column gioitinh nvarchar(10)

alter table
drop column
alter table
drop column

khachhang
diachi
nhanvien
quequan

Chương VI – Lệnh thao tác dữ liệu
1. Thêm dữ liệu
Các câu lệnh sau thêm giá trị (dữ liệu) cho những cột tương ứng của bảng.
Lệnh set dateformat DMY cho phép ta nhập dữ liệu là thời gian cho cột ngaysinh của
bảng nhanvien với cấu trúc là DD/MM/YYYY.
set dateformat DMY
insert into nhanvien(manv,hotennv,sdtnv,ngaysinh,gioitinh)
values ('NV001', N'Hán Quang Ðạt','0789230203','09/01/1999','Nam')
insert into nhanvien(manv,hotennv,sdtnv,ngaysinh,gioitinh)
values ('NV002', N'Võ Trung Vũ','0789899003','23/04/1997','Nam')
insert into nhanvien(manv,hotennv,sdtnv,ngaysinh,gioitinh)
values ('NV003', N'Lã Phương Giang','0568160294','18/06/2000',N'Nữ')

insert into nhanvien(manv,hotennv,sdtnv,ngaysinh,gioitinh)
values ('NV004', N'Phú Ðông Dương','0392365498','05/09/1989','Nam')
insert into nhanvien(manv,hotennv,sdtnv,ngaysinh,gioitinh)
values ('NV005', N'Cai Quốc Huy','0917123909','21/08/1979','Nam')
insert into nhanvien(manv,hotennv,sdtnv,ngaysinh,gioitinh)
values ('NV006', N'Lê Thu Thuận','0769072386','30/10/1992',N'Nữ')
insert into nhanvien(manv,hotennv,sdtnv,ngaysinh,gioitinh)
values ('NV007', N'Võ Tuấn Khải','0989843039','03/11/1995','Nam')

14

Downloaded by Heo Út ()


lOMoARcPSD|9234052

insert
values
insert
values
insert
values
insert
values
go

into nhanvien(manv,hotennv,sdtnv,ngaysinh,gioitinh)
('NV008', N'Dã Lan Anh','0707563991','29/05/1982',N'Nữ')
into nhanvien(manv,hotennv,sdtnv,ngaysinh,gioitinh)
('NV009', N'Từ Việt Duy','0712341009','23/04/1986','Nam')

into nhanvien(manv,hotennv,sdtnv,ngaysinh,gioitinh)
('NV010', N'Hà Đông Quân','0931325514','14/12/1990','Nam')
into nhanvien(manv,hotennv,sdtnv,ngaysinh,gioitinh)
('NV011', N'Tô Phúc Thịnh','0931321214','14/12/1990','Nam')

insert
values
insert
values
insert
values
insert
values
insert
values
insert
values
insert
values
insert
values
insert
values
insert
values
insert
values
insert
values
insert

values
go

into khachhang(makh, hotenkh, email, sdtkh)
('KH001', N'Nguyễn Viễn Đông','', '0931325514')
into khachhang(makh, hotenkh, email, sdtkh)
('KH002', N'Phạm Minh Chiếế
n','', '0931736423')
into khachhang(makh, hotenkh, email, sdtkh)
('KH003', N'Hà Tuấn Long','', '0962856274')
into khachhang(makh, hotenkh, email, sdtkh)
('KH004', N'Đỗ Ngọc Quế','', '0962385624')
into khachhang(makh, hotenkh, email, sdtkh)
('KH005', N'Lê Thiên Nga','', '0963557265')
into khachhang(makh, hotenkh, email, sdtkh)
('KH006', N'Bùi Vy Linh','', '0982657264')
into khachhang(makh, hotenkh, email, sdtkh)
('KH007', N'Hồ Việt Phương','', '0938536689')
into khachhang(makh, hotenkh, email, sdtkh)
('KH008', N'Ngô Tùng Anh','', '0937120563')
into khachhang(makh, hotenkh, email, sdtkh)
('KH009', N'Châu Nguyệt Minh','', '0936573657')
into khachhang(makh, hotenkh, email, sdtkh)
('KH010', N'Tống Minh Huyền','', '0935123298')
into khachhang(makh, hotenkh, email, sdtkh)
('KH011', N'Tống Thanh Lam','', '0935123237')
into khachhang(makh, hotenkh, email, sdtkh)
('KH012', N'Nguyễn Minh Nghi','', '0935863285')
into khachhang(makh, hotenkh, email, sdtkh)
('KH013', N'Hà Hồng Tơn','', '0932423383')


insert
values
insert
values
insert
values
insert
values
insert
values
insert
values
insert
values
insert
values
insert
values
insert
values
insert
values
insert
values
insert
values
insert
values


into hoadon(mahd, makh, manv)
('HD001', 'KH001','NV002')
into hoadon(mahd, makh, manv)
('HD002', 'KH002','NV004')
into hoadon(mahd, makh, manv)
('HD003', 'KH003','NV001')
into hoadon(mahd, makh, manv)
('HD004', 'KH004','NV001')
into hoadon(mahd, makh, manv)
('HD005', 'KH005','NV005')
into hoadon(mahd, makh, manv)
('HD006', 'KH006','NV003')
into hoadon(mahd, makh, manv)
('HD007', 'KH007','NV006')
into hoadon(mahd, makh, manv)
('HD008', 'KH008','NV004')
into hoadon(mahd, makh, manv)
('HD009', 'KH009','NV001')
into hoadon(mahd, makh, manv)
('HD010', 'KH010','NV001')
into hoadon(mahd, makh, manv)
('HD011', 'KH011','NV006')
into hoadon(mahd, makh, manv)
('HD012', 'KH012','NV007')
into hoadon(mahd, makh, manv)
('HD013', 'KH013','NV002')
into hoadon(mahd, makh, manv)
('HD014', 'KH003','NV008')

15


Downloaded by Heo Út ()


lOMoARcPSD|9234052

insert
values
insert
values
insert
values
insert
values
insert
values
insert
values
go

into hoadon(mahd, makh, manv)
('HD015', 'KH003','NV009')
into hoadon(mahd, makh, manv)
('HD016', 'KH003','NV008')
into hoadon(mahd, makh, manv)
('HD017', 'KH002','NV003')
into hoadon(mahd, makh, manv)
('HD018', 'KH004','NV003')
into hoadon(mahd, makh, manv)
('HD019', 'KH004','NV005')

into hoadon(mahd, makh, manv)
('HD020', 'KH005','NV005')

insert
values
insert
values
insert
values
insert
values
go

into loaisp(maloai, tenloai)
('TYPE1', N'Xe Số')
into loaisp(maloai, tenloai)
('TYPE2', N'Xe Tay Ga')
into loaisp(maloai, tenloai)
('TYPE3', N'Xe Côn Tay')
into loaisp(maloai, tenloai)
('TYPE4', N'Xe Mô Tô')

insert
values
insert
values
insert
values
insert
values

insert
values
insert
values
insert
values
insert
values
insert
values
go

into sanpham(masp,
('SP001', 'TYPE1',
into sanpham(masp,
('SP002', 'TYPE1',
into sanpham(masp,
('SP003', 'TYPE2',
into sanpham(masp,
('SP004', 'TYPE2',
into sanpham(masp,
('SP005', 'TYPE2',
into sanpham(masp,
('SP006', 'TYPE3',
into sanpham(masp,
('SP007', 'TYPE4',
into sanpham(masp,
('SP008', 'TYPE4',
into sanpham(masp,
('SP009', 'TYPE4',


insert
values
insert
values
insert
values
insert
values
insert
values
insert
values
insert
values
go

into phutung(mapt, tenpt, giapt, sl_tonkho)
('PT001', N'Bugi', 90, 500)
into phutung(mapt, tenpt, giapt, sl_tonkho)
('PT002', N'Ắc quy', 300, 200)
into phutung(mapt, tenpt, giapt, sl_tonkho)
('PT003', N'Tấm lọc gió', 150, 100)
into phutung(mapt, tenpt, giapt, sl_tonkho)
('PT004', N'Bộ nhơng, xích', 170, 100)
into phutung(mapt, tenpt, giapt, sl_tonkho)
('PT005', N'Lốp trước', 450, 300)
into phutung(mapt, tenpt, giapt, sl_tonkho)
('PT006', N'Lốp sau', 550, 300)
into phutung(mapt, tenpt, giapt, sl_tonkho)

('PT007', N'Thắng Đĩa', 6000, 500)

insert
insert
insert
insert
insert

into
into
into
into
into

sp_pt(mapt,
sp_pt(mapt,
sp_pt(mapt,
sp_pt(mapt,
sp_pt(mapt,

maloai, tensp, giasp, sl_tonkho)
'Wave Alpha 110cc', 17900, 40)
maloai, tensp, giasp, sl_tonkho)
'Wave RSX FI 110', 21700, 30)
maloai, tensp, giasp, sl_tonkho)
'Vision 2021', 30200, 45)
maloai, tensp, giasp, sl_tonkho)
'Air Blade 125/160', 41300, 60)
maloai, tensp, giasp, sl_tonkho)
'SH350i', 149000, 15)

maloai, tensp, giasp, sl_tonkho)
'CBR150R', 71300, 20)
maloai, tensp, giasp, sl_tonkho)
'CB1000R 2021', 510000, 5)
maloai, tensp, giasp, sl_tonkho)
'Africa Twin 2021', 590500, 2)
maloai, tensp, giasp, sl_tonkho)
'Africa Twin 2018', 490500, 5)

masp)
masp)
masp)
masp)
masp)

values
values
values
values
values

('PT001',
('PT001',
('PT001',
('PT001',
('PT001',

'SP001')
'SP002')
'SP003')

'SP004')
'SP005')

16

Downloaded by Heo Út ()


lOMoARcPSD|9234052

insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert

insert
insert
insert
insert
go

into
into
into
into
into
into
into
into
into
into
into
into
into
into
into
into
into
into
into
into
into
into
into
into


sp_pt(mapt,
sp_pt(mapt,
sp_pt(mapt,
sp_pt(mapt,
sp_pt(mapt,
sp_pt(mapt,
sp_pt(mapt,
sp_pt(mapt,
sp_pt(mapt,
sp_pt(mapt,
sp_pt(mapt,
sp_pt(mapt,
sp_pt(mapt,
sp_pt(mapt,
sp_pt(mapt,
sp_pt(mapt,
sp_pt(mapt,
sp_pt(mapt,
sp_pt(mapt,
sp_pt(mapt,
sp_pt(mapt,
sp_pt(mapt,
sp_pt(mapt,
sp_pt(mapt,

masp)
masp)
masp)
masp)

masp)
masp)
masp)
masp)
masp)
masp)
masp)
masp)
masp)
masp)
masp)
masp)
masp)
masp)
masp)
masp)
masp)
masp)
masp)
masp)

values
values
values
values
values
values
values
values
values

values
values
values
values
values
values
values
values
values
values
values
values
values
values
values

('PT002',
('PT002',
('PT002',
('PT002',
('PT003',
('PT003',
('PT004',
('PT004',
('PT005',
('PT005',
('PT005',
('PT005',
('PT005',
('PT005',

('PT005',
('PT005',
('PT006',
('PT006',
('PT006',
('PT006',
('PT006',
('PT006',
('PT006',
('PT006',

'SP003')
'SP004')
'SP005')
'SP006')
'SP007')
'SP008')
'SP001')
'SP002')
'SP001')
'SP002')
'SP003')
'SP004')
'SP005')
'SP006')
'SP007')
'SP008')
'SP001')
'SP002')
'SP003')

'SP004')
'SP005')
'SP006')
'SP007')
'SP008')

insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
go

into
into
into
into
into

into
into
into
into
into
into
into
into
into
into
into
into

cthoadon_xe(mahd,
cthoadon_xe(mahd,
cthoadon_xe(mahd,
cthoadon_xe(mahd,
cthoadon_xe(mahd,
cthoadon_xe(mahd,
cthoadon_xe(mahd,
cthoadon_xe(mahd,
cthoadon_xe(mahd,
cthoadon_xe(mahd,
cthoadon_xe(mahd,
cthoadon_xe(mahd,
cthoadon_xe(mahd,
cthoadon_xe(mahd,
cthoadon_xe(mahd,
cthoadon_xe(mahd,
cthoadon_xe(mahd,


masp,
masp,
masp,
masp,
masp,
masp,
masp,
masp,
masp,
masp,
masp,
masp,
masp,
masp,
masp,
masp,
masp,

soluong)
soluong)
soluong)
soluong)
soluong)
soluong)
soluong)
soluong)
soluong)
soluong)
soluong)

soluong)
soluong)
soluong)
soluong)
soluong)
soluong)

values
values
values
values
values
values
values
values
values
values
values
values
values
values
values
values
values

('HD001','SP001',
('HD002','SP002',
('HD003','SP003',
('HD004','SP004',
('HD005','SP005',

('HD006','SP006',
('HD007','SP007',
('HD008','SP008',
('HD009','SP001',
('HD010','SP002',
('HD011','SP003',
('HD012','SP004',
('HD013','SP002',
('HD017','SP005',
('HD018','SP006',
('HD019','SP004',
('HD019','SP005',

3)
1)
2)
5)
1)
2)
1)
1)
4)
2)
10)
1)
3)
1)
2)
2)
3)


insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
insert
go

into
into
into
into
into
into
into
into
into
into
into
into
into


cthoadon_pt(mahd,
cthoadon_pt(mahd,
cthoadon_pt(mahd,
cthoadon_pt(mahd,
cthoadon_pt(mahd,
cthoadon_pt(mahd,
cthoadon_pt(mahd,
cthoadon_pt(mahd,
cthoadon_pt(mahd,
cthoadon_pt(mahd,
cthoadon_pt(mahd,
cthoadon_pt(mahd,
cthoadon_pt(mahd,

mapt,
mapt,
mapt,
mapt,
mapt,
mapt,
mapt,
mapt,
mapt,
mapt,
mapt,
mapt,
mapt,

soluong)
soluong)

soluong)
soluong)
soluong)
soluong)
soluong)
soluong)
soluong)
soluong)
soluong)
soluong)
soluong)

values
values
values
values
values
values
values
values
values
values
values
values
values

('HD003','PT001',
('HD004','PT001',
('HD004','PT005',
('HD011','PT002',

('HD012','PT004',
('HD012','PT005',
('HD013','PT005',
('HD013','PT006',
('HD014','PT005',
('HD014','PT003',
('HD015','PT003',
('HD016','PT005',
('HD020','PT003',

1)
5)
1)
1)
2)
2)
1)
1)
2)
5)
10)
5)
4)

2. Update dữ liệu

17

Downloaded by Heo Út ()



lOMoARcPSD|9234052

Các lệnh sau cập nhật dữ liệu mới cho cột đã có sẵn, cụ thể là cập nhật người quản lý
cho các nhân viên, trong đó nhân viên thứ 10 (NV010) có chức vụ lớn nhất nên khơng
có người quản lý.
update
update
update
update
update

nhanvien
nhanvien
nhanvien
nhanvien
nhanvien

set
set
set
set
set

manql='NV007'
manql='NV007'
manql='NV008'
manql='NV009'
manql='NV009'


where
where
where
where
where

manv='NV001'
manv='NV002'
manv='NV003'
manv='NV004'
manv='NV005'

update
update
update
update
update
go

nhanvien
nhanvien
nhanvien
nhanvien
nhanvien

set
set
set
set
set


manql='NV010'
manql='NV010'
manql='NV010'
manql='NV010'
manql= NULL

where
where
where
where
where

manv='NV006'
manv='NV007'
manv='NV008'
manv='NV009'
manv='NV010'

3. Xóa dữ liệu
Lệnh sau dùng để xóa giá trị trong một cột.
delete from nhanvien where manv = '23201'
delete from phutung where mapt = 'PT007'

Chương VII – Lệnh truy vấn dữ liệu
1. Truy vấn một bảng
--1
/*
Chọn cột tensp và giasp từ bảng sanpham
*/

select tensp, giasp from sanpham
--2
/*
Chọn cột hotennv và sdtnv từ bảng nhanvien
*/
select hotennv, sdtnv
from nhanvien
--3
/*
Chọn cột tenloai từ bảng loaisp
*/
select tenloai from loaisp

2. Truy vấn nhiều bảng (sử dụng phép kết)
--1
/*
Chọn các sản phẩm đã bán (nghĩa là có trong hóa đơn)
*/
select distinct sp.tensp, sp.giasp
from sanpham sp, cthoadon_xe cthd
where sp.masp = cthd.masp
--2
/*
Chọn các sản phẩm là xe số
Hiển thị thông tin: masp, dong, tenxe, gia

18

Downloaded by Heo Út ()



lOMoARcPSD|9234052

*/
select sp.tensp, sp.giasp
from sanpham sp, loaisp l
where sp.maloai = l.maloai and l.tenloai = N'Xe Số'
--3
/*
Thông tin của những phụ tùng đã bán (đã xuất hóa đơn)
*/
select distinct pt.tenpt, pt.giapt
from phutung pt, cthoadon_pt hdpt
where pt.mapt = hdpt.mapt
select pt.tenpt, pt.giapt, mahd
from phutung pt
inner join cthoadon_pt hd
on hd.mapt=pt.mapt

3. Truy vấn có điều kiện (and, or, like, between, …)
--1
/*
Chọn tất cả nhân viên nữ
Hiển thị thông tin: manv, hotennv, ngaysinh, mangql, gioitinh, sdtnv
*/
select * from nhanvien
where gioitinh like N'Nữ'
--2
/*
Chọn các hóa đơn xe có số lượng sản phẩm nhiều hơn 3

*/
select mahd, soluong
from cthoadon_xe
where soluong > 3
--3
/*
Chọn nhân viên có tuổi trong khoảng từ 25 đến 40 tuổi
Hiển thị thông tin: manv, hotennv, tuoi, gioitinh, sdtnv
*/
select manv, hotennv, year(GETDATE()) - year(ngaysinh) as 'Tuổi', gioitinh, sdtnv
from nhanvien
where year(GETDATE()) - year(ngaysinh) between 25 and 40
order by year(GETDATE()) - year(ngaysinh) asc

4. Truy vấn tính tốn
--1
/*
Chọn nhân viên có tuổi lớn nhất
Hiển thị thơng tin: manv, hotennv, tuoi, gioitinh, sdtnv
*/
select top 1 manv, hotennv, year(GETDATE()) - year(ngaysinh) as 'Tuổi', gioitinh,
sdtnv
from nhanvien
order by year(GETDATE()) - year(ngaysinh) desc
--2
/*
Tính tổng doanh thu bán xe
*/
select sum(cthd.soluong * sp.giasp ) as N'Tổng Doanh Thu bán xe'


19

Downloaded by Heo Út ()


lOMoARcPSD|9234052

from cthoadon_xe cthd, sanpham sp
where cthd.masp = sp.masp
--3
/*
Tổng doanh thu bán phụ tùng
*/
select sum(hdpt.soluong * pt.giapt ) as N'Tổng Doanh Thu bán phụ tùng'
from cthoadon_pt hdpt, phutung pt
where hdpt.mapt = pt.mapt

5. Truy vấn có gom nhóm (group by)
--1
/*
Đếm số nhân viên nam và nữ
*/
select gioitinh,count(manv) as soluongnv
from nhanvien nv
group by gioitinh
--2
/*
Những nhân viên đã xuấế
t hóa đơn
Thơng tin hiển thị : manv, hontennv, sohoadondaxuat

*/
select nv.manv, nv.hotennv, count(hd.manv) as N'Số hóa đơn đã xuất'
from hoadon hd, nhanvien nv
where hd.manv = nv.manv
group by nv.manv, nv.hotennv
--3
/*
Đếm lượt mua hàng của các khách hàng
*/
select kh.makh, kh.hotenkh, count(hd.makh) as N'Lượt mua'
from khachhang kh, hoadon hd
where kh.makh = hd.makh
group by kh.makh, kh.hotenkh

6. Truy vấn gom nhóm có điều kiện (having)
--1
/*
Đếm các sản phẩm trong từng loại sản phẩm có số sản phẩm lớn hơn 1
*/
select sp.maloai, l.tenloai, count(sp.masp) as N'Số sản phẩm'
from sanpham sp
full join loaisp l
on l.maloai = sp.maloai
group by sp.maloai, l.tenloai
having count(sp.masp) > 1
--2
/*
đếm số nhân viên nữ có trong cửa hàng
*/
select gioitinh, count(manv) as 'Số lượng nhân viên' from nhanvien

group by gioitinh
having gioitinh = N'Nữ'
--3
/*

20

Downloaded by Heo Út ()


lOMoARcPSD|9234052

Các phụ tùng có thếểđi kèm với ít nhấế
t 3 sả
ển phấể
m khác nhau
*/
select pt.mapt, pt.tenpt, count(sppt.masp) as 'Số sp'
from phutung pt
full join sp_pt sppt
on pt.mapt = sppt.mapt
group by pt.mapt, pt.tenpt
having count(masp) > 3

7. Truy vấn có sử dụng phép giao, hội, trừ
--1 Phép giao
/*
Chọn ra các khách hàng đã mua hàng nhiều hơn 3 lần
*/
select *

from khachhang
where makh in (select makh from khachhang
intersect
select makh from hoadon
group by makh
having count(makh) > 3)
/*
Chọn ra các phụ tùng có số lượng tồn kho lớn hơn 100
*/
select * from phutung
intersect
select * from phutung
where sl_tonkho > 300
/*
Chọn ra các sản phẩm có mã loại 'TYPE 4'
*/
select * from sanpham
intersect
select * from sanpham
where maloai = 'TYPE4'
--2 Phép hội
/*
Chọn ra các phụ tùng có sl_tonkho > 300 hoặc giapt > 150
*/
select * from phutung
where sl_tonkho > 300
union
select * from phutung
where giapt > 150
/*

Chọn ra các sản phẩm có maloai = 'TYPE1' hoặc giasp < 40 triệu
*/
select * from sanpham where maloai = 'TYPE1'
union
select * from sanpham where giasp <= 40000
/*
Hiển thị các khách hàng có chữ 'L' trong tên và sdt có 3 số đầu là '096'
*/
select * from khachhang where hotenkh like '%L%'
union
select * from khachhang where sdtkh like '096%'
--3 Phép trừ

21

Downloaded by Heo Út ()


lOMoARcPSD|9234052

/*
Hiển thị thơng tin của những nhân viên có người quản lí
*/
select * from nhanvien
except
select * from nhanvien where manql is null
/*
Hiển thị thông tin những sản phẩm chưa bán đc
*/
select sp.masp, sp.maloai ,sp.giasp, sl_tonkho

from sanpham sp,
(select masp
from sanpham
except
select masp
from cthoadon_xe) as temp
where temp.masp = sp.masp
/*
Hiển thị thông tin những phụ tùng đã bán
*/
select mapt, tenpt, giapt, sl_tonkho
from phutung
where mapt not in
(select mapt from phutung
except
select mapt from cthoadon_pt)

/*
Những sả
ển phấể
m có maloai != 'TYPE1'
*/
select * from sanpham
except
SELECT * FROM sanpham
where maloai = 'TYPE1'

8. Truy vấn con
--1
/*

Chọn các phụ tùng có thể thay thế cho xe Wave Alpha 110cc
Hiển thị thông tin: tenphutung, gia
*/
select pt.tenpt, pt.giapt
from phutung pt ,
(select sppt.mapt
from sanpham sp, sp_pt sppt
where sp.masp = sppt.masp and sp.tensp like 'Wave Alpha 110cc') as temp
where pt.mapt = temp.mapt
--2
/*
Tính doanh thu từng loại phụ tùng
*/
select pt.mapt, pt.tenpt, sum(hdpt.soluong*pt.giapt) as doanhthu
from phutung pt
full join cthoadon_pt hdpt
on pt.mapt = hdpt.mapt
group by pt.mapt, pt.tenpt
--3
/*
Tìm sản phẩm best seller của cửa hàng

22

Downloaded by Heo Út ()


lOMoARcPSD|9234052

*/

select sp.masp, sp.tensp, temp.soluong
from sanpham sp,
(select top 1 masp, soluong
from cthoadon_xe
order by soluong desc) as temp
where sp.masp = temp.masp

9. Truy vấn chéo
--1
/*
Số lượng sản phẩm mà các khách hàng đã mua
*/
select hotenkh,
[1], [2], [3], [4], [5], [10]
from
(select kh.makh, kh.hotenkh, temp.soluong
from khachhang kh,
(select hd.makh, cthd.soluong
from hoadon hd, cthoadon_xe cthd
where hd.mahd = cthd.mahd) as temp
where kh.makh = temp.makh) as temp
PIVOT
(
count(soluong)
FOR soluong IN ([1], [2], [3], [4], [5], [10])
) AS BangChuyen;
--2
/*
So sánh doanh thu của từng loại sản phẩm
*/

select tensp,
[Xe Số], [Xe Tay Ga], [Xe Côn Tay], [Xe Mô Tô]
from
(select l.tenloai, temp.tensp, temp.doanhthu
from loaisp l,
(select sp.maloai, sp.tensp, cthd.soluong * sp.giasp as doanhthu
from sanpham sp, cthoadon_xe cthd
where sp.masp = cthd.masp) as temp
where l.maloai = temp.maloai) as temp
PIVOT
(
sum(doanhthu)
FOR tenloai IN ([Xe Số], [Xe Tay Ga], [Xe Côn Tay], [Xe Mô Tô])
) AS BangChuyen;
--3
/*
Số lượng sản phẩm mà nhân viên bán được
*/
select hotennv,
[1], [2], [3], [4], [5], [10]
from
(select temp.hotennv, cthd.soluong
from cthoadon_xe cthd,
(select nv.hotennv, hd.mahd
from nhanvien nv, hoadon hd
where nv.manv = hd.manv) as temp
where cthd.mahd = temp.mahd) as temp
PIVOT
(
count(soluong)

FOR soluong IN ([1], [2], [3], [4], [5], [10])

23

Downloaded by Heo Út ()


lOMoARcPSD|9234052

) AS BangChuyen;

Chương VIII – Viết Stored Procedure và Function
Các hàm và thủ tục có thể xử lí thay cho các câu truy vấn được lặp đi lặp lại trong q
trình người phân tích dữ liệu thực hiện cơng việc của họ trên cơ sở dữ liệu.
1. Stored Procedure
a. Mục tiêu của việc sử dụng thủ tục:
Được đặt tên và được xử lý như một khối lệnh thống nhất (chứ không thực hiện
rời rạc từng câu lệnh). Giúp thực hiện một số cơng việc thường xun.
b. Các loại thủ tục:
Có 2 thủ tục chính đó là thủ tục hệ thống (System stored procedures) và thủ tục
do người sử dụng tự viết (User stored procedures).
c. Lợi ích của việc sử dụng thủ tục
 Tăng tốc độ thực hiện.
 Tốc độ truy cập dữ liệu nhanh hơn.
 Chương trình được modul hóa.
 Nhất quán.
 Nâng cao khả năng bảo mật dữ liệu.
d. Viết thủ tục trong SQL:
--1
/*

Thủ tục nhập thông tin nhân viên
*/
create procedure insert_nv(@manv char(5), @hotennv nvarchar(50), @ngaysinh datetime,
@manql char(5), @gioitinh nvarchar(5), @sdtnv char(10))
as
begin
if(exists(select manv from nhanvien where manv = @manv))
begin
print N' Mã nhân viên : '+rtrim(@manv)+ N' đã tồn tại trong bảng nhân
viên'
end
else
begin
insert into nhanvien(manv ,hotennv , ngaysinh , manql , gioitinh ,
sdtnv)
values(@manv ,@hotennv , @ngaysinh , @manql , @gioitinh , @sdtnv );
end
end
set dateformat DMY
exec insert_nv '23201', N'Hà Gia Hiến', '26/03/2000', null, 'Nam', '0924944269'
exec insert_nv '23201', N'Hà Gia Huy', '26/05/2002', null, 'Nam', '0924944269'
--2
/*

24

Downloaded by Heo Út ()


lOMoARcPSD|9234052


Thủ tục xóa nhân viên
*/
create procedure delete_nv(@manv char(5))
as
begin
if(not exists(select manv from nhanvien where manv = @manv))
begin
print N' Mã nhân viên : '+rtrim(@manv)+ N' không tồn tại trong bảng nhân
viên'
end
else
begin
delete from nhanvien
where manv = @manv
print N'Xóa thành cơng'
end
end
set dateformat DMY
exec delete_nv '23201'
exec delete_nv '23201'
--3
/*
Thủ tục cập nhật thông tin nhân viên
*/
create procedure update_nv(@manv char(5), @hotennv nvarchar(50), @ngaysinh datetime,
@manql char(5), @gioitinh nvarchar(5), @sdtnv char(10))
as
begin
if(not exists(select manv from nhanvien where manv = @manv))

begin
print N' Mã nhân viên : '+rtrim(@manv)+ N' không tồn tại trong bảng nhân
viên'
end
else
begin
update nhanvien
set manv = @manv, hotennv = @hotennv, ngaysinh = @ngaysinh, manql =
@manql, gioitinh = @gioitinh
where manv = @manv
print N'Cập nhật thành công';
end
end
set dateformat DMY
exec update_nv '23201', N'Hà Gia Hiến', '26/03/2000', null, 'Nam', '0924944269'
exec update_nv 'NV001', N'Hà Gia Hiến', '26/03/2000', null, 'Nam', '0924944269'
--4
/*
Thủ tục nhập thông tin khách hàng
*/
create procedure insertkh(@makh char(10), @hotenkh nvarchar(50), @email varchar(50),
@sdtkh char(10))
as
begin
if(exists(select makh from khachhang where makh = @makh))
begin
print N' Mã khách hàng : '+rtrim(@makh)+ N' đã tồn tại trong bảng khách
hàng'
end
else

begin

25

Downloaded by Heo Út ()


×