以下题目对于会SQL的技术人员来说是小菜一碟 麻烦路过的帮忙看看 本人的逻辑思维的确转不过来 听了老师
说 能明白一些 但是有很多都不太明白!
程序题
在名称为教学库的数据库中包含有学生,课程和选课表,他们的定义如下
学生(学生号char(7),姓名char(6),性别char(2),专业char(10),年级int )
课程(课程号char(4), 课程名char(10), 课程学分int )
选课(学生号char(7),课程号char(4), 成绩int )
在名称为图书库中包含有图书,读者,借书三个表,他们的定义分别为
图书(总编辑char(5) ,书名char(10) ,作者char(10),出版单位char(10),单位 numeric(9,2))
读者(借书证号char(3),单位char(8),姓名char(8) ,职称char(10)
借书(借书证号char(3), 总编辑char(5),借书日期datetime)
程序题查询如下
1.对选修了课程号为c001的学生成绩提高10%
此题本人做的答案请检查:updata 选课表 set 成绩=成绩*1.1 where 课程号='c001'
2.查询没有学生选修的课程名。
此题本人做的答案请检查:select 课程名 from 课程 where 课程名 not exists(select * from 选课表
where 选课表.课程号=课程表.课程号)
3.统计各出版社图书的最高价,最低价及册数,并按册数降序排列
此题本人做的答案请检查:select 出版单位,max(单价),min(单价),count(*) AS 册数 from 图书
group by 出版单位 order by 册数 desc
4.查询每个学生选修的门数及平均成绩。
此题本人做的答案请检查:select AVG(成绩),姓名 from 学生,选课 where 学生.学生号=选课.学生号
group by 姓名
5.查询2003年以前借书的读者借书证号,姓名和单位。
此题本人做的答案请检查:select 借书证号,姓名,单位 from 读者 where 借书日期<=2003 and 读者.借书
证号=借书.借书证号
6.查询电子系没有借书的读者姓名
此题本人做的答案请检查: select 姓名,职称 from 读者 where 职称='电子系' and 借书证号 NOT exists
(select 借书证号 from 借书 where 读者.借书证号=借书.借书证号)
此题我一直有一个疑惑 我目前查询电子系没有借书的读者姓名 没有借书 也就是借书证号为空或NULL 那
么读者也有一个借书证号 借书也有一个借书证号 2个是相对应的, 但是我没用到借书表 只有了读者表的借
书证号 需要在where语句后写入:借书证号=借书.借书证号 这个条件吗?
7.查询出至少有两名学生所选修的全部课程。
此题我做的不怎么好:select 姓名 from 学生 where 课程名 in (select 课程名,count(*) as 课程数
group by 姓名 having count(*)>=2
8,翻译题
create procedure xxk4
(
@a char(7). @b char(4), @c int
)
as
begin
update 选课
set 成绩=@c
where 学号=@a and 课程号=@b
该语句的功能是: 我只知道第一句 就是创建存储过程名为XXK4 下面那些都不知道了。。汗。。
求达人求教 最好解释一下错了哪题 谢谢啊 辛苦啊 打了那么多字!!!!!!