PHÁT BIỂU BÀI TOÁN
Khảo sát hoạt động của quản lý tour du lịch ta có :
Mỗi nhân viên quản lý tour du lịch cần cung cấp các thông tin quan trọng như mã nhân viên, tên, giới tính, địa chỉ, số điện thoại, lương cơ bản và ngày sinh.
Quy định mỗi nhân viên có một số điện thoại, mỗi nhân viên được phân biệt bởi mã nhân viên.
Mỗi loại tour trong quản lý tour du lịch được xác định bởi mã loại tour và tên loại tour Mã loại tour giúp phân biệt các loại tour khác nhau, và mỗi loại tour có thể bao gồm nhiều tour riêng biệt.
Mỗi nhân viên phụ trách nhiều tour du lịch khác nhau, với mỗi tour được quản lý thông qua các thông tin quan trọng như mã tour, tên tour, ngày khởi hành, ngày kết thúc và giá Mã tour là yếu tố phân biệt các tour, trong khi mỗi tour chỉ thuộc về một loại và được giao cho một nhân viên duy nhất.
Mỗi khách hàng được xác định bằng mã khách hàng duy nhất và chứa các thông tin quan trọng như tên, giới tính, chứng minh nhân dân, địa chỉ, số điện thoại và ngày sinh Quy định yêu cầu mỗi khách hàng chỉ có một chứng minh nhân dân và một số điện thoại, giúp phân biệt rõ ràng giữa các khách hàng.
Mỗi tour du lịch có thể phục vụ nhiều khách hàng, và mỗi khách hàng có khả năng đặt nhiều tour khác nhau Chi tiết đặt tour bao gồm thông tin quan trọng như mã tour, mã khách hàng, ngày đặt, phương tiện di chuyển và khách sạn Mỗi chi tiết đặt tour được phân biệt rõ ràng thông qua mã tour và mã khách hàng.
MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ
Xác định các thực thể và thuộc tính
Thực thể: NHANVIEN, LOAITOUR,KHACHHANG,TOUR.
Các thuộc tính của thực thể:
NHANVIEN(MaNV (mã nhân viên), Ten NV(tên nhân viên), GioiTinh(giới tính), DiaChi(địa chỉ), SDT(số điện thoại), LuongCB(lương cơ bản), NgaySinh(ngày sinh).
KHACHHANG(MaKH(mã khách hàng), TenKH(tên khách hàng), GT(giới tính), CMND(Chứng minh nhân dân), DiaChi(địa chỉ), SDT(số điện thoại), NgaySinh(ngày sinh).
TOUR(MaTour(mã tour), TenTour(tên tour), NgayKH(ngày khởi hành),
NgayKT(ngày kết thúc), Gia(giá).
LOAITOUR(MaLoai(mã loại tour), TenLoai(tên loại tour)
Xác định liên kết giữa các thực thể
Một NHANVIEN phụ trách nhiều TOUR
Một TOUR do một nhân viên phụ trách
Một loại tour gồm nhiều tour
Mỗi tour chỉ thuộc một loại tour
Mỗi khách hàng có thể đặt nhiều tour du lịch
Mỗi tour du lịch có thể được đặt bởi nhiều khách hàng
Mô hình E-R
Ràng buộc quan hệ
R1: “Mã nhân viên không giống nhau”
Hình thức: nv1.MaNV nv2.MaNV
R2: “LuongCB của nhân viên chỉ tăng không giảm”
Hình thức: lg.luongCB(cũ) < lg.luongCB(mới)
R3: “Giới tính khách hàng chỉ nhận là nam hoặc nữ”
Hình thức: kh.gioitinh = “nam” or kh.gioitinh = “nữ”
R4:“Giá của tour phải lớn hơn 0”
R5: “Mã tour không được giống nhau”
Hình thức: tour1.matour tour2.matour
R6: “Với mỗi tour thì ngày khởi hành phải nhỏ hơn ngày kết thúc”
NgayKH.MaTour = Ngay KT.MaTour or NgayKH.MaTour < NgayKT.MaTour
R7: “Mã loại tour không được giống nhau”
Hình thức: ltour1.maloaiTour ltour2.maloaiTour
R8: “Mã khách hàng không được giống nhau”
Hình thức: kh1.MaKH kh2.MaKH
R9: “Độ tuổi của nhân viên phải từ 18 tuổi trở lên”
Hình thức: year.getdate() – year.ngaysinh >18 tuổi
R10: “Giới tính nhân viên chỉ nhận là nam hoặc nữ”
Hình thức: nv.gioitinh = “nam” or nv.gioitinh = “nữ”
Xây dựng mô hình quan hệ
Quy tắc với liên kết 1 – n
- Liên kết giữa NHANVIEN và TOUR
(4.1)TOUR (MaTour, MaNV, TenTour, NgayKH, NgayKT, Gia)
- Liên kết giữa LOAIHANG và TOUR
(4.2)TOUR (MaTour, MaNV, MaLoai, TenTour, NgayKH, NgayKT, Gia)
Quy tắc với liên kết m – n
- Liên kết giữa TOUR và KHACHHANG
(5)CTDATTOUR (MaTour, MaKH, NgayDat, PhuongTien, KhachSan)
(1) NHANVIEN (MaNV, TenNV, GT,DiaChi, SDT, LuongCB, NgaySinh)
(3) KHACHHANG (MaKH, TenKH, GT, CMND, DiaChi, SDT, NgaySinh)
(4) TOUR (MaTour, MaNV, MaLoai, TenTour, NgayKH, NgayKT, Gia)
(5) CTDATTOUR (MaTour, MaKH, NgayDat, PhuongTien, KhachSan)
CSDL Quản lý Tour Du lịch gồm các bảng
TT Tên trường Kiểu dữ liệu Kích thước Mô tả
TT Tên trường Kiểu dữ liệu Kích thước Mô tả
TT Tên Trường Kiểu dữ liệu Kích thước Mô tả
TT Tên trường Kiểu dữ liệu Kích thước Mô tả
TT Tên trường Kiểu dữ liệu Kích thước Mô tả
1 iMaTour Số nguyên PK , FK
2 iMaKH Số nguyên PK , FK
TẠO CƠ SỞ DỮ LIỆU
Khởi tạo table từ mô hình quan hệ
( iMaNV INT NOT NULL, sTenNV NVARCHAR(20), dNgaySinh DATETIME, sDiaChi NVARCHAR(30), sDienThoai NVARCHAR(11), fLuongCB FLOAT, bGioiTinh BIT
ALTER TABLE tblNHANVIEN ADD CONSTRAINT PK_MaNV PRIMARY KEY (iMaNV)
( iMaLoai INT NOT NULL, sTenLoai NVARCHAR(20)
ALTER TABLE tblLOAITOUR ADD CONSTRAINT PK_MaLoai PRIMARY KEY (iMaLoai);
( iMaTour INT NOT NULL, iMaNV INT NOT NULL, iMaLoai INT NOT NULL, sTenTour NVARCHAR(30), dNgayKhoiHanh DATETIME, dNgayKetThuc DATETIME, fGia FLOAT
ALTER TABLE tblTOUR ADD CONSTRAINT PK_MaTour PRIMARY KEY (iMaTour)
ALTER TABLE tblTOUR ADD CONSTRAINT FK_MaNV FOREIGN KEY (iMaNV) REFERENCES tblNHANVIEN (iMaNV)
ALTER TABLE tblTOUR ADD CONSTRAINT FK_MaLoai FOREIGN KEY (iMaLoai) REFERENCES tblLOAITOUR (iMaLoai)
ALTER TABLE tblTOUR ADD CONSTRAINT CK_GIA CHECK(fGia>0)
ALTER TABLE tblTOUR ADD CONSTRAINT CK_THOIGIANDI
CHECK(day(dNgayKhoiHanh) < day(dNgayKetThuc))
( iMaKH INT NOT NULL, sTenKH NVARCHAR(20), bGioiTinh BIT, sCMND NVARCHAR(10) UNIQUE, sDiaChi NVARCHAR(100), sDienThoai NVARCHAR(10), dNgaySinh DATETIME
ALTER TABLE tblKHACHHANG ADD CONSTRAINT PK_MaKH PRIMARY KEY (iMaKH)
( iMaTour INT NOT NULL, iMaKH INT NOT NULL, dNgayDat DATETIME DEFAULT GETDATE(), sPhuongTien NVARCHAR(20), sKhachSan NVARCHAR(20)
ALTER TABLE tblChiTietDatTour ADD CONSTRAINT PK_MaTour_MaKH PRIMARY KEY (iMaTour,iMaKH)
ALTER TABLE tblChiTietDatTour ADD CONSTRAINT FK_MaTour FOREIGN KEY (iMaTour) REFERENCES tblTOUR (iMaTour)
ALTER TABLE tblChiTietDatTour ADD CONSTRAINT FK_MaKH FOREIGN KEY (iMaKH) REFERENCES tblKHACHHANG (iMaKH)
Thực hiện nhập bản ghi cho các bảng
INSERT INTO tblNHANVIEN(iMaNV,sTenNV,dNgaySinh,bGioiTinh,sDiaChi,sDienThoai,f LuongCB) VALUES
(5,N'Tr n Đan Linh Hân','1997-02-07',0,N'Phú ầ
(9,N'Nguy n H ng Hễ ồ ương','1994-07-11',0,N'Hà
INSERT INTO tblLOAITOUR(iMaLoai,sTenLoai) VALUES
INSERT INTO tblKHACHHANG(iMaKH,sTenKH,dNgaySinh,bGioiTinh,sCMND,sDiaChi,sDien Thoai) VALUES
Bảng thông tin Tour du lịch
INSERT INTO tblTOUR(iMaTour,iMaNV,iMaLoai,sTenTour,dNgayKhoiHanh,dNgayKetThuc ,fGia) VALUES
(4,4,6,N'Du l ch Mù Cang Ch i','2019-11-7','2019-11-ị ảả
(5,5,4,N'Du l ch Tà Xùa M c Châu','2019-11-25','2016-11-ị ộ 28',1590000),
(7,7,1,N'Du l ch Ng c Cát Bà H i Phòng','2016-7-12','2016-7-ị ọ ảả 16',1830000),
(8,8,1,N'Du l ch S m S n','2016-8-23','2016-8-27',1430000),ị ầầ ơ (9,9,5,N'Du l ch Quy Nh n Phú Yên','2017-9-5','2016-9-ị ơ 7',6990000),
Bảng chi tiết thông tin cho Tour:
INSERT INTO tblChiTietDatTour(iMaTour,iMaKH,dNgayDat,sPhuongTien,sKhachSan) VALUES
(1,1,'2019-11-2',N'Tàu th y',N'Mủ ường Thanh'),
(6,7,'2019-11-7',N'Tàu th y',N'Hanoi Hi-Tech'),ủ
Thực hiện SELECT
Lấy những tour có nhân viên giới tính nữ
SELECT iMaTour,sTenTour,sTenNV FROM tblTOUR INNER JOIN tblNHANVIEN
ON tblTOUR.iMaNV=tblNHANVIEN.iMaNV
Lấy những tour có nhân viên địa chỉ ở Hà Nội
SELECT iMaTour,sTenTour,sTenNV FROM tblTOUR INNER JOIN tblNHANVIEN
ON tblTOUR.iMaNV=tblNHANVIEN.iMaNV
Lấy danh sách những tour Du lịch tham quan
SELECT * FROM tblTOUR INNER JOIN tblLOAITOUR
ON tblTOUR.iMaLoai=tblLOAITOUR.iMaLoai
WHERE tblLoaiTour.sTenLoai=N'Du l ch Tham quan'ị
Lấy những khách sạn có khách hàng là nữ
SELECT sKhachSan,sTenKH,sDienThoai FROM tblKHACHHANG INNER JOIN tblChiTietDatTour
ON tblKHACHHANG.iMaKH=tblChiTietDatTour.iMaKH
Lấy những phương tiện có khách hàng là nam
SELECT sPhuongTien FROM tblChiTietDatTour INNER JOIN tblKHACHHANG
ON tblChiTietDatTour.iMaKH=tblKHACHHANG.iMaKH
Lấy Khách hàng đã đặt phương tiện là tàu thủy
SELECT sTenKH,sDienThoai,dNgayDat FROM tblKHACHHANG INNER JOIN tblChiTietDatTour
ON tblKHACHHANG.iMaKH=tblChiTietDatTour.iMaKH
KHAI THÁC CƠ SỞ DỮ LIỆU (VIEW)
1.Tạo View xuất thông tin nhân viên
2 Tạo View cho biết số Tour của từng loại Tour
SELECT tblLOAITOUR.sTenLoai, COUNT(iMaTour) as SoTourFROM tblTour INNER JOIN tblLoaiTour
ON tblTOUR.iMaLoai = tblLOAITOUR.iMaLoai
3 Tạo view cho biết số Tour đã đặt của từng loại trong năm 2019
SELECT tblLoaiTour.iMaLoai, tblLoaiTour.sTenloai,
COUNT(tblChiTietDatTour.iMaTour) AS SoLuong
FROM tblTour INNER JOIN tblLoaiTour ON tblLoaiTour.iMaLoai tblTour.iMaLoai
INNER JOIN tblChiTietDatTour ON tblChiTietDatTour.iMaTour tblTOUR.iMaTour
GROUP BY tblLoaiTour.iMaLoai, tblLoaiTour.sTenloai
4.Tạo view tính tổng tiền của tất cả các mã đặt tour trong năm 2019
SELECT SUM(tblTour.fGia) AS N'T ng ti n'ổ ề
FROM tblTOUR INNER JOIN tblChiTietDatTour ON tblChiTietDatTour.iMaTour = tblTOUR.iMaTour
5.Tạo view lấy danh sách các khách hàng nữ và tổng tiền đặt tour của mỗi người
SELECT tblKHACHHANG.iMaKH, tblKhachHang.sTenKH,
SUM(tblTour.fGia) AS tongtien
ON tblKhachHang.iMaKH = tblChiTietDatTour.iMaKH
ON tblChiTietDatTour.iMaTour = tblTOUR.iMaTour
GROUP BY tblKhachHang.sTenKH,tblKHACHHANG.iMaKH
6 Tạo view cho biết số nhân viên sinh trước 1998
SELECT COUNT(iMaNV) AS N'S NV SN trố ước 1998' FROM tblNHANVIEN
7 Tạo View cho biết những nhân viên nào của công ty chưa từng lập bất kỳ một hoá đơn nào
WHERE NOT EXISTS (select iMaNV from tblTOUR where tblTOUR.iMaNV tblNHANVIEN.iMaNV)
8.Tạo View thống kê số lượng khách hàng theo giới tính
SELECT tblKHACHHANG.bGioiTinh, COUNT(tblKHACHHANG.bGioiTinh)
GROUP BY tblKHACHHANG.bGioiTinh select * from v_ThongkeKH
9.Tạo View tính tổng tiền thu được của từng mã đặt tour
SELECT tblChiTietDatTour.iMaTour,SUM(tblTour.fGia) AS N'T ngổ ti n thu c a m i mã Tour'ề ủ ỗ
FROM tblTOUR INNER JOIN tblChiTietDatTour ON tblChiTietDatTour.iMaTour = tblTOUR.iMaTour
10.Tạo view xem thông tin của nhân viên, tính Số hóa đơn đã lập và tuổi
SELECT tblNHANVIEN.iMaNV,tblNHANVIEN.sTenNV, tblNHANVIEN.dNgaySinh, tblNHANVIEN.sDiaChi,tblNHANVIEN.sDienThoai,
COUNT(DISTINCT(tblChiTietDatTour.iMaTour)) AS N'Hóa đ n đã l p', ơ ậ
YEAR(GETDATE())-YEAR(tblNHANVIEN.dNgaySinh) as Tuoi
WHERE tblNHANVIEN.iMaNV=tblTOUR.iMaTour AND tblTOUR.iMaTour=tblChiTietDatTour.iMaTour
GROUP BY tblNHANVIEN.iMaNV,tblNHANVIEN.sTenNV,tblNHANVIEN.dNgaySinh,tblNHA NVIEN.sDiaChi,tblNHANVIEN.sDienThoai
KHAI THÁC CƠ SỞ DỮ LIỆU (STORED PROCEDURE)
Tham số: mã khách hàng Thực hiện xóa khách hàng đặt Tour
WHERE tblKHACHHANG.iMaKH NOT IN
(SELECT iMaTour FROM tblChiTietDatTour WHERE tblKHACHHANG.iMaKH = @idkhach)
2.Tham số truyền vào : Ngày tháng năm
Thực hiện giảm giá Tour du lịch vào thời gian đó
(SELECT iMaTour FROM tblChiTietDatTour WHERE tblChiTietDatTour.dNgayDat = @nam) END
3 Sửa giá Tour với tham số mã Tour:
WHERE tblTOUR.iMaTour=@ma END
4 Sửa thông tin khách hàng
SET sTenKH=@ten, bGioiTinh=@gt, sCMND=@cmnd,sDiaChi=@dc,sDienThoai=@sdt, dNgaySinh=@ns WHERE tblKHACHHANG.iMaKH=@ma
EXEC sp_fixKH 10,N'Mai Gia Khánh',1,0123745869,N'Bình Đ nh','0936251487','1998-07-08'ị
5 Xem thông tin khách hàng đã đặt tour (tham số mã khách)
SELECT tblKHACHHANG.sTenKH,tblTOUR.sTenTour FROM tblKHACHHANG,tblChiTietDatTour,tblTOUR WHERE tblChiTietDatTour.iMaTour=@ma
AND tblChiTietDatTour.iMaKH=tblKHACHHANG.iMaKH AND tblChiTietDatTour.iMaTour=tblTOUR.iMaTour END
6.Kiểm tra loại tour từ mã tour
SELECT tblTOUR.sTenTour,tblLOAITOUR.sTenLoai
WHERE tblTOUR.iMaTour=@ma and tblLOAITOUR.iMaLoai=tblTOUR.iMaLoai
7.Tăng lương cho nhân viên có tuổi >24 lên 1.1 lần
WHERE year(GETDATE())-year(tblNHANVIEN.dNgaySinh)>24 END
EXEC sp_fixluong select * from tblNHANVIEN
Lương sau khi thay đổi của nhân viên có mã số 9(Tuổi 25)
8.Thêm thông tin cho bảng Tour
INSERT INTO tblTOUR values(@ma,@manv,@makh,@ten,@nkh,@nkt,@gia)
EXEC sp_InsertTour 13,3,2,N'Du l ch t i nhà','2019-11-11','2019-ị ạ 11-14',1690000
9.Thêm thông tin đầy đủ cho bảng dattour
INSERT INTO tblChiTietDatTour VALUES(@ma,@makh,@nd,@pt,@ks)END
EXEC sp_InsertDatTour 13,4,'2019-11-11',N'Tàu bay',N'Con Bìm B p'ị SELECT * FROM tblChiTietDatTour
10.Xem thông tin bảng tblChiTietDatTour
11 Xem thông tin bảng tblKHACHHANG
12 Xem thông tin bảng tblLOAITOUR
13 Xem thông tin bảng tblNhanVien
14 Xem thông tin bảng tblTOUR
Danh sách Store Procedure đã khởi tạo:
ĐẢM BẢO TÍNH LOGIC CỦA CSDL (TRIGGER)
SET @tuoi=(SELECT YEAR(GETDATE())-YEAR(dNgaySinh) FROM inserted)
RAISERROR(N'Tu i c a nhân viên ph i l n h n 18',16,10)ổ ủ ả ớ ơ
INSERT INTO tblNHANVIEN(iMaNV,sTenNV,dNgaySinh,sDiaChi,sDienThoai,fLuongCB,bG ioiTinh) VALUES
2.Trigger không cho phép lương CB của nhân viên nhỏ hơn
SELECT @luong=fLuongCB FROM inserted
RAISERROR(N'Lương c b n không th nh h n ơ ảả ễả ỏả ơ
INSERT INTO tblNHANVIEN(iMaNV,sTenNV,dNgaySinh,sDiaChi,sDienThoai,fLuongCB,bG ioiTinh) VALUES
3 Trigger không cho phép giá Tour nhỏ hơn 500000(tblTOUR)
SELECT @gia=fGia FROM inserted
RAISERROR(N'Giá c a Tour du l ch ph i l n h n ủ ị ả ớ ơ
INSERT INTO tblTOUR(iMaTour,iMaNV,iMaLoai,sTenTour,dNgayKhoiHanh,dNgayKetThuc ,fGia) VALUES
4 Trigger khi thêm 1 bản ghi thì ngày đặt tour phải trước ngày khởi hành(tblChiTietDatTour)
SELECT @matour=iMaTour,@ND=dNgayDat FROM inserted
SELECT @NKH=dNgayKhoiHanh FROM tblTOUR WHERE @matour=iMaTour IF(@ND>@NKH)
RAISERROR(N'B n ph i nh p ngày đ t tour trạ ảả ậ ặ ước ngày kh i hành',16,10)ở
INSERT INTO tblChiTietDatTour(iMaTour,iMaKH,dNgayDat,sPhuongTien,sKhachSan) VALUES
5 Trigger không cho phép khách hàng lớn hơn 100 tuổi đặt tour(tblKHACHHANG)
CREATE TRIGGER trgCHECK_tren100tuoi
SELECT @MAKH=iMaKH FROM inserted
SET @TUOI= (SELECT YEAR(GETDATE())-YEAR(dNgaySinh) FROM tblKHACHHANG WHERE @MAKH=iMaKH)
IF NOT EXISTS (SELECT iMaKH FROM tblKHACHHANG WHERE
RAISERROR(N'KHông t n t i mã khách hàng',16,10)ồ ạ ROLLBACK TRAN
RAISERROR(N'Không cho phép khách hàng l n h n 100 ớ ơ tu i',16,10)ổ
UPDATE tblKHACHHANG SET dNgaySinh='1909-02-27' WHERE iMaKH=1
6 Xóa 1 khách hàng trên view thì sẽ xóa khách hàng trong bảng khách hàng.
CREATE TRIGGER del_v_thongtinkhach ON v_thongtinkhach INSTEAD OF DELETE
FOR (SELECT iMaKH FROM DELETED)
FETCH NEXT FROM @CUR INTO @MAKH
DELETE FROM tblKHACHHANG WHERE iMaKH = @MAKH
FETCH NEXT FROM @CUR INTO @MAKH
DELETE FROM v_thongtinkhach where iMaKH = N'11'
7 Trigger đảm bảo không có tên loại Tour nào bị trùng nhau(tblLOAITOUR)
SELECT @tenloai=sTenLoai FROM inserted
SET @count=(SELECT COUNT(*) FROM tblLOAITOUR WHERE
RAISERROR(N'B n đã nh p tên lo i Tour đã t n ạ ậ ạ ồầ t i',16,10)ạ
INSERT INTO tblLOAITOUR(iMaLoai,sTenLoai) VALUES
PHÂN QUYỀN CÁC ĐỐI TƯỢNG SỬ DỤNG
1 Tạo tài khoản đăng nhập có tên DinhHieu
CREATE LOGIN DinhHieu WITH PASSWORD = '1234'
Tạo user trong DB tương ứng với login DinhHieu và thực hiện cấp quy nề Insert, Update, Delete
C p quy n Insert, Update, Delete cho User1ấ ề
Kiểm tra kết quả phân quyền:
VALUES('20',N'Nguy n Trung Kiên',1,01234789,N'Hà ễ
2.Tạo tài khoản đăng nhập DB có tên Hieu2:
Thực hiện cấp quyền Insert trên bảng tblTOUR và tblChiTietDatTour
CREATE LOGIN Hieu2 WITH PASSWORD = '1234'
VALUES(11,5,5,N'Du l ch Nha Trang','2019-11-01','2019-11-ị 09',5790000)
3.Tạo User Trưởng phòng thực hiện các Procedure
CREATE LOGIN TRUONGPHONG WITH PASSWORD = '1234'
GRANT EXECUTE ON GINhanVien TO User3
GRANT EXECUTE ON sp_CamKhachHang TO User3
GRANT EXECUTE ON sp_fixTour TO User3
GRANT EXECUTE ON sp_fixKH TO User3
EXEC sp_fixKH 20,N'Đinh Mai Hương',0,'0123456789',N'Cao
4 Tạo Role có tên DBnewrole và cấp quyền.
GRANT INSERT, SELECT ON tblTOUR TO DBnewrole
GRANT INSERT, SELECT ON tblChiTietDatTour TO DBnewrole
GRANT SELECT ON tblNHANVIEN TO DBnewrole
Cam them sua xoa tren tblNHANVIEN
Test: Đặt tài khoản TestRole làm thành viên của Role exec sp_addrolemember 'DBnewrole','User4'
INSERT INTO tblNHANVIEN(iMaNV,sTenNV,dNgaySinh,bGioiTinh,sDiaChi,sDienThoai,f LuongCB) VALUES
(14,N'Nguy n Bá Minh An','1998-02-09',1,N'L ng ễ ạ
Danh sách Login đã khởi tạo:
Danh sách User đã khởi tạo: