数据库实验二Word下载.docx
《数据库实验二Word下载.docx》由会员分享,可在线阅读,更多相关《数据库实验二Word下载.docx(10页珍藏版)》请在冰豆网上搜索。
课程名称
数据库系统
课程代码
0668026
实验时间
实验地点
7#219
批改意见
成绩
教师签字:
1.实验目的
1)熟悉各数据库的交互式SQL工具;
2)熟悉通过SQL语言对数据库进行操作
3)熟悉通过SQL语言对数据进行控制(授权和权力回收)
2.实验工具
MSSQLserver
3.实验要求
(1)将学习了数据库课程的学生成绩加5分。
updateSC
SETGrade=Grade+5
WHERECno=
(SELECTCno
FROMCourse
WHERECname='
数据库'
);
(2)将计算机系学习了2号课程的学生成绩置0。
UPDATESC
SETGrade=0
WHERESC.Cno='
2'
AND
SnoIN(selectSno
fromStudent
WHERESdept='
CS'
(3)将李勇的数据库成绩改为85。
SETGrade=85
WHERESnoin(selectSno
WHERESname='
李勇'
)
andCnoin(selectCno
fromCourse
);
?
(4)将选修了2号课程且成绩为空的选课记录删除。
delete
fromSC
whereCno='
andGrade=NULL;
(5)从课程表中删除在选课表中没有选课记录的课程记录。
delete
fromCourse
whereCnonotin(selectcno
fromSC)
(6)删除计算机系学生选修了数据库课程的选课记录。
fromSC
whereSnoin(selectSno
fromStudent
whereSdept='
)
and
Cnoin(selectCno
fromCourse
whereCname='
(7)求各系的系名及男女生人数并将结果保存到另一个表中。
createtableexcel1
(Sdeptchar(15),
Ssexchar
(2),
Count1smallint)
insertintoexcel1(Sdept,Ssex,Count1)
selectSdept,Ssex,
count(Sno)
fromstudent
groupbySdept,Ssex;
(8)将平均成绩80分以上的学生的学号,选学的课程数和平均成绩保存到另一个表中。
createtableexcel2
(Snochar(10),
Course_countsmallint,
avgefloat)
insertintoexcel2(Sno,course_count,avge)
selectSno,
count(cno),
avg(grade)
fromscscx
groupbysno
havingavg(grade)>
=80;
(9)创建一个视图,查询没有选修课程的学生学号、姓名和所在系,并利用该视图查询所有没有选修课程的学生信息。
createviewexcel3
as
selectsno,sname,sdept
fromstudent
wheresnonotin(select
distinctSno
fromSC);
(10)创建一个给出学生的姓名、课程名和成绩的视图,并利用该视图查询某个学生学习的课程名和成绩。
createviewexcel4
selectsname,cname,grade
fromStudent,Course,SC
whereStudent.Sno=SC.Sno
AND
SC.Cno=Course.Cno
selectcname,gradefromexcel4
wheresname='
张立'
(11)创建一个视图,求各门课程的课程号、选课人数、平均分、最高分,并利用该视图查询1号课程的选课人数、平均分、最高分。
createviewexcel5
as
selectcno,COUNT(sno)count1,AVG(grade)avge,MAX(grade)max1
groupbyCno
selectcount1,avge,max1fromexcel5
wherecno='
1'
(12)创建一个视图,求选修了9号课程且成绩高于该门课程平均分的学生学号和成绩。
createviewexcel6(Sno,Grade)
selectSno,Grade
9'
grade>
(selectAVG(Grade)
fromSC
whereCno='
(13)创建用户user1,将学生表的select权限赋给用户user1,然后以user1登录,检查权限情况。
(14)收回用户user1的对学生表的select权限,然后以user1登录,检查权限情况。