成都信息工程学院数据库复习资料数据库期末复习资料操作题原.docx

上传人:b****0 文档编号:17174015 上传时间:2023-07-22 格式:DOCX 页数:7 大小:17.63KB
下载 相关 举报
成都信息工程学院数据库复习资料数据库期末复习资料操作题原.docx_第1页
第1页 / 共7页
成都信息工程学院数据库复习资料数据库期末复习资料操作题原.docx_第2页
第2页 / 共7页
成都信息工程学院数据库复习资料数据库期末复习资料操作题原.docx_第3页
第3页 / 共7页
成都信息工程学院数据库复习资料数据库期末复习资料操作题原.docx_第4页
第4页 / 共7页
成都信息工程学院数据库复习资料数据库期末复习资料操作题原.docx_第5页
第5页 / 共7页
成都信息工程学院数据库复习资料数据库期末复习资料操作题原.docx_第6页
第6页 / 共7页
成都信息工程学院数据库复习资料数据库期末复习资料操作题原.docx_第7页
第7页 / 共7页
亲,该文档总共7页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

成都信息工程学院数据库复习资料数据库期末复习资料操作题原.docx

《成都信息工程学院数据库复习资料数据库期末复习资料操作题原.docx》由会员分享,可在线阅读,更多相关《成都信息工程学院数据库复习资料数据库期末复习资料操作题原.docx(7页珍藏版)》请在冰点文库上搜索。

成都信息工程学院数据库复习资料数据库期末复习资料操作题原.docx

成都信息工程学院数据库复习资料数据库期末复习资料操作题原

