Kết quả xóa dữ liệu

Một phần của tài liệu QUẢN LÝ BÁN HÀNG MỸ PHẨM CỦA CỬA HÀNG BEAUTY GARDEN (Trang 52)

CHƯƠNG 4: ỨNG DỤNG 4.1 Synonym

4.1.1 Cú pháp synonym

Tạo

CREATE Synonym synonym_name FOR schema.object_name

Xóa

Drop synonym synonym_name

4.1.2 Áp dụng

Ví dụ 1: Tạo tên đồng nghĩa có tên bất kỳ truy xuất vào bảng Nhanvien do người dùng dbo làm chủ sỡ hữu

53 | P a g e --Thực thi select* from nv  Kết quả Hình 4. 1: Kết quả thực thi

-- Xóa tên đồng nghĩa

dropsynonym nv

Kết quả

Hình 4. 2: Kết quả xóa synonym

Ví dụ 2: Tạo tên đồng nghĩa có tên bất kỳ truy xuất vào bảng Khachhang do người dùng dbo làm chủ sỡ hữu

createsynonym kh for dbo.Khachhang

--Thực thi

select *

from kh

54 | P a g e

Hình 4. 3: Kết quả thực thi

--Xóa

dropsynonym kh

Kết quả

Hình 4. 4: Kết quả xóa synonym4.2 Index 4.2 Index

4.2.1 Cú pháp Index

CREATE clustered INDEX index_name ON Table_name ( column )

4.2.2 Áp dụng

Ví dụ 1:Tạo chỉ mục có tên INDEX_Sanpham trên cột MaSP của bảng Sanpham

CREATEindex INDEX_Sanpham on Sanpham(MaSP)

--Thực thi

55 | P a g e

From Sanpham

Where MaSP='SP01'

Kết quả

Hình 4. 5: Kết quả thực thi

Ví dụ 2: Tạo chỉ mục có tên bất kỳ trên cột Diachi của bảng Khachhang

CREATEindex INDEX_Khachhang on Khachhang(Diachi)

--Thực thi

select *

from Khachhang

with (index( INDEX_Khachhang))

where Diachi= N'41 Xóm củi'

Kết quả:

Hình 4. 6: Kết quả thực thi

4.3 View

4.3.1 Cú pháp view

Create view view_Ten as Select cột 1, cột 2 … From tên bảng

56 | P a g e

Where <điều kiện>;

4.3.2 Áp dụng

Ví dụ 1:Tạo vw DanhSachNhanVienNam với các thông tin gồm: mã nhân viên, họ tên nhân viên, ngày sinh của các nhân viên nữ

CREATEVIEW VW_DSNVNam as SELECT MANV,HoTen,NGAYSINH FROM Nhanvien where GioiTinh=0 --Thực thi select* from VW_DSNVNam  Kết quả: Hình 4. 7: Kết quả thực thi

Ví dụ 2: Tạo view vwNhanVien với các thông tin: mã nhân viên, họ, tên nhân viên, tuổi nhân viên có độ tuổi từ 25 đến 30 tuổi

createview vw_Nhanvien as

select MaNV, HoTen, NgaySinh, year(getdate())- year(Ngaysinh) as Tuoi

from Nhanvien

whereyear(getdate())- year(Ngaysinh) between 25 and 30

57 | P a g e

select *

from vw_Nhanvien

Kết quả:

Hình 4. 8: Kết quả thực thi

Ví dụ 3:Tạo view vwDsXuathang2020 với các thông tin: Số phiếu xuất, mã nhân viên, của các phiếu xuất ngày bán được lập năm 2020

createview vw_DSXuatHang2020 as select px.SoPX,MaNV,Ngayban

from Phieuxuat px

whereyear(NgayBan) =2020

groupby px.SoPX,MaNV,Ngayban --Thực thi seLECT * from vw_DSXuatHang2020  Kết quả: Hình 4. 9: Kết quả thực thi

Ví dụ 4: Tạo view vwTriGiaHoaDonvới các thơng tin: Số phiếu nhập, mã sản phẩm, Tổng trị giá hóa đơn(giá bán x số lượng)của một sản phẩm

58 | P a g e

