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

发布 2022-01-12 02:52:28 阅读 8610

where 成绩。学号 = 学号 and 总评成绩》=90

end if ((select convert(decimal(5,2), **g(convert(decimal(5,2), 总评成绩)))from 成绩 where 学号=@学号) 年级 and 年级=2008

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

select 所在地点,count(*)as 班数 from 班 group by 所在地点。

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

select **g(总评成绩) as 平均总评成绩, max(总评成绩) as 最高分, min(总评成绩) as 最低分 from 成绩 where 年级=20xx and 课程**=1304

或。select **g(总评成绩), max(总评成绩), min(总评成绩) from 成绩 where 年级=20xx and 课程**=1304

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

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

或。select 学生。学号,姓名,性别,学生。

专业 from 学生 inner join 成绩 on 学生。学号=成绩。学号 where 成绩。

年级=20xx and 总评成绩=100 and 课程**=1304

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

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

或。select 学号,姓名,性别,年级,进校时间 from 学生 inner join 专业 on 学生。专业=专业。***码 where 专业名称='大气科学。

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

select 学号,姓名,性别,班全名 from 学生 inner join 班 on 学生。专业=班。所属专业 and 学生。

年级=班。年级 and 学生。班序号=班。

班序号。

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

select 学生。学号,姓名,性别,课程**,总评成绩 from 学生 inner join 成绩 on 学生。学号=成绩。学号where 总评成绩》50 and 总评成绩 =80

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

select 学号,**g(总评成绩) as 平均分 from 成绩 where 年级=20xx group by 学号 order by **g(总评成绩) desc

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

select 专业 as ***码,**g(总评成绩) as 平均成绩 from 成绩 where 年级=20xx and 课程**=1304 group by 专业 h**ing **g(总评成绩)>=80

12、查询学号为‘20xx092929’的学生的总评成绩比‘20xx024763’号学生的最高分数还要高的课程**和总评成绩。

select 学号,课程**,总评成绩 from 成绩 where 学号='20xx092929' and 总评成绩》all (select 总评成绩 from 成绩 where 学号='20xx024763')

或。select 学号,课程**,总评成绩 from 成绩 where 学号='20xx092929' and 总评成绩》 (select max(总评成绩) from 成绩 where 学号='20xx024763')

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

select 课程。课程**,课程名称,平均成绩, 选课人数from 课程 inner join (select 课程**,**g(总评成绩) as 平均成绩,count(*)as 选课人数from 成绩 where 年级=20xx group by 课程**) as a on 课程。课程**=a.

课程**order by 平均成绩 desc

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

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

或。select max(总评成绩) as 最高分,min(总评成绩) as 最低分,**g(总评成绩) as 平均分 from 成绩 inner join 课程 on 成绩。课程**=课程。

课程** where 年级=20xx and 课程名称='计算机文化基础' and 专业=(select ***码 from 专业 where 专业名称='电子信息工程')

或。select max(总评成绩) as 最高分,min(总评成绩) as 最低分,**g(总评成绩) as 平均分 from 成绩 inner join 专业 on 成绩。专业=专业。

***码 where 年级=20xx and 课程**=(select 课程** from 课程 where 课程名称='计算机文化基础') and 专业名称='电子信息工程'

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

select 学生。学号,姓名,学生。专业,a.

平均成绩 into goodbaby from 学生 inner join (select 学号,**g(总评成绩) as 平均成绩 from 成绩 where 年级=20xx group by 学号h**ing **g(总评成绩)>85) as a on 学生。学号=a.学号。

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

select 成绩。学号,count(*)as 不及格门数,**g(总评成绩) as 平均成绩 into badbaby from 成绩 inner join (select 学号 from 成绩 where 成绩。年级=20xx group by 学号 h**ing **g(总评成绩)=3 或。

select 成绩。学号,count(*)as 不及格门数,**g(总评成绩) as 平均成绩 from 成绩 inner join (select 学号 from 成绩 where 总评成绩=3) as a on 成绩。学号=a.

学号 where 成绩。年级=20xx group by 成绩。学号 h**ing **g(总评成绩)a.

姓名。方法二:通过链接服务器来完成。链接服务器设置如下图:

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

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

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

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

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

10、编写存储过程。

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

create procedure 学生成绩统计分析 @学号 char(10) as

要求此存储过程实现的功能是:根据输入参数“@学号”指定的学生,先计算该生的平均总评成绩(保留2位小数),即在程序中要考虑好变量@平均总评成绩的数据类型,然后: (1)将该生的学习状况添加到表“学生学习状况”中(其xid列为自动赋值),“评价”列的取值为:

优秀、一般或较差,优秀的标准是平均总评成绩》=90,较差的标准是平均总评成绩=90的课程,并添加到表“优秀课程”表中(其kid列为自动赋值)。往该表中添加记录的程序示例:假定@学号中指定学生的@平均总评成绩为,现需将该生总评成绩在70~80间的课程添加到该表中。

insert into 优秀课程 (学号, 课程名称, 总评成绩) select c.学号, k.课程名称, c.总评成绩 from 成绩 c, 课程 k

where c.学号=@学号 and c.总评成绩 between 70 and 80 and k.课程**=c.课程**。

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

insert into 优秀课程(学号,课程名称,总评成绩) select 成绩。学号, 课程名称,总评成绩。

from 成绩 join 课程 on 成绩。课程**=课程。课程**。

set @s=@s*@n set @n=@n+1 end select @s,@n

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

a~z。declare @count int,@abc varchar(100) set @count=0 while @count=90 then 'a'

when **g(总评成绩)>=80 and **g(总评成绩)=70 and **g(总评成绩)=60 and **g(总评成绩)<70 then 'd' when **g(总评成绩)<60 then 'e' end)

as 等级。

from 成绩 where 年级=20xx group by 学号。

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

declare @季度 tinyint

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

when 1 then '第一季度' when 2 then '第二季度' when 3 then '第三季度' when 4 then '第四季度' end 或 select

case datename(q,getdate ) when 1 then '第一季度' when 2 then '第二季度' when 3 then '第三季度' when 4 then '第四季度' end

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

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

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

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

编号】的外键。 带有下划线字段为表的主关键字。

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

select count(*)as 人数 from 课程 inner join 授课安排。

on 课程。编号=授课安排。授课课程 inner join 教师 on 教师。

编号=授课安排。教师编号 where dateadd(yy,35,出生日期)

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

update 授课安排 set 教室='h3210'

from 授课安排 inner join 课程 on 课程。编号=授课安排。授课课程 inner join 教师 on 教师。

编号=授课安排。教师编号 where 姓名=’张晓辉’ and 授课课程='数据库原理'

and 教室 ='h1210'

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

select distinct 教师。编号,姓名,出生日期,学历 from 课程 inner join 授课安排 on 课程。编号=授课安排。

授课课程 inner join 教师 on 教师。编号 =授课安排。教师编号 where 名称 like '%数据库%' order by 出生日期 desc,学历 asc

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

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

inner join 授课安排 on 工资。教师编号 = 授课安排。教师编号 inner join 课程 on 课程。

编号 = 授课安排。授课课程 where 名称 in ('语言程序设计','数据库原理')

为“张晓辉”老师安排编码为“c105”课程的授课教室在“h1104”。(名为“张晓辉”的教师只有一位)

insert into 授课安排 select 编号,'c105','h1104'

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

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

select 课程。编号,max(课程。名称) 名称, min(授课id) 最小授课id from 课程 inner join 授课安排 on 课程。

编号=授课安排。授课课程 group by 课程。编号。

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

insert into 工资 select 工资。教师编号,getdate ,应发工资,扣款 from 工资 inner join 授课安排 on 工资。教师编号 = 授课安排。

教师编号 where 授课课程='c105'and 日期='20xx-01-01'

删除教授课程编号为“c101”的教师对应于20xx年1月1日的工资数据。 delete from 工资where 日期='20xx-01-01'

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

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

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

数据库原理 数据库管理系统复习

数据库 access 复习要点 数据库access基础 数据库管理系统 数据库原理 数据库原理及应用 以下为重点复习内容,请同学们务必背出下列重点概念,考试为闭卷笔试。复习教材 access数据库应用基础与实训教程 1.数据库管理系统的英文缩写 dbms 2.access 数据库文件的扩展名是什么?...

数据库原理 数据库管理系统复习

数据库 access 复习要点 数据库access基础 数据库管理系统 数据库原理 数据库原理及应用 以下为重点复习内容,请同学们务必背出下列重点概念,考试为闭卷笔试。复习教材 access数据库应用基础与实训教程 1.数据库管理系统的英文缩写 dbms 2.access 数据库文件的扩展名是什么?...

成都信息工程学院C语言作业答案

分类一。1.编写一程序实现以下功能。x x只考虑整数int且必须定义为int 但f x 完全可能超过int的表示范围 通过键盘输入 输入前给出提示pleaseinputx 然后计算并在屏幕上输出函数值。注意,图1中的括号不是 而是 编程可用素材 printf pleaseinputx 5x 27 x...