设有学生成绩表sc
① 设有以下3个基本表:学生S,成绩SC,课程G
1
insert into s(SNO,SNAME,SAGE) values('990750','钱江',18)
2
update SC set GRADE=null from SC
inner join G on SC.CNO=G.CNO
where CNAME='数学' and GRADE<60
3
select SNO,CNO from SC where GRADE is null
4
select SNO from SC
inner join G on SC.CNO=G.CNO
where TNAME='王老专师属'
② 设有一个教学数据库ecation,包括student、course和sc三个表
create table sc(
sno char(100),
cno char(100),
grade number
);
alter table sc add constraint pk_1 primary key(sno,cno)
alter table sc add constraint sno_1 foreign key(sno) references student(sno)
alter table sc add constraint cno_1 foreign key(cno) references course(cno)
select a.*,b.*,c.grade from student a, course b ,sc c
where a.sno=c.sno and b.cno=c.cno and a.name like'张%'
select a.*,b.*,c.grade from student a, course b ,sc c
where a.sno=c.sno and b.cno=c.cno and a.xi_name in('IS','EB')
select sex,sum(age)/count(*) from student a
group by sex
select a.Stu_no,a.name,b.course_name,c.grade from student a, course b ,sc c
where a.sno=c.sno and b.cno=c.cno
select a.stu_no,c.grade from student a, course b ,sc c
where a.sno=c.sno and b.cno=c.cno and b.cno='1'
order by c.grade desc
alter table student add(inyear char(4))
update sc set grade =60 where grade between 55 and 59
delete sc where sno='200910001'
insert student into
(sno,
name,
sex
)
values
('20110001',
'张小涛',
'男'
)
③ 有四张表:Student 学生表 ,Course 课程表 ,SC成绩表 ,Teacher 教师表,求SQL语句
select sc.* from sc,course where sc.课程号=course.课程号 and course.课程名='3-105' and sc.成绩 between 60 and 80;
select sc.* from sc where sc.成绩 in(85,56,88);
3. 这个有疑问
我的理解是,学生参加了多门考试,所有成回绩都在70-90之间的。答取这部分人的学号。
select 学号 from (select 学号,max(成绩) 最高分,min(成绩) 最低分 from sc group by 学号) a where a.最高分 < 90 and a.最低分 >70
④ 设有学生选课表SC(学号,课程号,成绩),用SQL命令检索
C1、C5在表中是两条记录哦
⑤ 设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩
以下图为例
学号 课号 成绩
X1 K1 90
X1 K2 90
X1 K3 90
X2 K1 90
X2 K2 90
X2 K3 90
X3 K1 90
X3 K3 90
则会发现 学号+课号 具有唯一性(键或码的充要条件)回,单独的学号或者课答号也不具有唯一性,所以不能单独作为键或码。 同时注意,图中成绩都为90分的话,那么成绩在该表讨论 键或码 的问题中是没有意义的。如果成绩改成排名的话,并且强制排名只能具有唯一性的话,排名就可以单独成为 键或码。
判断键或码的时候主要是看是否具有唯一性。
所以 C
⑥ SQL语句执行问题:有一张表sc如下:查询每位学生的最高成绩。
对于每个学号,不存在比这个学号的分数低的数据全部查出来。
反之就是得到每个学号最高的分数了。
另外,你也可以
select sno,max(grade) from sc group by sno
⑦ 设有学生课程表SC(学号,课程名,成绩)用SQL检索同时选修课程号为"C1"和"C5"的学生的学号的正确命令是
你那个是永远为假的,一个课程号怎么可能同时为2个值呢,可以这样写
SELECT 学号内
FROM SC
WHERE 课程容号 IN ('C1', 'C5')
GROUP BY 学号
HAVING COUNT(DISTINCT 课程号) = 2
或者
SELECT 学号
FROM SC t1
WHERE 课程号 = 'C1'
AND EXISTS (SELECT 1 FROM SC WHERE 学号 = t1.学号 AND 课程号 = 'C5')
⑧ 假设在教务管理系统数据库中有学生Student、课程关系Course、选修关系SC、试用关系代数表示下列查询。
从学生,当然1。选择姓名,成绩在那里(student.学生数=得分。学生证)和(版course.课程名称=得分。权课程名称)和(score.学期= '02-03/1')和( coourse。课程名=数据结构)
2。无法查询,因为没有老师的名字字段。
从学生,当然,得分3。选择名称,其中(student.学生数=得分。学生证)和(course.课程名称=得分。课程名称),并得分。成绩> =(选择
4。说每门课检查出那些谁得分最高等级的名称
5,从学生删除,成绩在那里的学生。学号=得分。学号和成绩。得分= 0
6。更新设置得分得分。得分=得分。分数*(1 +0.05),其中(course.课程名=得分。课程名称),当然,课程号= 02和(score.分数< AVG(score.分数))
⑨ 有四张表:Student 学生表 ,Course 课程表 ,SC成绩表 ,Teacher 教师表,求SQL语句
把表结构发来,我给你写
⑩ SQL语句的一道题 三个基本表:学生表(Student)、课程表(Course)、学生选课表(SC)
1. select * from SC
2. select Sname,Sage from Student where Sdept = '计算机'
3. select Sno,Cno,Grade from SC where Grade >= 70 and Grade <= 80
4. select Sname,Sage from Student where Sage between 18 and 20 and Ssex = '男'
5. select top 1 Grade from SC where Cno = 'C01'
6. select max(Sage),min(Sage) from Student
7. select Sdept,sum(Sno) from Student group by Sdept
8. select course.Cname,sum(sc.Sno),max(Grade) from SC
join studet on Student.Sno = SC.Sno
join Course on Course.Cno = SC.Cno
group by course.cname,max(grade)
9. select sum(Cno),avg(Grade) from SC
join Course on Course.Cno = SC.Cno
join Student on Student.Sno= SC.Sno
order by SC.Sno
10. select Stuent.Sno,Stuent.Sname,sum(Grade) A from SC
join Student on Student.Sno = SC.Sno
group by sc.Sno,student.Sname
having A > 200
11. select Student.Sname,Student.Sdept from Student
join Course on Course.Cno = SC.Cno
join SC on SC.Sno = Student.Sno
where SC.Cno = 'C02'
12. select Student.sname,course.cno,sc.grade from sc
join student on student.sno = sc.sno
join course on course.cno = sc.cno
where sc.grade >= 80
order by sc.grade desc
13. select cno,cname from
(
select course.cno,course.cname,sun(sno) from student
join course on course.cno = sc.cno
join sc on sc.sno = student.sno
group by cno,cname
having sun(sno) > 0
)
14. ① select student.sname,student.sdept from
(
select student.sname,student.sdept,course.cname from student
join sc on sc.sno = student.sno
join course on course.cno = sc.cno
where course.cname = 'C01'
)
② select student.sno,student.sname from
(
select student.sno,student.sname,student.sdept,sc.grade from sc
join student on student.sno = sc,sno
where student.sdept = '信息' and sc.grade >= 80
)
③ select top 1 student.sname from
(
select student.sname,student.sdept,sum(sc.grade) from sc
join student on student.sno = sc.sno
where student.sdept = '计算机'
group by student.sname,student.sdept
order by
)
15. delete from sc where grade < 50
16. update sc set grade += 5 from sc
join course on course.cno = sc.cn
join student on student.sno = sc.sno
where student.sno =
(
select student.sno from sc
join course on course.cno = sc.cno
where course.cname = 'c01'
)
17. update sc set grade += 10 from sc
join student on student.sno = sc.sno
where student.sno =
(
select student.sno from student
join sc on sc.sno = student.sno
join course on course.cno = sc.cno
where student.sdept = '计算机' and course.cname = '计算机文化基础'
)
18. create view [A] as
select student.sno,student.sname,student.sdept,course.cno,course.cname,sc.grade from sc
join student on student.sno = sc.sno
join course on course.cno = sc.cno
19. create view [A] as
select student.sno,avg(sc.grade) from sc
join student on student.sno = sc.sno
group by student.sno
20. create view [A] as
select student.sno,sum(sc.grade) from sc
join student on student.sno = sc.sno
group by student.sno
21. create index A on student(sname)
22. 不会