createview VW_TGHDon as

select Soluong,Gianhap,sum(Soluong*Gianhap) as TriGiaHD,SoPN,MaSP

from CTPhieunhap where MaSP=N'SP01' groupby Soluong,Gianhap,SoPN,MaSP --Thực thi select * from VW_TGHDon  Kết quả: Hình 4. 10: Kết quả thực thi 4.4 Store Proceduce 4.4.1 Cú pháp Store Proceduce Create Proc<sp_name> [<cácthamsốhìnhthức>]

[With Recompile | Encryption | Recompile, Encryption] As

[Declare biếncụcbộ] [Begin]

<Cácphátbiểu> [End]

59 | P a g e  Recompile: Biên dịch lại thủ tục mỗi lần thủ tục được thực thi

 Execute As Clause: Thực thi gọi các thủ tục hoặc hàm khác

 For Replication: Nhân bản dữ liệu. Khi dùng với từ khóa này khơng được khai báo các tham số

4.4.2 Áp dụng

Ví dụ 1: Xem thơng tin khách hàng với mã khách hàng do người dùng nhập

create proc pr_TTKhachHang_MAKhH(@MaKH nvarchar (6))

as begin

if exists(select MaKH from Khachhang where MaKH=@MaKH)

begin

select MaKH,TenKH,DiaChi,NgaySinh,SoDT

from Khachhang

where MaKH=@MaKH

groupby MaKH,TenKH,DiaChi,NgaySinh,SoDT

print 'Thơng tin khách hàng có mã'+@MaKH+'Là:'

end else

print N'Mã khách hàng này không tồn tại'

end

--Thực thi

exec pr_TTKhachHang_MaKhH'KH02'

Kết quả:

60 | P a g e

--Thực thi

exec pr_TTKhachHang_MAKhH'KH010'

Kết quả:

Hình 4. 12: Kết quả thực thi

Ví dụ 2: Xem đơn giá của một sản phẩm với mã sản phẩm do người dùng nhập

createproc pr_dongia_MaSP(@MaSP nchar(6))

as begin

if exists( select MaSP from Sanpham where MaSP= @MaSP)

begin

select MaSP, TenSP, MaloaiSP,Donvitinh, Ghichu

from Sanpham

where MaSP=@MaSP

groupby MaSP, TenSP, MaloaiSP,Donvitinh, Ghichu

end else

print N' Mặt hàng này không tồn tại'

end

--Thực thi

exec pr_dongia_MaSP'SP03'

Kết quả:

61 | P a g e

Ví dụ 3: Tạo thủ tục xóa một khách hàng trong bảng KhachHang với tham số mã khách hàng do người dùng nhập và xác định giao dịch hoàn thành hoặc quay lại khi giao dịch có lỗi

createproc sp_delete_ThongTinKhachHang(@MaKhachHang nchar (6))

as

if exists(select *

from Khachhang

where MaKH = @MaKhachHang)

begintran

deletefrom Khachhang

where MaKH = @MaKhachHang

committran if@@ERROR <>0

rollbacktran

Kết quả:

Hình 4. 14: Kết quả tạo proc

Ví dụ 4: Thủ tục thống kê ngày sinh đối với mỗi nhân viên với tham số truyền vào là 1 ngày khoảng thời gian ngày sinh (từ ngày, đến ngày). Thủ tục liệt kê mã nhân viên, họ tên nhân viên, ngày sinh, SDT, địa chỉ.

Createproc sp_ThongKeNgaySinhNV @tungay datetime, @denngay datetime As

Select MaNV, HoTen, NgaySinh, DienThoai, DiaChi

From Nhanvien

Where NgaySinh>=@tungay and NgaySinh<=@denngay

62 | P a g e

--Thực thi

exec sp_ThongKeNgaySinhNV'01/01/1980' , '01/01/1990'

Kết quả:

Hình 4. 15: Kết quả thực thi

Ví dụ 5: Viết thủ tục cho biết danh sách các nhân viên nơi sinh ở TP.HCM

Createproc proc_Nhanvien

As Select * From Nhanvien Where NoiSinh='TP.HCM' --Thực thi exec proc_Nhanvien  Kết quả: Hình 4. 16: Kết quả thực thi