(成都信息工程学院数据库复习资料)数据库期末复习资料-操作题原

  where成绩.学号=@学号and总评成绩>=90

  end  

  if((selectconvert(decimal(5,2),avg(convert(decimal(5,2),总评成绩)))from成绩where学号=@学号)年级and年级=2008

  2、查询龙泉和航空港校区的班级个数。

  select所在地点,count(*)AS班数from班Groupby所在地点

  3、查询20XX级学生课程代码为1304的平均总评成绩、总评成绩的最高分和最低分。

  selectavg(总评成绩)as平均总评成绩,max(总评成绩)as最高分,min(总评成绩)as最低分from成绩where年级=20XXand课程代码=1304

  或

  selectavg(总评成绩),max(总评成绩),min(总评成绩)from成绩where年级=20XXand课程代码=1304

  4、查找20XX级课程1304总评成绩为100分的学生学号、姓名、性别、专业。

  select学号,姓名,性别,专业from学生where学号in(select学号from成绩where年级=20XXand总评成绩=100and课程代码=1304)

  或

  select学生.学号,姓名,性别,学生.专业from学生innerjoin成绩on学生.学号=成绩.学号where成绩.年级=20XXand总评成绩=100and课程代码=1304

  5、查找大气科学专业的学生学号、姓名、性别、年级、进校时间。

  select学号,姓名,性别,年级,进校时间from学生where专业=(select专业代码from专业where专业名称='大气科学')

  或

  select学号,姓名,性别,年级,进校时间from学生innerjoin专业on学生.专业=专业.专业代码where专业名称='大气科学

  6、查询学生学号、姓名、性别及所属班全名。

  select学号,姓名,性别,班全名from学生innerjoin班On学生.专业=班.所属专业and学生.年级=班.年级and学生.班序号=班.班序号

  7、查询总评成绩在50~60分之间的学生学号、姓名、性别、课程代码、总评成绩,并按学号的升序显示。

  select学生.学号,姓名,性别,课程代码,总评成绩from学生innerjoin成绩On学生.学号=成绩.学号where总评成绩>50and总评成绩=80

  10、将20XX级同学按照总评成绩的平均分降序输出。

  select学号,avg(总评成绩)as平均分from成绩where年级=20XXGroupby学号Orderbyavg(总评成绩)Desc

  11、查询20XX级课程代码为1304且平均成绩在80分以上的专业代码及平均成绩。

  select专业as专业代码,avg(总评成绩)as平均成绩from成绩where年级=20XXand课程代码=1304groupby专业havingavg(总评成绩)>=80

  12、查询学号为‘20XX092929’的学生的总评成绩比‘20XX024763’号学生的最高分数还要高的课程代码和总评成绩。

  select学号,课程代码,总评成绩from成绩where学号='20XX092929'and总评成绩>All(select总评成绩from成绩where学号='20XX024763')

  或

  select学号,课程代码,总评成绩from成绩where学号='20XX092929'and总评成绩>(selectmax(总评成绩)from成绩where学号='20XX024763')

  13、查询20XX级学生中各门课程的平均总评成绩情况,并按照平均总评成绩降序排列输出。

  select课程.课程代码,课程名称,平均成绩,选课人数from课程innerjoin(select课程代码,avg(总评成绩)as平均成绩,count(*)as选课人数from成绩where年级=20XXGroupby课程代码)ASAon课程.课程代码=A.课程代码Orderby平均成绩Desc

  14、查找并显示电子信息工程专业20XX级同学计算机文化基础课程的最高分、最低分、平均分。

  selectmax(总评成绩)as最高分,min(总评成绩)as最低分,avg(总评成绩)as平均分from成绩where年级=20XXand课程代码=(select课程代码from课程where课程名称='计算机文化基础')and专业=(select专业代码from专业where专业名称='电子信息工程')

  或

  selectmax(总评成绩)as最高分,min(总评成绩)as最低分,avg(总评成绩)as平均分from成绩innerjoin课程on成绩.课程代码=课程.课程代码where年级=20XXand课程名称='计算机文化基础'and专业=(select专业代码from专业where专业名称='电子信息工程')

  或

  selectmax(总评成绩)as最高分,min(总评成绩)as最低分,avg(总评成绩)as平均分from成绩innerjoin专业on成绩.专业=专业.专业代码where年级=20XXand课程代码=(select课程代码from课程where课程名称='计算机文化基础')and专业名称='电子信息工程'

  15、将成绩表中20XX级平均在85分以上的学生信息复制到表goodbaby。

  select学生.学号,姓名,学生.专业,A.平均成绩intogoodbabyfrom学生innerjoin(select学号,avg(总评成绩)as平均成绩from成绩where年级=20XXGroupby学号havingavg(总评成绩)>85)asAon学生.学号=A.学号

  16、将成绩表中20XX级平均总评成绩在70分以下且有3门(含3门)以上不及格的学生信息添加到badbaby中(学号,平均成绩,不及格门数)。

  select成绩.学号,count(*)as不及格门数,avg(总评成绩)AS平均成绩intobadbabyfrom成绩innerjoin(select学号from成绩where成绩.年级=20XXGroupby学号havingavg(总评成绩)=3或

  select成绩.学号,count(*)as不及格门数,avg(总评成绩)AS平均成绩from成绩innerjoin(select学号from成绩where总评成绩=3)ASAon成绩.学号=A.学号where成绩.年级=20XXGroupby成绩.学号havingavg(总评成绩)a.姓名

  方法二:

通过链接服务器来完成。

链接服务器设置如下图:

  设置完成后,再将“学生”表与链接服务器表内容按照要求比较,并将结果存入“学生注册信息对比”表中。

参考语句如下:

  select学生.学号,学生.姓名学生表姓名,a.姓名注册表姓名  

  into学生注册信息对比from学生,excel...注册信息$a

  where学生.学号=a.学号and学生.姓名a.姓名

  提示:

查询连接服务器数据表内容时,一定要将电子表格文件关闭。

  10、编写存储过程

  编写存储过程“学生成绩统计分析”,带一输入参数“@学号”,其开始代码严格如下:

  CREATEPROCEDURE学生成绩统计分析  @学号Char(10)  AS

  要求此存储过程实现的功能是:

根据输入参数“@学号”指定的学生,先计算该生的平均总评成绩(保留2位小数),即在程序中要考虑好变量@平均总评成绩的数据类型,然后:

(1)将该生的学习状况添加到表“学生学习状况”中(其xID列为自动赋值),“评价”列的取值为:

优秀、一般或较差,优秀的标准是平均总评成绩>=90,较差的标准是平均总评成绩=90的课程,并添加到表“优秀课程”表中(其kID列为自动赋值)。

往该表中添加记录的程序示例:

假定@学号中指定学生的@平均总评成绩为,现需将该生总评成绩在70~80间的课程添加到该表中

  INSERTINTO优秀课程(学号,课程名称,总评成绩)  SELECTC.学号,K.课程名称,C.总评成绩  FROM成绩C,课程K

  WHEREC.学号=@学号andC.总评成绩between70and80andK.课程代码=C.课程代码

  (3)若平均总评成绩在60分以下,则查询出该学生总评成绩=90then'优秀'whenconvert(decimal(5,2),avg(convert(decimal(5,2),总评成绩)))=90)begin  

  insertinto优秀课程(学号,课程名称,总评成绩)select成绩.学号,课程名称,总评成绩

  from成绩join课程on成绩.课程代码=课程.课程代码

  SET@s=@s*@n  SET@n=@n+1ENDSELECT@s,@n

  21、完成程序依次显示字母

  A~Z。

  declare@countint,@abcvarchar(100)set@count=0while@count=90then'A'  

  whenavg(总评成绩)>=80andavg(总评成绩)=70andavg(总评成绩)=60andavg(总评成绩)<70then'D'whenavg(总评成绩)<60then'E'end)

  as等级

  from成绩WHERE年级=20XXgroupby学号

  24、显示今天是第几季度,输出格式为“第一季度”、“第二季度”、“第三季度”、“第四季度”。

  declare@季度tinyint

  set@季度=datename(q,getdate)select  case@季度

  when1then'第一季度'  when2then'第二季度'  when3then'第三季度'  when4then'第四季度'End或select

  casedatename(q,getdate)  when1then'第一季度'  when2then'第二季度'  when3then'第三季度'  when4then'第四季度'End

  三、SQL语句组合题目参考:

  说明:

