Tải bản đầy đủ (.docx) (7 trang)

bài tập về môn cơ sở dữ liệu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (218.85 KB, 7 trang )

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)

×