Mô tả:
Cho cơ sở dữ liệu gồm các bảng như sau:
Qui định khóa chính của các bảng như sau:
Bảng
Khóa chính
NhanVien
MaNV
PhongBan
MaPB
ChamCong
MaNV, Thang
Yêu cầu:
Câu 1. Hãy viết câu lệnh SQL để tạo 3 bảng trên với ngày công không được nhập
lớn hơn 50.
// tao table phong ban
create table phongban
(mapb varchar(20) not null constraint pk01 primary key,
tenpb varchar(20));
//tao table nhan vien
create table nhanvien
(manv varchar(20) not null constraint pk0001 primary key,
mapb varchar(20) not null constraint rf01 references phongban(mapb),
ho varchar(20),
ten varchar(20),
chucvu varchar(20),
luongcd numeric );
//tao table cham cong
create table chamcong
(manv varchar(20) not null constraint fe0002 references nhanvien(manv),
ngaycong int not null check (ngaycong<=50),
thang int not null constraint pk000001 primary key (manv,thang));
Câu 2. Hãy viết lệnh SQL để lập danh sách các nhân viên có NgayCong lớn hơn
26. Truy vấn gồm các trường MaNV, HoTen, ChucVu, TenPB, NgayCong,
Luong. Trong đó: HoTen: là ghép Ho và Ten; Luong = LuongCB x NgayCong
select a.manv, a.ho+a.ten as hovaten, a.chucvu, a.mapb, b.ngaycong,
(a.luongcb*b.ngaycong) as luong
from nhanvien a, chamcong b
where a.manv=b.manv and b.ngaycong > 26
Câu 3 - Hãy viết lệnh SQL để thêm một bản ghi mới vào bảng NhanVien; dữ liệu
phù hợp nhưng không được nhập giá trị null.
insert into nhanvien
values (10,'HC','dang','nhan','NV',50000);
- Hãy viết lệnh SQL để thay đổi ngày công (NgayCong) bằng 30 cho nhân viên có mã số
là 3.
update chamcong
set ngaycong=30
where manv=3;
- Hãy viết lệnh SQL để xóa phòng ban thông tin về giám đốc của phòng Hành
chính khỏi bảng Nhanvien.
delete from nhanvien
where mapb='HC' and chucvu='GD';
Câu 4. Hãy viết lệnh SQL để tính tổng số nhân viên phòng Hành chính.
select mapb, count(manv)as tongnv
from nhanvien
where mapb='HC'
group by mapb;
Câu5. Hãy viết lệnh SQL để hiển thị những nhân viên có số ngày công cao nhất
của mỗi phòng.
select a.manv, a.ho, a.ten, a.mapb, b.ngaycong
from nhanvien a, chamcong b
where a.manv=b.manv and b.ngaycong=(select max(ngaycong)
from nhanvien, chamcong
where nhanvien.manv=chamcong.manv and a.mapb=nhanvien.mapb);
- Xem thêm -