【此题也是20XX级在20XX年1月4日星期六考试原题出自这里面,是程序组合的原题,可以理解记忆】

  为了能使考试知识点更加全面,前4题基本围绕在多表查询中使用表达式、函数、多条件、排序等设计;后4题的知识点分布在分组统计、动作查询中使用子查询等)

  参考数据表结构:

教师(编号,姓名,出生日期,学历)课程(编号,名称,学分)工资(教师编号,日期,应发工资,扣款)授课安排(授课ID,教师编号,授课课程,教室),【授课ID】是自动增长字段,【教师编号】是参照【教师.编号】的外键,【授课课程】是参照【课程.编号】的外键。

带有下划线字段为表的主关键字

  1.查询年龄在35岁以下教授“数据库原理”的教师有几位。

  Selectcount(*)as人数from课程innerjoin授课安排

  on课程.编号=授课安排.授课课程innerjoin教师on教师.编号=授课安排.教师编号  wheredateadd(yy,35,出生日期)

  2.将“张晓辉”老师教授课程“数据库原理”的教室原来的“H1210”调整到“H3210”。

  Update授课安排set教室='H3210'

  3.

  4.

  5.

  6.

  7.

  8.

  From授课安排innerjoin课程On课程.编号=授课安排.授课课程Innerjoin教师on教师.编号=授课安排.教师编号  Where姓名=’张晓辉’and授课课程='数据库原理'

  and教室='H1210'

  查询教授数据库相关课程的教师信息,即课程名称含有“数据库”的课程,先按出生日期降序、再按学历升序显示教师编号、姓名、出生日期、学历,教师信息相同的只显示一次。

  Selectdistinct教师.编号,姓名,出生日期,学历from课程innerjoin授课安排On课程.编号=授课安排.授课课程  Innerjoin教师on教师.编号=授课安排.教师编号  Where名称like'%数据库%'  Orderby出生日期desc,学历asc

  查询教授“C语言程序设计”和“数据库原理”两门课程的教师工资信息,显示教师编号,日期,实发工资,其中实发工资为应发工资减去扣款。

  Select工资.教师编号,日期,应发工资-扣款(as)实发工资from工资

  innerjoin授课安排on工资.教师编号=授课安排.教师编号innerjoin课程on课程.编号=授课安排.授课课程where名称in('C语言程序设计','数据库原理')

  为“张晓辉”老师安排编码为“C105”课程的授课教室在“H1104”。

(名为“张晓辉”的教师只有一位)

  Insertinto授课安排select编号,'C105','H1104'

  from教师where姓名='张晓辉'

  查询每门课程的最小授课ID号,显示课程的编号、名称和最小授课ID。

  Select课程.编号,max(课程.名称)名称,min(授课ID)最小授课IDFrom课程innerjoin授课安排on课程.编号=授课安排.授课课程Groupby课程.编号

  为讲授课程编号为“C105”的教师制作本月工资表,【日期】取当前时间,【应发工资】和【扣款】取'20XX-01-01'对应“工资”表数据。

  Insertinto工资select工资.教师编号,getdate,应发工资,扣款From工资innerjoin授课安排On工资.教师编号=授课安排.教师编号  Where授课课程='C105'and日期='20XX-01-01'

  删除教授课程编号为“C101”的教师对应于20XX年1月1日的工资数据。

Deletefrom工资where日期='20XX-01-01'

  and教师编号in(select教师编号from授课安排where授课课程='C101')

  四、数据库设计要用到的命令:

  selectdistinct学号,姓名,性别,生源省into学生from学生及成绩$selectdistinct课程号,课程名称into课程from学生及成绩$select学号,课程号,总评成绩into成绩from学生及成绩$

  

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 面试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2