Cho CSDL QLHANG HOA, gồm ba bảng sau:
Bảng Nhan_Vien(MaNV, HoDem, Ten, GT, NgaySinh)
Bảng Phong Ban(MaPB, TenPB, Luong)
Bảng Luong (ID, MaNV, MaPB, LuongCB, HeSo)
Câu 1: Lập bảng như trên với các trường chọn kiểu dữ liệu phù hợp; Câu 2: Trình bày các bước tạo liên kết giữa các bảng nếu có?
Câu 3: Liệt kê và sắp theo thứ tự họ đệm, tên, ngày sinh, lương cơ bản, hệ số của các nhân
viên nam?
--HẾT
-
Quảng cáo
2 câu trả lời 514
Câu 1: Lập bảng như trên với các trường chọn kiểu dữ liệu phù hợp
Bảng Nhan_Vien(MaNV: int, HoDem: varchar, Ten: varchar, GT: char(1), NgaySinh: date)
Bảng Phong_Ban(MaPB: int, TenPB: varchar, Luong: decimal)
Bảng Luong(ID: int, MaNV: int, MaPB: int, LuongCB: decimal, HeSo: decimal)
Câu 2: Trình bày các bước tạo liên kết giữa các bảng nếu có
Để tạo liên kết giữa các bảng, chúng ta sử dụng khóa ngoại (foreign key). Dưới đây là các bước tạo liên kết giữa các bảng:
Bảng Nhan_Vien sẽ có khóa chính là MaNV.
Bảng Phong_Ban sẽ có khóa chính là MaPB.
Bảng Luong sẽ có khóa chính là ID và sẽ có hai khóa ngoại là MaNV và MaPB, tham chiếu đến khóa chính của bảng Nhan_Vien và bảng Phong_Ban tương ứng.
Ví dụ về cú pháp SQL để tạo khóa ngoại:
kết quả
ALTER TABLE Luong
ADD CONSTRAINT fk_NhanVien FOREIGN KEY (MaNV) REFERENCES Nhan_Vien(MaNV);
ALTER TABLE Luong
ADD CONSTRAINT fk_PhongBan FOREIGN KEY (MaPB) REFERENCES Phong_Ban(MaPB);
Câu 3: Liệt kê và sắp theo thứ tự họ đệm, tên, ngày sinh, lương cơ bản, hệ số của các nhân viên nam
Để liệt kê và sắp xếp theo thứ tự như yêu cầu, chúng ta cần thực hiện một truy vấn SQL. Dưới đây là cách thực hiện:
kết quả
SELECT HoDem, Ten, NgaySinh, LuongCB, HeSo
FROM Nhan_Vien
INNER JOIN Luong ON Nhan_Vien.MaNV = Luong.MaNV
WHERE GT = 'Nam'
ORDER BY HoDem, Ten, NgaySinh, LuongCB, HeSo;
Trong truy vấn trên, chúng ta kết hợp bảng Nhan_Vien và bảng Luong bằng cách sử dụng INNER JOIN dựa trên trường MaNV, và sau đó lọc ra các nhân viên nam bằng điều kiện GT = 'Nam'. Cuối cùng, chúng ta sắp xếp kết quả theo thứ tự các trường được yêu cầu.
Dưới đây là câu trả lời cho các câu hỏi của bạn:
Câu 1: Lập bảng như trên với các trường chọn kiểu dữ liệu phù hợp
Bảng Nhan_Vien(MaNV: int, HoDem: varchar, Ten: varchar, GT: char(1), NgaySinh: date)
Bảng Phong_Ban(MaPB: int, TenPB: varchar, Luong: decimal)
Bảng Luong(ID: int, MaNV: int, MaPB: int, LuongCB: decimal, HeSo: decimal)
Câu 2: Trình bày các bước tạo liên kết giữa các bảng nếu có
Để tạo liên kết giữa các bảng, chúng ta sử dụng khóa ngoại (foreign key). Dưới đây là các bước tạo liên kết giữa các bảng:
Bảng Nhan_Vien sẽ có khóa chính là MaNV.
Bảng Phong_Ban sẽ có khóa chính là MaPB.
Bảng Luong sẽ có khóa chính là ID và sẽ có hai khóa ngoại là MaNV và MaPB, tham chiếu đến khóa chính của bảng Nhan_Vien và bảng Phong_Ban tương ứng.
Ví dụ về cú pháp SQL để tạo khóa ngoại:
kết quả
ALTER TABLE Luong
ADD CONSTRAINT fk_NhanVien FOREIGN KEY (MaNV) REFERENCES Nhan_Vien(MaNV);
ALTER TABLE Luong
ADD CONSTRAINT fk_PhongBan FOREIGN KEY (MaPB) REFERENCES Phong_Ban(MaPB);
Câu 3: Liệt kê và sắp theo thứ tự họ đệm, tên, ngày sinh, lương cơ bản, hệ số của các nhân viên nam
Để liệt kê và sắp xếp theo thứ tự như yêu cầu, chúng ta cần thực hiện một truy vấn SQL. Dưới đây là cách thực hiện:
kết quả
SELECT HoDem, Ten, NgaySinh, LuongCB, HeSo
FROM Nhan_Vien
INNER JOIN Luong ON Nhan_Vien.MaNV = Luong.MaNV
WHERE GT = 'Nam'
ORDER BY HoDem, Ten, NgaySinh, LuongCB, HeSo;
Trong truy vấn trên, chúng ta kết hợp bảng Nhan_Vien và bảng Luong bằng cách sử dụng INNER JOIN dựa trên trường MaNV, và sau đó lọc ra các nhân viên nam bằng điều kiện GT = 'Nam'. Cuối cùng, chúng ta sắp xếp kết quả theo thứ tự các trường được yêu cầu.
Quảng cáo
Bạn cần hỏi gì?
Câu hỏi hot cùng chủ đề
-
Đã trả lời bởi chuyên gia
149216 -
Đã trả lời bởi chuyên gia
99587 -
Đã trả lời bởi chuyên gia
97254 -
Đã trả lời bởi chuyên gia
79927 -
Đã trả lời bởi chuyên gia
72782 -
Đã trả lời bởi chuyên gia
55849 -
Đã trả lời bởi chuyên gia
55234