Ví dụ 6: Xem thơng tin nhân viên gồm mã nhân viên, họ tên, ngày sinh, ngày vào làm theo khoảng thời gian từ ngày đến ngày do người dùng yêu cầu.

createproc pr_thongtinnhanvien1(@NgayBatDau NCHAR(10), @NgayKetThuc

NCHAR (10))

as begin

63 | P a g e

if EXISTS(select NgayVaoLam from Nhanvien where @NgayKetThuc >=NgayVaoLam and NgayVaoLam>= @NgayBatDau)

begin

select MaNV, HoTen, NgaySinh, NgayVaoLam

from Nhanvien

where @NgayKetThuc>= NgayVaoLam and NgayVaoLam>= @NgayBatDau

groupby MaNV, HoTen, NgaySinh, NgayVaoLam

end else

print N'Ngày vào làm không hợp lệ'

end -- thực thi exec pr_thongtinnhanvien1'2018-04-15 00:00:00.0000000', '2018-06-15 00:00:00.0000000' exec pr_thongtinnhanvien1'2016-08-08 00:00:00.0000000', '2018-05-03 00:00:00.0000000'  Kết quả: Hình 4. 17: Kết quả thực thi 4.5 Function 4.5.1 Cú pháp function

Create Function Tên_hàm [(Khai báo các tham số)] Returns Kiểu_dữ_liệu_trả_về

64 | P a g e Begin Các_câu_lệnh Return End 4.5.2 Áp dụng

Ví dụ 1:Viết hàm cho biết số lượng đơn đặt hàng với tham số truyền vào là mã nhân viên

CREATEFUNCTION F_SL_MANV(@MaNV NCHAR(6))

RETURNSINT AS

BEGIN

DECLARE @SoLuong INT

SELECT @SoLuong= COUNT(SoPX) FROM Phieuxuat WHERE MaNV =@MaNV

GROUPBY MaNV

RETURN @SoLuong

END

--Xóa

dropfunction F_SL_MANV

--Thực thi

select dbo. F_SL_MANV('NV05')

-- Thực thi c2

print N'số lượng đơn hàng của nhân viên mã số NV05 là: '+ convert(varchar, dbo.F_SL_MANV('NV05'))

65 | P a g e

Hình 4. 18: Kết quả thực thi

Ví dụ 2: Viết hàm xem danh sách các sản phẩm theo Loại sản phẩm (trả về dạng bảng)

CREATEFUNCTION F_DANHSACHSANPHAM(@LoaiSP NvarCHAR(50))

returnstable as

return (select *from Sanpham where MaloaiSP = @LoaiSP)

--Thực thi

select * from F_DANHSACHSANPHAM('BG01')

Kết quả:

Hình 4. 19: Kết quả thực thi 4.6 Trigger

4.6.1 Cú pháp trigger

Create Trigger [ schema_name . ] trigger_name

