BÀI Cho cơ sở dữ liệu gồm các quan hệ sau :
SV(MSV,HOTEN,GT,NS,QUE,LOP)
MH(MAMON,TENMON,DVHT,HOCKY)
HT(MSV,MAMON,DIEM)
* Phần sql
A . Cho biết mã so ,họ tên ,ngày sinh của các sinh viên nữ lớp toán tin k46 danh
sách xắp xếp theo chiều giảm của ngày sinh :
SELECT sv.msv, sv.hoten, sv.ns
FROM sv INNER JOIN (mh INNER JOIN ht ON mh.mamon = ht.mamon) ON
sv.msv = ht.msv
GROUP BY sv.msv, sv.hoten, sv.ns, sv.lop, sv.gt
HAVING (((sv.lop)="k46") AND ((sv.gt)="nu"))
ORDER BY sv.ns DESC;
B . cho biết điểm csdl của sinh viên “nguyễn mai hoa “ lớp toán tin k46:
SELECT ht.diem, sv.msv
FROM sv INNER JOIN ht ON sv.msv = ht.msv
WHERE (((sv.hoten)="nguyen mai hoa") AND ((sv.lop)="k46"));
C . cho biết mã số và họ tên của những sinh viên lớp toán tin k46 có ít nhất một
điểm nhỏ hơn <5
SELECT sv.msv, sv.hoten, ht.msv, ht.diem
FROM sv INNER JOIN ht ON sv.msv = ht.msv
WHERE (((ht.diem)<5) AND ((sv.lop)="k46"));
D . cho biết mã số họ và tên của những sinh viên lớp toán tin k46 không có điểm
nào <5
SELECT sv.msv, sv.hoten, sv.lop, ht.diem
FROM sv INNER JOIN ht ON sv.msv=ht.msv
WHERE (((sv.lop)="k46") AND ((sv.msv) Not In (select ht.msv from ht where
diem<5)));
E . cho biết tổng số sinh vien lớp k46
SELECT Count(msv) AS sosv
FROM sv
WHERE (((sv.lop)="k46"));
F . cho biết danh sách những sinh viên lớp toán tin k46 có điểm trung bình
chung học tập (TBCHT) trong học kỳ 6>=5.danh sách gồm
MSV,HOTEN và (TBCHT=∑(DIEM*DVHT)/∑(DVHT))
SELECT ht.msv, sv.hoten, Sum([diem]*[dvht])/Sum([dvht]) AS dtb
FROM sv INNER JOIN (mh INNER JOIN ht ON mh.mamon =
ht.mamon) ON sv.msv = ht.msv
GROUP BY ht.msv, sv.hoten, sv.lop, mh.hocky
HAVING (((Sum([diem]*[dvht])/Sum([dvht]))>5) AND ((sv.lop)="k46")
AND ((mh.hocky)=6));
* Phần đại số quan hệ
A . Cho biết mã số và tên những môn học trong học kỳ 6
∏
(MAMON,TENMON)
(
σ
(HOCKY=6)
(MH))
B . Cho biết mã số và tên những môn học trong học kỳ 6 mà sinh viên NGUYỄN
MAI HOA lớp toán tin K46 có điếm nhỏ hơn 5
// ((∏
(MAMON,TENM0N)
(σ
(HOCKY=6 AND DIEM<=5 and lop=k46 and hoten=”nguyen mai hoa”)
(sv*mh*ht)
C . Cho biết điểm môn học trong học kỳ 6 của sinh viên nguyễn mai hoa lớp k46
∏
(MAMON,TENMON,DVHT,DIEM)
)( (σ
(HOCKY=6 and lop=k46 and hoten=”nguyen mai hoa”)
(sv*mh*ht)
D . Cho biết mã số và tên những môn học mà có ít nhất 1 sinh viên đạt đ 8
∏
MSV
(SV*HT σ
DIEM>=8
(HT))
E . Cho biết mã số và tên những môn học mà không có sinh viên nào đạt điểm 8
∏
MAMON,TENMON
(σ
(DIEM#8)
(MONHOC*HT)
F . Cho biết mã số và tên những sinh viên đạt điểm >=7 ở tất cả các môn trong học
lỳ 6
∏
(MSV,HOTEN)
(
σ
(DIEM>=7 AND HOCKY=6)
)(SV*HT*MH)
BÀI
Cho CSDL gồm các quan hệ
Sinh viên(MASV,HOTEN,NGAYSINH,QUEQUAN)
Môn học(MAMH,TENMH,MAGV);
Giảng viên(MAGV;HOTEN,DIACHI,DT)
Đăng kí(MAMH,MASV,KYHOC,DIEM)
* Phần sql
A:
use master
create database sinhvien
use sinhvien
set DateFormat dmy
create table GIANGVIEN(
MAGV char(5) NOT NULL,
HOTEN nvarchar(50) NOT NULL,
DIACHI char(50) NOT NULL,
DT int,
constraint PK_GIANGVIEN_MAGV primary key (MAGV) )
create table SINHVIEN(
QUEQUAN nvarchar(50) NOT NULL,
HOTEN nvarchar(50) NOT NULL,
MASV char(5) NOT NULL,
NGAYSINH DateTime,
constraint PK_SINHVIEN_MASV primary key (MASV),
constraint FK_SINHVIEN_MAKHOA foreign key (MAKHOA) references
KHOA(MAKHOA) )
create table MONHOC(
TENMH nvarchar(50) NOT NULL,
MAMH char(5) NOT NULL,
MAGV char(5) NOT NULL,
constraint PK_MONHOC_MAMH primary key (MAMH) )
create table DANGKY(
MASV char(5) NOT NULL,
MAMH char(5) NOT NULL,
KYHOC decimal NOT NULL,
DIEM decimal NOT NULL,
constraint PK_DANGKY_MASV_MAMH primary key
(MASV,MAMH,KYHOC),
constraint FK_DANGKY_MASV foreign key (MASV) references
SINHVIEN(MASV),
constraint FK_DANGKY_MAMH foreign key (MAMH) references
MONHOC(MAMH) )
(B1):
SELECT giangvien.magv, giangvien.hoten, monhoc.mamh, dangky.masv
FROM (giangvien INNER JOIN monhoc ON giangvien.magv = monhoc.magv)
INNER JOIN dangky ON monhoc.mamh = dangky.mamh
WHERE (((giangvien.hoten)="le tuan quang"));
(B2):
SELECT masv, hoten
FROM sinhvien
WHERE masv not in (select masv from dangky);
(C1):
UPDATE DANGKY SET DIEM = 5
WHERE DIEM=4 AND MAMH="MH1";
RELATIONSHIP
* Phần đại số quan hệ
BÀI (B):
Những sinh viên nào học các môn do giảng viên “Lê Tuấn Quang” dạy.
+ ∏
(MASV,TENGV)
σ
(TENGV=”LE TUAN QUANG”)
(Giangvien*dangky)
Chỉ ra tên của tất cả các sinh viên không đăng ký học môn nào
+ ∏
MSV
(SINHVIEN) - ∏
MSV
(DANGKY*SINHVIEN)
BÀI
Cho cở sỏ dữ liệu gồm các quan hệ sau:
Nhân viên(MANV,HOTEN,DIACHI,NGAYSINH);
Dự án(MADA,TENDA,CHUDAUTU,NGANSACH)
Làm việc(MANV,MADA,SOGIOLAMVIEC)
RELATIONSHIP
* Phần sql
A: SELECT DUAN.TENDA, DUAN.CHUDAUTU
FROM DUAN
WHERE (((DUAN.NGANSACH)>10 And (DUAN.NGANSCH)<25));
B: SELECT LAMVIEC.MANV, NHANVIEN.HOTEN,
NHANVIEN.NGAYSINH
FROM NHANVIEN INNER JOIN (DUAN INNER JOIN LAMVIEC ON
DUAN.MADA = LAMVIEC.MADA) ON NHANVIEN.MANV =
LAMVIEC.MANV
WHERE (((DUAN.CHUDAUTU)="VINACO"));
C: SELECT MANV, HOTEN
FROM NHANVIEN
WHERE MANV NOT IN(SELECT MANV FROM LAMVIEC);
D: SELECT NHANVIEN.HOTEN, LAMVIEC.MANV,
LAMVIEC.SOGIOLAMVIEC, LAMVIEC.MADA
FROM NHANVIEN INNER JOIN LAMVIEC ON
NHANVIEN.MANV=LAMVIEC.MANV
WHERE (((NHANVIEN.HOTEN)="NGUYEN VAN A"));
* đại số quan hệ
A . cho biết tên dự án đầu tư có ngân sách lớn hơn 10tr và nhỏ hơn 25tr
+ ∏
(TENDA,CHUDAUTU)
σ
(ngansach>=10 and ngansach< 25)
(DUAN)
B . cho biết những nhân viên đã làm cho dự án có tên là vinaco
+∏
(MANV,HOTEN,NGAYSINH)
σ
(TENDA=”VINACO”)
(LAMVIEC*DUAN*NHANVIEN)
C . cho biết nhũng nhân viên không tham gia vào dự án nào
∏
(MANV)
(LAMVIEC) – ∏
(MANV)
(DUAN*LAMVIEC)
D . đưa ra tổng số giờ làm việc của các nhan viên NGYÊN VĂN A tham gia
các dự án
∏
(MANV,TONGSOGIOLAMVIEC)
σ
(HOTEN =”NGUYỄN VĂN A”)
(NHANVIEN*LAMVIEC)