CÁC CÂU LỆNH TRONG QUẢN LÝ SINH VIÊN TRÊN SQL - 123doc

Tải bản đầy đủ (.docx) (27 trang)
  1. Trang chủ
  2. >>
  3. Công Nghệ Thông Tin
  4. >>
  5. Cơ sở dữ liệu
CÁC CÂU LỆNH TRONG QUẢN LÝ SINH VIÊN TRÊN SQL

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 (241.2 KB, 27 trang )

QUẢN LÝ SINH VIÊN/*=====================Create DataBase======================*/usemastergoifexists(selectnamefrom sysdatabases wherename='QuanLyDiemSV')dropDatabase QuanLyDiemSVgoCreateDatabase QuanLyDiemSVgouse QuanLyDiemSVgo/*=============DANH MUC KHOA==============*/Createtable DMKhoa(MaKhoa char(2)primarykey,TenKhoa nvarchar(30)notnull,)/*==============DANH MUC SINH VIEN============*/Createtable DMSV(MaSV char(3)notnullprimarykey,HoSV nvarchar(15)notnull,TenSV nvarchar(7)notnull,Phai nchar(7),NgaySinh datetimenotnull,NoiSinh nvarchar(20),MaKhoa char(2),HocBong float,)/*===================MON HOC========================*/createtable DMMH(MaMH char(2)notnull,TenMH nvarchar(25)notnull,SoTiet tinyintConstraint DMMH_MaMH_pk primarykey(MaMH))/*=====================KET QUA===================*/Createtable KetQua(MaSV char(3)notnull,MaMH char(2)notnull,LanThi tinyint,Diem decimal(4,2),Constraint KetQua_MaSV_MaMH_LanThi_pk primarykey(MaSV,MaMH,LanThi))/*==========================TAO KHOANGOAI==============================*/Altertable dmsvaddConstraint DMKhoa_MaKhoa_fk foreignkey(MaKhoa)References DMKhoa (MaKhoa)Altertable KetQuaaddconstraint KetQua_MaSV_fk foreignkey(MaSV)references DMSV (MaSV),constraint DMMH_MaMH_fk foreignkey(MaMH)references DMMH (MaMH)/*==================NHAP DU LIEU====================*//*==============NHAP DU LIEU DMMH=============*/Insertinto DMMH(MaMH,TenMH,SoTiet)values('01',N'Cơ Sở Dữ Liệu',45)Insertinto DMMH(MaMH,TenMH,SoTiet)values('02',N'Trí Tuệ Nhân Tạo',45)Insertinto DMMH(MaMH,TenMH,SoTiet)values('03',N'Truyền Tin',45)Insertinto DMMH(MaMH,TenMH,SoTiet)values('04',N'Đồ Họa',60)Insertinto DMMH(MaMH,TenMH,SoTiet)values('05',N'Văn Phạm',60)/*==============NHAP DU LIEU DMKHOA=============*/Insertinto DMKhoa(MaKhoa,TenKhoa)values('AV',N'Anh Văn')Insertinto DMKhoa(MaKhoa,TenKhoa)values('TH',N'Tin Học')Insertinto DMKhoa(MaKhoa,TenKhoa)values('TR',N'Triết')Insertinto DMKhoa(MaKhoa,TenKhoa)values('VL',N'Vật Lý')/*==============NHAP DU LIEU DMSV=============*/SETDATEFORMAT DMYGOInsertinto DMSVvalues('A01',N'Nguyễn Thị',N'Hải',N'Nữ','23/02/1990',N'HàNội','TH',130000)Insertinto DMSV(MaSV,HoSV,TenSV,Phai,NgaySinh,NoiSinh,MaKhoa,HocBong)values('A02',N'Trần Văn',N'Chính',N'Nam','24/12/1992',N'BìnhĐịnh','VL',150000)Insertinto DMSV(MaSV,HoSV,TenSV,Phai,NgaySinh,NoiSinh,MaKhoa,HocBong)values('A03',N'Lê Thu Bạch',N'Yến',N'Nữ','21/02/1990',N'TP Hồ ChíMinh','TH',170000)Insertinto DMSV(MaSV,HoSV,TenSV,Phai,NgaySinh,NoiSinh,MaKhoa,HocBong)values('A04',N'Trần Anh',N'Tuấn',N'Nam','20/12/1990',N'HàNội','AV',80000)Insertinto DMSV(MaSV,HoSV,TenSV,Phai,NgaySinh,NoiSinh,MaKhoa,HocBong)values('B01',N'Trần Thanh',N'Mai',N'Nữ','12/08/1991',N'HảiPhòng','TR',0)Insertinto DMSV(MaSV,HoSV,TenSV,Phai,NgaySinh,NoiSinh,MaKhoa,HocBong)values('B02',N'Trần Thị Thu',N'Thủy',N'Nữ','02/01/1991',N'TP Hồ ChíMinh','AV',0)/*==============NHAP DU LIEU BANG KET QUA=============*/Insertinto KetQua(MaSV,MaMH,LanThi,Diem)values('A01','01',1,3)Insertinto KetQua(MaSV,MaMH,LanThi,Diem)values('A01','01',2,6)Insertinto KetQua(MaSV,MaMH,LanThi,Diem)values('A01','02',2,6)Insertinto KetQua(MaSV,MaMH,LanThi,Diem)values('A01','03',1,5)Insertinto KetQua(MaSV,MaMH,LanThi,Diem)values('A02','01',1,4.5)Insertinto KetQua(MaSV,MaMH,LanThi,Diem)values('A02','01',2,7)Insertinto KetQua(MaSV,MaMH,LanThi,Diem)values('A02','03',1,10)Insertinto KetQua(MaSV,MaMH,LanThi,Diem)values('A02','05',1,9)Insertinto KetQua(MaSV,MaMH,LanThi,Diem)values('A03','01',1,2)Insertinto KetQua(MaSV,MaMH,LanThi,Diem)values('A03','01',2,5)Insertinto KetQua(MaSV,MaMH,LanThi,Diem)values('A03','03',1,2.5)Insertinto KetQua(MaSV,MaMH,LanThi,Diem)values('A03','03',2,4)Insertinto KetQua(MaSV,MaMH,LanThi,Diem)values('A04','05',2,10)Insertinto KetQua(MaSV,MaMH,LanThi,Diem)values('B01','01',1,7)Insertinto KetQua(MaSV,MaMH,LanThi,Diem)values('B01','03',1,2.5)Insertinto KetQua(MaSV,MaMH,LanThi,Diem)values('B01','03',2,5)Insertinto KetQua(MaSV,MaMH,LanThi,Diem)values('B02','02',1,6)Insertinto KetQua(MaSV,MaMH,LanThi,Diem)values('B02','04',1,10)/*===============CAP NHAT THONG TIN=================*/--câu 2-update dmmhset sotiet=45where mamh='05'--câu 3,4--update dmsvset tensv=N'Kỳ',phai ='Nam'where masv='b01'-------câu 5----update dmsvset ngaysinh='05/07/1990'where masv='b02'----------câu 6---------update dmsvset hocbong=hocbong+100000where makhoa='Av'-------câu 7---------deletefrom ketquawhere lanthi=2 and diem100000orderby makhoa desc--19. Liệt kê các sinh viên có học bổng từ 150,000 trở lên và sinh ởHà Nội, gồm các thông--tin: Họ tên sinh viên, Mã khoa, Nơi sinh, Học bổng.Select HoSV+' '+TenSV As N'Họ Tên Sinh Viên',MaKhoa As N'MãKhoa',NoiSinh As N'Nơi Sinh',HocBong AsN'Học Bổng'From DMSVWhere HocBong>=150000 and NoiSinh=N'Hà Nội'--20. Danh sách các sinh viên của khoa Anh văn và khoa Vật lý, gồm cácthông tin: Mã sinh--viên, Mã khoa, Phái.Select MaSV As N'Mã Sinh Viên',MaKhoa As N'Mã Khoa',Phai As N'Phái'From DMSVWhere MaKhoa='AV'or MaKhoa='VL'--21. Cho biết những sinh viên có ngày sinh từ ngày 01/01/1991 đếnngày 05/06/1992 gồm--các thông tin: Mã sinh viên, Ngày sinh, Nơi sinh, Học bổng.Select MaSV As N'Mã Sinh Viên',NgaySinh As N'NgàySinh',NoiSinh As N'Nơi Sinh',HocBong As N'Học Bổng'From DMSVWhere NgaySinh>='01/01/1991'and NgaySinh=80000 and HocBong30 and SoTiet20--28. Danh sách những sinh viên có tuổi từ 20 đến 25, thông tin gồm:Họ tên sinh viên, Tuổi,--Tên khoa.select hosv+' '+tensv 'Tên sinh viên','Tuổi'=year(getdate())year(ngaysinh),tenkhoa 'Tên khoa'from dmsv sv,dmkhoa khoawhere sv.makhoa=khoa.makhoa and(year(getdate())-year(ngaysinh)between20 and 25)--29. Danh sách sinh viên sinh vào mùa xuân năm 1990, gồm các thôngtin: Họ tên sinh viên,--Phái, Ngày sinh.select hosv+' '+tensv 'Tên sinh viên',phai 'Phái',ngaysinh 'Ngày sinh'from dmsvwhereyear(ngaysinh)=1990 and(month(ngaysinh)in(1,2,3))--between 1 and3)--30. Cho biết thông tin về mức học bổng của các sinh viên, gồm: Mãsinh viên, Phái, Mã--khoa, Mức học bổng. Trong đó, mức học bổng sẽ hiển thị là “Học bổngcao” nếu giá trị--của field học bổng lớn hơn 500,000 và ngược lại hiển thị là “Mứctrung bình”select masv'Mã sinh viên',phai'Phái',makhoa 'Mã khoa','Mức trungbình'=casewhen hocbong>500000 thenN'Học bổng cao'else N' Mức trungbình'endfrom dmsv--D. Truy vấn sử dụng hàm kết hợp: max, min, count, sum, avg và gom--nhóm--32. Cho biết tổng số sinh viên của toàn trườngselect'Tổng sinh viên toàn trường'=count(masv)from dmsv--33. Cho biết tổng sinh viên và tổng sinh viên nữ.--đây là cách viết gộp trong bảngselect'Tổng sinh viên'=count(masv),'Tổng sinh viênnữ'=sum(case phai when N'nữ'then 1 else 0 end)from dmsv-----------select'Tổng sinh viên'=count(masv),t.nu 'Tổng sinh viên nữ'from dmsv,(selectcount(masv)as'nu'from dmsvwhere phai=N'Nữ')as tgroupby t.nu--34. Cho biết tổng số sinh viên của từng khoa.select makhoa 'Mã khoa','Mã sinh viên'=count(masv)from dmsvgroupby makhoa--35. Cho biết số lượng sinh viên học từng môn.select tenmh'Tên môn học',count(distinct masv)'Mã sinh viên'from ketqua kq,dmmh mhwhere kq.mamh=mh.mamhgroupby tenmh--36. Cho biết số lượng môn học mà sinh viên đã học(tức tổng số mônhọc có torng bảng kq)selectcount(distinct mamh)'Tổng số môn học'from ketqua--37. Cho biết tổng số học bổng của mỗi khoa.select makhoa 'Mã khoa',sum(hocbong)'Tổng học bổng'from dmsvgroupby makhoa--38. Cho biết học bổng cao nhất của mỗi khoa.select makhoa 'Mã khoa',max(hocbong)'Học bổng cao nhất'from dmsvgroupby makhoa--39. Cho biết tổng số sinh viên nam và tổng số sinh viên nữ của mỗikhoa.select makhoa,'Tổng sinh viênnam'=sum(case phai when N'nam'then 1 else 0 end),'Tổng sinh viênnữ'=sum(case phai when N'nữ'then 1 else 0 end)from dmsvgroupby makhoa--40. Cho biết số lượng sinh viên theo từng độ tuổi.selectyear(getdate())-year(ngaysinh)'Tuổi',count(masv)'Số sinh viên'from dmsvgroupbyyear(getdate())-year(ngaysinh)--41. Cho biết những năm sinh nào có 2 sinh viên đang theo học tạitrường.selectyear(ngaysinh)'Năm',count(Masv)'Số sinh viên'from dmsvgroupbyyear(ngaysinh)havingcount(Masv)=2--42. Cho biết những nơi nào có hơn 2 sinh viên đang theo học tạitrường.select NoiSinh,count(Masv)'Số sinh viên'from dmsvgroupby NoiSinhhavingcount(Masv)>=2--43. Cho biết những môn nào có trên 3 sinh viên dự thi.select mamh 'Mã môn học',count(masv)'Số Sinh viên'from ketquagroupby mamhhavingcount(masv)>3--44. Cho biết những sinh viên thi lại trên 2 lần.select masv,mamh,count(lanthi)'so lan thi lai'from ketquagroupby masv,mamhhavingcount(lanthi)>2--45. Cho biết những sinh viên nam có điểm trung bình lần 1 trên 7.0select Hosv+' '+tensv 'Họ tên sinh viên',phai,lanthi,avg(Diem)'diemtrung binh'from ketqua kq,dmsv svwhere kq.masv=sv.masv and lanthi=1 and phai=N'nam'groupby lanthi,phai, Hosv+' '+tensvhavingavg(Diem)>7.0--46. Cho biết danh sách các sinh viên rớt trên 2 môn ở lần thi 1.select masv 'Mã sinh viên',count(mamh)'Số môn rớt'from ketquawhere lanthi=1 and diem=2--47. Cho biết danh sách những khoa có nhiều hơn 2 sinh viên namselect makhoa 'Mã khoa','Số sinh viên nam'=count(masv)from dmsvwhere phai=N'Nam'groupby makhoahavingcount(masv)>=2--48. Cho biết những khoa có 2 sinh đạt học bổng từ 200.000 đến300.000.select makhoa 'Mã khoa','Số sinh viên'=count(masv)from dmsvwhere hocbong between 200000 and 300000groupby makhoahavingcount(masv)>2--49. Cho biết số lượng sinh viên đậu và số lượng sinh viên rớt củatừng môn trong lần thi 1.--làm từng bảngselect tenmh,'Số sinh viên Đậu'=count(masv)from ketqua kq,dmmh mhwhere kq.mamh=mh.mamh and lanthi=1 and diem>=5groupby tenmhselect tenmh,'Số sinh viên Rớt'=count(masv)from ketqua kq,dmmh mhwhere kq.mamh=mh.mamh and lanthi=1 and diem=5 then 1 else 0 end),'Số sinh viênRớt'=sum(casewhen diem=all(selectcount(masv)from dmsvgroupby makhoa)--cach 2:select tenkhoafrom dmsv sv,dmkhoa khwhere sv.makhoa=kh.makhoagroupby tenkhoahavingcount(tenkhoa)=(selectmax(t.tong)from(selectcount(masv)as tongfrom dmsvgroupby makhoa)as t)--55. Cho biết khoa nào có đông nữ nhất.select tenkhoa 'Tên khoa'from dmsv sv,dmkhoa khwhere sv.makhoa=kh.makhoa and phai=N'nữ'groupby tenkhoahavingcount(tenkhoa)>=all(selectcount(masv)from dmsvwhere phai=N'nữ'groupby makhoa)--56. Cho biết môn nào có nhiều sinh viên rớt lần 1 nhiều nhất.select mamhfrom ketquawhere lanthi=1 and diem=all(selectcount(diem)from ketquawhere lanthi=1 and diem(select diemfrom ketqua kq, dmsv svwhere sv.masv=kq.masv and mamh='05'and makhoa='av')--G. Truy vấn con trả về nhiều giá trị, sử dụng lượng từ all, any,union, top.--58. Cho biết sinh viên có nơi sinh cùng với Hải.select masv,hosv+' '+tensvfrom dmsvwhere noisinh=(select noisinhfrom dmsvwhere tensv=N'hải')--59. Cho biết những sinh viên nào có học bổng lớn hơn tất cả học bổngcủasinh viên thuộc khoa anh vănselect masvfrom dmsvwhere hocbong>=all(select hocbong from dmsv where makhoa='av')--60. Cho biết những sinh viên có học bổng lớn hơn bất kỳ học bổng củasinh viên học khóa anh vănselect masv,hocbongfrom dmsvwhere hocbong>=any(select hocbong from dmsv where makhoa='av')--61. Cho biết sinh viên nào có điểm thi môn cơ sở dữ liệu lần 2 lớnhơn tất cả điểm thi lần 1--môn cơ sở dữ liệu của những sinh viên khác.select masvfrom ketquawhere mamh='01'and lanthi=2 and diem>=all(select diem from ketqua where mamh='01'and lanthi=1)--62. Cho biết những sinh viên đạt điểm cao nhất trong từng môn.select masv,ketqua.mamh,diemfrom ketqua,(select mamh,max(diem)as maxdiemfrom ketquagroupby mamh)awhere ketqua.mamh=a.mamh and diem=a.maxdiem--63. Cho biết những khoa không có sinh viên học.select*from dmkhoawherenotexists(selectdistinct makhoafrom ketqua,dmsv where ketqua.masv=dmsv.masv and makhoa=dmkhoa.makhoa)--64. Cho biết sinh viên chưa thi môn cơ sở dữ liệu.select*from dmsvwherenotexists(selectdistinct*from ketquawhere mamh ='01'and masv=dmsv.masv)--65. Cho biết sinh viên nào không thi lần 1 mà có dự thi lần 2.select masvfrom ketqua kqwhere lanthi=2 andnotexists(select*from ketquawhere lanthi=1 and masv=kq.masv)--66. Cho biết môn nào không có sinh viên khoa anh văn học.select tenmhfrom dmmhwherenotexists(select mamhfrom ketqua kq,dmsv svwhere sv.masv=kq.masv and sv.makhoa='av'and dmmh.mamh=mamh)--67. Cho biết những sinh viên khoa anh văn chưa học môn văn phạm.Select MaSVFrom DMSv dmsvWhere MaKhoa='AV'AndNotExists(Select*From KetQuaWhere MaMH='05'And MaSV=dmsv.MaSV)--68. Cho biết những sinh viên không rớt môn nào.Select MaSVFrom DMSV dmsvWhereNotExists(Select*From KetQuaWhere Diem0 AndNotExists(Select*From KetQuaWhere Diem0GroupBy MaKhoaHavingcount(MaSV)>=All(Selectcount(MaSV)From DMSvwhere hocbong>0GroupBy MaKhoa)UNIONSelect MaKhoa,count(MaSV)'So Luong SV'From DMSVWhere HocBong>0GroupBy MaKhoaHavingcount(MaSV)0GroupBy MaKhoa)--71. Cho biết 3 sinh viên có học nhiều môn nhất.Selecttop 3 MaSV,Count(Distinct MaMH)'Số môn học'From KetQuaGroupBy MaSVHavingCount(Distinct MaMH)>=All(Selectcount(distinct MaMH)From KetQuaGroupBy MaSV)/*==========================H. Truy vấn dùng phép chia=========================*/--72. Cho biết những môn được tất cả các sinh viên theo học.Select MaMHFrom KetQuaGroupBy MaMHHavingcount(distinct MaSV)=(Selectcount(MaSV)From DMSv)--73. Cho biết những sinh viên học những môn giống sinh viên có mã sốA02 học.Selectdistinct MaSVFrom KetQua kqWhereExists(Selectdistinct MaMHFrom KetQuaWhere MaSV='A02'and MaMH=kq.MaMH)--74.Cho biết những sinh viên học những môn bằng đúng những môn màsinh viên A02 học.Select TenSVFrom KetQua kq,DMSv dmsv,(Select MaSV,MaMH,count(distinct MaMH)SoMonFrom KetQuaWhere MaSV='A02'GroupBy MaSV,MaMH)aWhere kq.MaSV=dmsv.MaSV and kq.MaMH=a.MaMH and kq.MaSV a .MaSVGroupBy TenSVHavingcount(distinct kq.MaMH)=(Selectcount(distinct MaMH)From KetQuaWhere MaSV='A02')Select dmsv.MaSVFrom KetQua kq, DMSv dmsvWhere kq.MaSV=dmsv.MaSV and MaMH=(Selectdistinct MaMHFrom KetQuaWhere MaSV='A02'and MaMH=kq.MaMH)and dmsv.MaSV NotLike'A02'GroupBy dmsv.MaSVHavingcount(distinct MaMH)=(Selectcount(distinct MaMH)From KetQuaWhere MaSV='A02')--75. Tạo một bảng mới tên sinhvien-ketqua: gồm: MASV, HoSV, TenSV,SoMonHoc. Sau--đó Thêm dữ liệu vào bảng này dựa vào dữ liệu đã có.CreateTable SinhVien_KetQua(MaSV char(3)notnull,HoSV nvarchar(15)notnull,TenSV nvarchar(7)notnull,SoMonHoc tinyint)InsertInto SinhVien_KetQuaSelect dmsv.MaSV,HoSV,TenSV,count(distinct MaMH)From DMSV dmsv,KetQua kqWhere dmsv.MaSV=kq.MaSVGroupBy dmsv.MaSV,HoSV,TenSV--76. Thêm vào bảng khoa cột Siso, cập nhật sỉ số vào khoa từ dữ liệusinh viên.goaltertable dmkhoaadd siso tinyintgoupdate dmkhoaset siso=(selectcount(masv)from dmsvwhere makhoa='av'groupby(makhoa))where makhoa='av'update dmkhoaset siso=(selectcount(masv)from dmsvwhere makhoa='TH'groupby(makhoa))where makhoa='Th'update dmkhoaset siso=(selectcount(masv)from dmsvwhere makhoa='Tr'groupby(makhoa))where makhoa='Tr'update dmkhoaset siso=(selectcount(masv)from dmsvwhere makhoa='vl'groupby(makhoa))where makhoa='vl'--77. Tăng thêm 1 điểm cho các sinh viên vớt lần 2. Nhưng chỉ tăng tốiđa là 5 điểmupdate ketquaset diem=diem+1where lanthi=2 and diem+1=6.5)--79. Thiết lập học bổng bằng 0 cho những sinh viên thi hai môn rốt ởlần 1update dmsvset hocbong=0where masv in(select masvfrom ketquawhere lanthi=1 and diem=5--83. Danh sách sinh viên học môn văn phạm và môn cơ sở dữ liệucreateview cau83asselect*from dmsvwhere masv in(selectdistinct ketqua.masvfrom ketqua,dmsvwhere dmsv.masv=ketqua.masv and(mamh='01'or mamh='05'))dropview cau83--84. Trong mỗi sinh viên cho biết môn có điểm thi lớn nhất. Thông tingồm: mã sinh viên,--tên sinh viên, tên môn, điểm.createview cau84asselectdistinct dmsv.masv,tensv,tenmh,max(diem)diemfrom dmsv,ketqua,dmmhwhere dmsv.masv=ketqua.masv and dmmh.mamh=ketqua.mamhgroupby dmsv.masv,tensv,tenmhselect*from cau84--85. Danh sách sinh viên: Không rớt lần 1 hoặc ,Không học môn vănphạmcreateview cau85asselect*from dmsvwhere masv in(select masvfrom ketquawhere(lanthi=1 and diem =all(selectcount(masv)from dmsvwhere phai=N'nữ'groupby makhoa))use mastergoif exists (select name from sys.databases where name=N'Quanlysinhvien')drop database Quanlysinhviengocreate database Quanlysinhvienuse Quanlysinhviengocreate table Sinhvien(Masv int not null primary key identity,Tensv nvarchar(50) not null,Gioitinh nvarchar(5),Ngaysinh date,Que nvarchar(50),Lop nvarchar(5))create table Monhoc(Mamh int not null primary key identity,Tenmh nvarchar(50),DVHT int)create table Ketqua(Masv int,Mamh int,Diem int,constraint check_Diem check (Diem between 0 and 10),constraint primary_key primary key (Masv, Mamh),constraint khoaNgoai_SV_KQ foreign key (Masv) references Sinhvien (Masv),constraint khoaNgoai_MH_KQ foreign key (Mamh) references Monhoc (Mamh))insert Sinhvienvalues(N'Phạm Trung Tính', 'Nam', '03/30/1996', N'Quảng Ninh', 'L01'),(N'Trần Bảo Trọng', 'Nam', '12/14/1995', N'Hà Giang', 'L02'),(N'Lê Thùy Dung', N'Nữ', '05/12/1997', N'Hà Nội', 'L03'),(N'Lê Trường An', 'Nam', '11/20/1995', N'Ninh Bình', 'L04'),(N'Phạm Thị Hương Giang', N'Nữ', '2/21/1999', N'Hòa Bình', 'L02'),(N'Đoàn Duy Thức', 'Nam', '4/12/1994', N'Hà Nội', 'L01'),(N'Dương Tuấn Thông', 'Nam', '4/12/1991', N'Nam Định', 'L03'),(N'Lê Thành Đạt', 'Nam', '4/15/1993', N'Phú Thọ', 'L04')insert Monhocvalues(N'Toán cao cấp', 3),(N'Mạng máy tính', 3),(N'Tin học đại cương', 4),(N'Hệ quản trị cơ sở dữ liệu', 2),(N'Cơ sở dữ liệu', 2)insert Ketquavalues(1,1,8),(1,2,5),(2,2,1),(3,2,7),(4,2,3),(1,3,7),(2,1,9),(4,1,2),(3,1,4),(2,3,2),(5,1,4),(6,1,2),(6,3,9),(6,2,7),(6,5,10)select * from Sinhvienselect * from Monhocselect * from Ketqua/*Câu 1: Cho biết mã số, tên, điểm thi tất cả các môn của sv: abc*/select mh.Mamh, Tenmh, Diemfrom Sinhvien sv, Monhoc mh, Ketqua kqwhere sv.Masv = kq.Masv and mh.Mamh = kq.Mamh and Tensv = N'Phạm Trung Tính'/*câu 2: Cho biết mã số, tên môn và điểm thi ở những môn mà sinh viên abc phải thi lại(điểm(select MIN(Diem) from Ketqua where Mamh = 1)/*câu 6: Cho biết mã số và tên những sinh viên có điểm thi môn 1 lớn hơn điểm thi môn1 của sinh viên 3*/select sv.Masv, Tensvfrom Sinhvien sv, Monhoc mh, Ketqua kqwhere sv.Masv = kq.Masv and mh.Mamh = kq.Mamh and mh.Mamh = 1 and Diem >(select Diem from Ketqua where Mamh = 1 and Masv = 3)/*câu 7: Cho biết số sinh viên phải thi lại môn Cơ sở dữ liệu */select COUNT(*) as N'Số sv thi lại'from Monhoc mh, Ketqua kqwhere mh.Mamh = kq.Mamh and Tenmh = N'Mạng máy tính' and Diem < 5/*câu 8: Đối với mỗi môn, cho biết tên môn và số sinh viên phải thi lại môn đó mà sốsinh viên thi lại >=2*/select Tenmh, COUNT(Diem) as N'Số sv thi lại'from Monhoc mh, Ketqua kqwhere mh.Mamh = kq.Mamh and Diem < 5group by Tenmhhaving COUNT(Diem) > 2/*Câu 9: Cho biết điểm cao nhất môn 1 mà các sinh viên đạt được*/select MAX(Diem) as N'Điểm cao nhất môn 1'from Ketquawhere Mamh = 1/*Câu 10: Cho biết mã số, tên và lớp của sinh viên đạt điểm cao nhất môn Lý thuyết cơsở dữ liệu */select sv.Masv, Tensv, Lopfrom Sinhvien sv, Monhoc mh, Ketqua kq, (select MAX(Diem) as maxDiem fromMonhoc mh, Ketqua kq where mh.Mamh = kq.Mamh and Tenmh = N'Cơ sở dữ liệu') awhere sv.Masv = kq.Masv and mh.Mamh = kq.Mamh and Tenmh = N'Cơ sở dữ liệu'and Diem = a.maxDiem/*câu 11: Cho biết sinh viên có điểm trung bình chung >=5 */select Tensv, AVG(CAST(Diem as float)) as Diemtbfrom Sinhvien sv, Ketqua kqwhere sv.Masv = kq.Masvgroup by Tensvhaving AVG(CAST(Diem as float)) >= 5/* Lệnh lấy điểm từng môn của sv để check lại điểm */select Tensv, Tenmh, Diemfrom Sinhvien sv, Monhoc mh, Ketqua kqwhere sv.Masv = kq.Masv and mh.Mamh = kq.Mamh/*Câu 12: Với mỗi sinh viên cho biết mã số, tên và điểm trung bình chung học tập củasinh viên đó*/select sv.Masv, Tensv, AVG(CAST(Diem as float)) as Diemtbfrom Sinhvien sv, Ketqua kqwhere sv.Masv = kq.Masvgroup by sv.Masv, Tensv/* câu 13: Đối với mỗi lớp, lập bảng điểm gồm mã số, tên sinh viên và điểm trung bìnhchung học tập.Sắp xếp danh sách theo chiều giảm dần của điểm trung bình chung họctập và chiều tăng dần của họ tên*/select sv.Masv, Tensv, AVG(CAST(Diem as float)) as Diemtbfrom Sinhvien sv, Ketqua kqwhere sv.Masv = kq.Masv and Lop = 'L03' /* Lớp khác thì đổi tên lớp */group by sv.Masv, Tensvorder by Diemtb desc, Tensv asc/* Câu 14: Cho biết mã số và số điểm lớn hơn 7 của những sinh viên có hơn một nửa sốđiểm là >=7 *//* Câu 15: Cho biết mã số và tên nhưng sinh viên có hơn một nửa số điểm >=5*/select sv.Masv, Tensvfrom Sinhvien sv, Ketqua kqwhere sv.Masv = kq.Masv and Diem >= 5having COUNT(Diem) > 50 PERCENT */ chua lam duoc *//* Câu 16: Đối với mỗi lớp, cho biết mã số và tên nhưng sinh viên phải thi lại từ 2 môntrở lên*/select sv.Masv, Tensvfrom Sinhvien sv, Ketqua kqwhere sv.Masv = kq.Masv and Diem < 5 and Lop = 'L04' /* Lớp khác thì đổi tên lớp */group by sv.Masv, Tensvhaving COUNT(Diem) > 2/* Câu 17: Cho biết mã số và tên những môn học mà tất cả các sinh viên đều đạt điểm>=5*/select mh.Mamh, Tenmhfrom Monhoc mh, Ketqua kqwhere mh.Mamh = kq.Mamh and Diem >= 5/* chua lam duoc*//* Câu 18: Cho biết mã số và tên của sinh viên có điểm trung bình chung học tập >=8 */select sv.Masv, Tensvfrom Sinhvien sv, Ketqua kqwhere sv.Masv = kq.Masvgroup by sv.Masv, Tensvhaving AVG(CAST(Diem as float)) >= 8/* Câu 19: Cho biết mã số và tên những sinh viên có điểm trung bình chung học tập caonhất*/select top (1) sv.Masv, Tensv, AVG(CAST(Diem as float)) as Diemtbfrom Sinhvien sv, Ketqua kqwhere sv.Masv = kq.Masvgroup by sv.Masv, Tensvorder by Diemtb descselect sv.Masv, Tensvfrom Sinhvien sv, Ketqua kqwhere sv.Masv = kq.Masv and sv.Masv = (select sv.Masv, Tensv, MAX(a.Diemtb) fromSinhvien sv, (select AVG(CAST(Diem as float)) as Diemtbfrom Sinhvien sv, Ketquakq

Tài liệu liên quan

  • Phân hệ quản lý sinh viên Phân hệ quản lý sinh viên
    • 14
    • 355
    • 0
  • TRUY VẤN CSDL, QUẢN LÝ  SINH VIÊN CÓ SỔHỘ NGHÈO ĐƯỢC TÀI TRỢ TRUY VẤN CSDL, QUẢN LÝ SINH VIÊN CÓ SỔHỘ NGHÈO ĐƯỢC TÀI TRỢ
    • 20
    • 629
    • 4
  • Hệ thống quản lý sinh viên Hệ thống quản lý sinh viên
    • 21
    • 884
    • 18
  • Lập trình Visual Basic.Net 2005 Đề tài : Quản lý Sinh Viên docx Lập trình Visual Basic.Net 2005 Đề tài : Quản lý Sinh Viên docx
    • 5
    • 874
    • 15
  • quản lý sinh viên quản lý sinh viên
    • 18
    • 599
    • 0
  • quản lý sinh viên bằng foxpro quản lý sinh viên bằng foxpro
    • 25
    • 712
    • 0
  • Các câu lệnh trong lập trình c trên win pptx Các câu lệnh trong lập trình c trên win pptx
    • 25
    • 574
    • 0
  • XÂY DỰNG PHẦN MỀM THEO DÕI VÀ QUẢN LÝ SINH VIÊN CHO TRƯỜNG CAO ĐẲNG NGHỀ CƠ GIỚI NINH BÌNH XÂY DỰNG PHẦN MỀM THEO DÕI VÀ QUẢN LÝ SINH VIÊN CHO TRƯỜNG CAO ĐẲNG NGHỀ CƠ GIỚI NINH BÌNH
    • 69
    • 555
    • 2
  • BÁO CÁO XÂY DỰNG ỨNG DỤNG QUẢN LÝ SINH VIÊN TRÊN  THIẾT BỊ DI ĐỘNG BÁO CÁO XÂY DỰNG ỨNG DỤNG QUẢN LÝ SINH VIÊN TRÊN THIẾT BỊ DI ĐỘNG
    • 60
    • 1
    • 4
  • bài tập lớn công nghệ phần mềm thiết kế phần mềm quản lý sinh viên trường vnit bài tập lớn công nghệ phần mềm thiết kế phần mềm quản lý sinh viên trường vnit
    • 212
    • 926
    • 5

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

(52.23 KB - 27 trang) - CÁC CÂU LỆNH TRONG QUẢN LÝ SINH VIÊN TRÊN SQL Tải bản đầy đủ ngay ×

Từ khóa » Tính điểm Trung Bình Sinh Viên Sql