On { table | view } [ With [ Encryption | Exxcute As Clause ]] {

For | After | Instead Of } { [ Insert ] [ , ] [Update ] [ , ] Delete] } [ Not For Replication] As { sql_statement [ ; ] [ ,...n ]

66 | P a g e

4.6.2 Áp dụng

Ví dụ 1: Số lượng nhập của mỹ phẩm phải lớn hơn hoặc bằng 0

Createtrigger tg_SoLuongnhap

On CTPhieunhap

ForInsert, Update

As

If exists(Select * From inserted Where inserted.Soluong<0)

Begin

print(N'Số lượng nhập phải lớn hơn hoặc bằng 0')

rollbacktran End

--Trigger được kích hoạt khi có lệnh Update vào bảng CTphieunhap

Update CTPhieunhap Set Soluong= 10 Where SoPN='PN005'  Kết quả: Hình 4. 20: Kết quả thực thi Kết quả

67 | P a g e

Hình 4. 21: Kết quả update_trigger

Ví dụ 1: Số lượng nhập phải lớn hơn 10 và nhỏ hơn 25

CreateTrigger tg_SoLuongnhaphang3

On CTphieunhap

ForInsert, Update

As

If exists(Select * From inserted

Where inserted.Soluong<10 or inserted.Soluong >25) Begin

68 | P a g e

Print(N'Số lượng nhập hàng phải lớn hơn 10 và nhỏ hơn 25') rollbacktran

End

--Trigger được kích hoạt khi có lệnh Update vào bảng CTphieunhap

Update CTphieunhap Set SoLuong=12 Where MaSP=N'SP04'  Kết quả Hình 4. 22: Kết quả thực thiKết quả

69 | P a g e

Hình 4. 23: Kết quả update_ trigger4.7 User 4.7 User

4.7.1 Cú pháp tạo user và cấp quyền

sp_adduser[ @loginame= ] 'login' [ , [ @name_in_db= ] 'user' ] [ , [ @grpname = ] 'group' ]

 1. Tạo tài khoản đăng nhập:

Cách1: Create login tên_login with password = 'mật_khẩu' Cách 2: sp_addlogin 'tên_login','mật_khẩu'

70 | P a g e

 2. Tạo người dùng:

Cách 1: Create user tên_user for login tên_login Cách 2: sp_adduser 'tên_login','tên_user'

 3. Cấp quyền cho người dùng

Grant danh_sách_quyền on tên_bảng to tên_user [with grant option]

4.7.2 Áp dụng

Ví dụ 1: Cấp quyền xem và thêm dữ liệu trên bảng KhachHang cho Yennhi trên CSDL QLBHMPham3 Các bước thực hiện

Createlogin Yennhi withpassword = '123456', default_database = QLBHMPham3

Createuser Yennhi forlogin Yennhi

Grantselect,insert on Khachhang to Yennhi

71 | P a g e

Hình 4. 24: Tạo tài khoản user

Ví dụ 2: Cấp quyền xem, thêm và xóa dữ liệu trên bảng Nhanvien cho ThanhTuyen123 trên CSDL QLBHMPham3 Các bước thực hiện:

Createlogin ThanhTuyen123 withpassword = '56789', default_database = QLBHMPham3

Createuser ThanhTuyen123 forlogin ThanhTuyen123

Grantselect, insert, deleteon Nhanvien to ThanhTuyen123

72 | P a g e

Hình 4. 25: Tạo tài khoản user4.8 Reporting Sevices/ Power View… 4.8 Reporting Sevices/ Power View…

KẾT LUẬN

 Những kết quả đạt được qua việc báo cáo đồ án:

 Tìm hiểu cách cài đặt cũng như cách thực hiện và hoạt động SQL Server Management Studio 2017.

 Xây dựng cơ sở dữ liệu quản lý cửa hàng mỹ phẩm Beauty Garden trên hệ quản trị CSDL SQL Server Management Studio.

73 | P a g e  Truy xuất dữ liệu trên hệ quản trị CSDL quản lý cửa hàng mỹ phẩm Beauty

Garden trên SQL Server Management Studio bằng các lệnh truy vấn.

 Tìm hiểu về cú pháp và cách sử dụng Synonym, Index, View, Stored Procedured, Functions, Trigger, User…. Áp dụng vào cơ sở dữ liệu quản lý cửa hàng mỹ phẩm Beauty Garden.

 Những điểm hạn chế của đồ án:

 Hệ thống dữ liệu chưa thực sự đầy đủ và thực tế.

 Mức độ chi tiết và liên kết trong các bảng còn chưa cao.

74 | P a g e

TÀI LIỆU THAM KHẢO

123doc. (2015, 11 05). Retrieved from 123doc.vn: https://123docz.net/document/752492- mo-ta-he-thong-quan-ly-ban-hang.htm

DOCEYE. (2017). Retrieved from Doceye.vn: https://doceye.vn/tin-tuc/noi-dung/cac- buoc-de-thuc-hien-quy-trinh-quan-ly-kho-hieu-qua-chuyen-nghiep-21519.html Gocnhinso. (2020). Retrieved from Gocnhinso.vn: https://gocnhinso.com/tong-quan-sql-

Một phần của tài liệu QUẢN LÝ BÁN HÀNG MỸ PHẨM CỦA CỬA HÀNG BEAUTY GARDEN (Trang 52)