如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
四、编程题(每小题1分,共15分)可能用到的表结构如下:学生表(学号,姓名,性别,年龄,班级)课程表(课程号,课程名,学分)成绩表(学号,课程号,成绩)1.创建存储过程GetStudentByID,带有参数sno,根据学生的学号查询学生情况CreateprocedureGetStudendByIDsnovarchar(10)AsBeginSelect*from学生表where学号=snoend2.编写SQL语句,查询学生表中所有学生,要求第一按照班级升序排序,第二按照年龄降序排序select*from学生表orderby班级asc,年龄desc3.编写SQL语句,查询学生表中姓张的学生select*from学生表where姓名like'张%'4.编写SQL语句,查询学生表中男女生的人数各多少人select性别,count(*)from学生表groupby性别5.编写SQL语句,查询所有比“王平”年龄大的情况Select*from学生表where年龄>(select年龄from学生表where姓名=’王平’)6.编写SQL语句,在学生表和成绩表中查询学号,姓名,课程号,成绩SELECT学生表.学号,学生表.姓名,成绩表.课程号,成绩表.成绩FROM学生表INNERJOIN成绩表ON学生表.学号=成绩表.学号7.编写SQL语句,将(1022,张望,男,19,信息2)的学生插入到学生表中insertinto学生表(学号,姓名,性别,年龄,班级)values('1022','张望','男',19,'信息2')8.编写SQL语句,将学号为1022学生的姓名改为张旺update学生表set姓名='张旺'where学号='1022'9.编写SQL语句,删除没有选课的学生deletefrom学生表snonotin(selectsnofromsc)10.编写SQL语句,查询课程号9的先行课的情况select*from课程表where课程号=(select先行课号from课程表where课程号=9)11.编写关系代数,查询选修3号课程的学生学号∏学号(∫课程号=‘3’(选课表))12.编写关系代数,查询至少选修了一门直接先行课为5号课程的学生姓名参看课本60页13.编写SQL语句,创建学生表Createtable学生表(学号char(10),姓名varchar(20),性别char(2),年龄int,班级char(30))14.编写SQL语句,建立计算机1班男生的视图Createviewasselect*from学生表where班级=‘计算机1班’and性别=‘男’15.编写SQL语句,将对学生表的修改权限赋给用户U1Grantupdateontable学生表toU11.设有一个学生课程数据库,包括学生关系Student、课程关系Course、选修关系SC,图1所示:Student学号姓名性别年龄所在系SnoSnameSsexSageSdept95001李勇男20CS95002刘晨女19IS95003王敏女18MA95004张立男19ISCourse课程号课程名先行课学分CnoCnameCpnoCcredit1数据库542数学23信息系统144操作系统635数据结构746数据处理27PASCAL语言64SC学号课程号成绩SnoCnoGrade9500119295001285950013889500229095002380图1学生-课程数据库写出完成下列要求的SQL语句:1)查询所有年龄在20岁以下的学生姓名与年龄。1.selectSname,SagefromStudentwhereSage<20;或selectSname,SagefromStudentwherenotSage>=20;2)查询年龄不在20~23(包括20岁和23岁)之间的学生的姓名、系别和年龄。selectSname,Sdept,SagefromStudentwhereSagenotbetween20and23;3)查询每个学生及其选修课程的情况。selectStudent.*,SC.*fromStudent,SCwhereStudent.Sno=SC.Sno;2.把下面用关系表示的实体、实体与实体之间的联系,用E-R图表示出来,要求在图中表示联系的类型(1∶1、1∶n、m∶n)。实体1:学生(学号,姓名,性别,年龄)关键字为:学号实体2:课程(课程号,课程名,学分数)关键字为:课程号实体1与实体2的联系:学习(学号,课程号,成绩)关键字为