Quản lý nhân sự
Đề bài:
Một lược đồ cơ sở dữ liệu quản lý nhân sự được thiết kế như sau:
NHANVIEN(MANV, HOTEN, NGAYSINH, PHAI, LUONG, MAPHG)
Mô tả: mỗi nhân viên có một mã số (manv) duy nhất để phân biệt với các nhân viên khác, có họ tên, ngày sinh, phái, lương và mã số phòng ban mà nhân viên đó trực thuộc.
PHONGBAN (MAPHG, TENPHG, TRPHG)
Mô tả: mỗi phòng ban có một mã số (maphg) duy nhất, có tên phòng ban và có mã số nhân viên làm trưởng phòng
DIADIEM (MADD, TENDD)
Mô tả : địa điểm là tên thành phố có liên quan đến hoạt động của công ty. Mỗi địa điểm có một mã số (madd) là duy nhất và có tên địa điểm.
DEAN(MADA, TENDA, MADD, PHONG)
Mô tả: Mỗi đề án có mã số (mada) là duy nhất, ngoài ra còn có tên đề án, địa điểm đề án, mã phòng ban phụ trách đề án
PHANCONG(MANV, MADA, THOIGIAN)
Mô tả: Mỗi nhân viên được phân công vào 1 hoặc nhiều đề án với thời gian là số giờ làm việc trong 1 tuần
Bài làm:
Xây dựng cơ sở dữ liệu và tạo bảng:
A/ Tạo bảng:
1. Tạo bảng PHONGBAN:
create table PHONGBAN(MaPHG byte primary key, TenPHG char(15), TRPHG char(5));
2. Tạo bảng NHANVIEN:
create table NHANVIEN(MaNV char(5) primary key, HoTen char(20), Ngaysinh Date, Phai Yesno, Luong integer, MaPHG byte references PHONGBAN(MaPHG));
3. Tạo bảng DIADIEM:
create table DIADIEM(MaDD byte primary key, TenDD char(20));
4. Tạo bảng DEAN:
create table DEAN(MaDA byte primary key, TenDA char(20), MaDD byte references DIADIEM(MaDD), MaPHG byte references PHONGBAN(MaPHG));
5. Tạo bảng PHANCONG:
create table PHANCONG(MaNV char(5) references NHANVIEN(MaNV), MaDA byte references DEAN(MaDA),constraint Khoachinh primary key (MaNV, MaDA), ThoiGian byte);
B/ Xây dựng cơ sở dữ liệu:
Thêm vào bảng nhân viên bộ (N0023, Bùi Thuỵ Vũ, 10/08/1970, Nam, 700000, 1)
Insert into NHANVIEN values(`N0023`,`Bùi Thuỵ Vũ`,`10/08/1970`,`Nam`,700000,1);
Sửa lại mã phòng ban mà nhân viên N0020 trực thuộc là 4
Update NHANVIEN set MaPHG=5 where MaNV=N0020;
Xoá bộ (N0016, 30, 16) trong bảng phân công
Delete from PHANCONG where MaNV=`N0016`and MaDA=30;
Cho biết tên phòng ban mà nhân viên N0015 trực thuộc
Select TenPHG from NHANVIEN, PHONGBAN where NHANVIEN.MaPHG=PHONGBAN.MaPHG and MaNV=`N0015`;
Liệt kê mã số nhân viên cùng phòng ban mà họ trực thuộc
Select MaNV, HoTen, TenPHG from NHANVIEN, PHONGBAN where NHANVIEN.MaPHG=PHONGBAN.MaPHG;
Liệt kê mã số, họ tên của những nhân viên có ngày sinh trong khoảng 1/1/1960 và 1/1/1965
SELECT NHANVIEN.MaNV, NHANVIEN.HoTen FROM NHANVIEN
WHERE (((NHANVIEN.Ngaysinh) Between #1/1/1960# And #1/1/1965#))
Liệt kê danh sách những nhân viên có lương trong khoảng 500000 và 850000
Select * FROM NHANVIEN Where Luong between 500000 and 850000;
Liệt kê mã số, họ tên, ngày sinh của những nhân viên thuộc phòng nghiên cứu.
Select MaNV, HoTen, Ngaysinh from NHANVIEN, PHONGBAN
where NHANVIEN.MaPHG=PHONGBAN.MaPHG and PHONGBAN.TenPHG=`Nghiên cứu’;
Liệt kê mã số, họ tên của những nhân viên cùng có trưởng phòng có mã số là N0018
select MaNV, HoTen from NHANVIEN, PHONGBAN where NHANVIEN.MaPHG=PHONGBAN.MaPHG and PHONGBAN.TRPHG=`N0018`;
Liệt kê các đề án có địa điểm tại TPHCM
select * from DIADIEM where TenDD=`TPHCM`;
Liệt kê các đề án do phòng Quản lý phụ trách và có địa điểm tại TPHCM
select DEAN.MaDA, DEAN.TenDA from DEAN, PHONGBAN, DIADIEM
where DEAN.MaPHG=PHONGBAN.MaPHG and DEAN.MaDD=DIADIEM.MaDD and PHONGBAN.TenPHG=`Quản lý` and DIADIEM.TenDD=`TPHCM`;
Liệt kê tên các đề án mà nhân viên N0018 đã tham gia
select DEAN.TenDA from DEAN, PHANCONG where DEAN.MaDA=PHANCONG.MaDA and PHANCONG.MaNV=`N0018`;
Cho biết mức lương trung bình của phòng Nghiên cứu
select AVG (NHANVIEN.Luong) as Luong_TB from NHANVIEN, PHONGBAN
where NHANVIEN.MaPHG=PHONGBAN.MaPHG and PHONGBAN.TenPHG=`Nghiên cứu’;
Cho biết số lượng nhân viên mỗi phòng ban
Select PHONGBAN.MaPHG, TenPHG, Count(*) As So_nhan_vien FROM NHANVIEN
nguon VI OLET