数据库课后作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库大作业

11.针对习题10的四个表,用SQL语言完成以下各项操作:

(1)给学生表增加一属性Nation(民族),数据类型为Varchar(20);ALTER TABLE dbo.Student

ADD Nation VarChar(20);

SElECT*

FROM dbo.Student;

(2)删除学生表中新增的属性Nation;

ALTER TABLE

dbo.Student

DROP COLUMN Nation;

SElECT*

FROM dbo.Student;

(3)向成绩表中插入记录(“”,“3”,80);

INSERT INTO dbo.Grade

VALUES ('2001110','3',80);

SElECT*

FROM dbo.Grade;

(4)将学号为“”的学生的成绩修改为70分;

UPDATE dbo.Grade

SET Gmark= 70

WHERE Sno='2001110';

SElECT*

FROM dbo.Grade;

(5)删除学号为“”的学生的成绩记录;

DELETE FROM dbo.Grade

WHERE Sno='2001110';

SElECT*

FROM dbo.Grade;

(6)在学生表的Clno属性上创建一个名为IX_Class的索引,以班级号的升序排序;

CREATE INDEX IX_CLASS

ON dbo.Student(Clno);

SELECT*

FROM dbo.Student;

(7)删除IX_Class索引。

DROP INDEX Student.IX_CLASS;

SELECT*

FROM dbo.Student;

12. 针对习题10的四个表,用SQL语言完成以下各项查询:

(1)找出所有被学生选修了的课程号;

SELECT DISTINCT Cno

FROM Grade,Student

WHERE Grade.Sno=Student.Sno;

(2)找出01311班女学生的个人信息;

SELECT*

FROM Student

WHERE Ssex='女'AND Clno='01311';

(3)找出0311班和01312班的学生姓名、性别、出生年份;

SELECT Sname,Ssex,(2014-Sage)AS'出生年份'

FROM Student

WHERE Clno IN('01311','01312');

(4)找出所有姓李的学生的个人信息;

SELECT*

FROM Student

WHERE Sname LIKE'李%';

(5)找出学生李勇所在班级的学生人数;

SELECT COUNT(*)AS'李勇班级人数'

FROM Student

WHERE Clno IN(

SELECT Clno

FROM Student

WHERE Sname='李勇');

(6)找出课程名为操作系统的平均成绩、最高分、最低分;

SELECT MAX(Gmark)AS'最高分'

,MIN(Gmark)AS'最低分'

,AVG(Gmark)AS'平均成绩'

FROM Grade g,Course c

WHERE o IN(SELECT o

FROM Course

WHERE ame='操作系统');

(7)找出选修了课程的学生人数;

SELECT COUNT(DISTINCT Sno)AS'选修了课程的学生人数'

FROM Grade;

(8)找出选修了课程操作系统的学生学号和姓名;

SELECT S.Sno,S.Sname

FROM Student S,Grade G

WHERE S.Sno IN(

SELECT G.Sno

FROM Grade

WHERE o=(

SELECT Cno

FROM Course

WHERE Cname='操作系统'));

(9)找出2000级计算机软件班的成绩为空的学生姓名。

SELECT S.Sname

FROM Student S

WHERE S.Sno NOT IN(

SELECT Sno

FROM Grade)AND S.Clno=(SELECT Clno

FROM Class

WHERE Inyear='2000'AND Speciality='计算机软件');

13. 针对习题10的四个表,用SELECT的嵌套查询完成以下各项查询:

(1)找出与李勇在同一个班级的学生信息;

SELECT*

FROM Student

WHERE Clno=(SELECT Clno

FROM Student

WHERE Sname='李勇')AND Sname NOT IN('李勇');

(2)找出所有与李勇有相同选修课程的学生信息;

SELECT*

FROM Student

WHERE Sno IN(

SELECT Sno

FROM Grade

WHERE o IN(

SELECT Cno

FROM Grade

WHERE Sno=(

SELECT Sno

FROM Student

WHERE Sname='李勇'))) AND Sname NOT IN('李勇');

(3)找出年龄介于学生李勇与25岁之间的学生信息(已知李勇的年龄小于25岁);SELECT*

FROM Student

WHERE Sage< 25 AND Sage>(SELECT Sage

FROM Student

WHERE Sname='李勇');

(4)找出选修了课程操作系统的学生学号与姓名;

SELECT Sno,Sname

FROM Student

WHERE Sno IN(SELECT Sno

FROM Grade

WHERE Cno=(SELECT Cno

FROM Course

WHERE Cname='操作系统'));

(5)找出没有选修1号课程的所有学生姓名;

SELECT Sname

FROM Student

WHERE Sno NOT IN(SELECT Sno

FROM Grade

WHERE Cno='1');

(6)找出选修了全部课程的学生姓名。

相关文档
最新文档