4、PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[SC] WITH CHECK ADD CONSTRAINT [FK_SC_Courses]
FOREIGN KEY([CNO])
REFERENCES [dbo]。[Courses] ([CNO])
GO
ALTER TABLE [dbo].[SC] CHECK CONSTRAINT [FK_SC_Courses]
GO
ALTER TABLE [dbo].[SC] WITH CHECK ADD CONSTRAI
5、NT [FK_SC_Students] FOREIGN KEY([SNO])
REFERENCES [dbo].[Students] ([SNO])
GO
ALTER TABLE [dbo].[SC] CHECK CONSTRAINT [FK_SC_Students]
2.完成如下的查询要求及更新的要求。
(1)查询身高大于1。80m的男生的学号和姓名;
答:select SNO,SNAME from Students where HEIGHT>1。8
(2) 查询计算机系秋季所开课程的课程号和学分数;
答:select CNO,CREDIT from Cou
6、rses where SEMESTER=’秋季’
(3) 查询选修计算机系秋季所开课程的男生的姓名、课程号、学分数、成绩;
答:select s。SNAME,SC。CNO,c。CREDIT,SC.GRADE from students s
inner join SC on sc.SNO=s。SNO
inner join Courses c on sc.CNO=c。CNO
(4) 查询至少选修一门电机系课程的女生的姓名(假设电机系课程的课程号以EE开头);
答:select distinct s.sname from Students s,sc where s。sno=sc
7、sno and s.sex=’女' and sc。cno like ’EE%’
(5) 查询每位学生已选修课程的门数和总平均成绩;
答:select count(c.CNO) as 课程门数,avg(SC。GRADE) as 总平均成绩from students s
inner join SC on sc。SNO=s.SNO
inner join Courses c on sc.CNO=c.CNO group by s。SNO
(6) 查询每门课程选课的学生人数,最高成绩,最低成绩和平均成绩;
答:SELECT CNAME,COUNT,MAX〈GRADE>
8、MIN〈GRADE〉,AVG〈GRADE>
FROM STUDENTS NATURAL JOIN SC NATURAL JOIN COURSES
GROUP BY CNAME;
(7) 查询所有课程的成绩都在80分以上的学生的姓名、学号、且按学号升序排列;
答:SELECT SNAME,SNO
FROM STUDENTS NATURAL JOIN
9、分数;
答:SELECT SNAME COURSES。CNO,CREDIT
FROM STUDENTS,COURSES,SC
WHERE STUDENTS.SNO=SC.SNO AND COURSES。CNO AND GRADE IS NULL;
(9) 查询有一门以上(含一门)三个学分以上课程的成绩低于70分的学生的姓名;
答:SELECT SNAME
FROM STUDENTS,COURSES,SC
WHERE STUDENTS。SNO=SC.SNO AND CREDIT〉=3 AND GREAD<70
(10)查询1984年~1986年出生的学生的姓名,总平均成绩
10、及已修学分数。
答:select sname,avg(grade),sum(credit)
from students natural join sc natural join courses
where bdate between ‘1984—00-00’ and ‘1987-00—00’
groud by sname
(11) 在STUDENT和SC关系中,删去SNO以’01’开关的所有记录。
答:delete sc where SNO like '%01%'
delete Students where SNO like '%01%'
(12)在STUDENT关系
11、中增加以下记录:
<0409101 何平 女 1987-03—02 1。62>
〈0408130 向阳 男 1986—12-11 1。75〉
答:insert into students values <'0409101’,’何平’,'女’,’1987—03-03’,'1.62’’〉
insert into students values 〈'0408130’,’向阳’,’女’,’1986-12—11’,’1.75’’〉
(13) 将课程CS—221的学分数增为3,讲课时数增为60
答:update courses
set credit=3
where cn
12、o='CS-211'
update courses
Set 1hour=60
where cno=’CS—211’
3.补充题:
(1) 统计各系的男生和女生的人数。
答:SELECT
DEPARTMENT,
SUM
13、‘体系结构’课程,且这些课程的成绩之一在90分以上的学生的名字。
答:select sname
From students natural join sc natural join courses
Where cname='编辑原理’ or cname=’体系结构' and grade〉90
(3) 列出未修选‘电子技术’课程,但选修了‘数字电路’或‘数字逻辑’课程的学生数。
答:SELECT COUNT
14、
WHERE Courses。CNO=SC。CNO
AND CNAME=’电子技术'
AND Courses.CNO=SC.CNO
AND SC。CON IN