数据库习题答案(3)

2018-12-20 22:59

(4)查询“数据库原理”课程的最高分数。 (5)查询平均成绩80分以上的学生姓名。

(6)查询名称中包含“数据”的课程的详细信息。

(7)查询选修“数据库原理”课程成绩85分以上的学生的姓名和所在班级。 (8)查询没有选修“数据库原理”课程的学生姓名和所在班级。 (9)查询被所有“计算机091”班学生选修的课程的课程名称和学时。 (10)查询“计算机091”班“数据库原理”成绩最高的学生姓名。

(11)查询年龄超过其所在班级平均年龄的学生的姓名、性别、年龄和所在班级。 (12)向STUDENT表中插入一条新的学生记录(0905050105,周晓斌,19,男,计算机091)。

(13)所有“计算机091”班学生的“数据库原理”课程的成绩提高5%。 (14)删除“编译原理”课程的所有选课信息。

(15)向COURSE表中插入一条新的课程记录(050804,数字图像处理,48),暂不指定任课教师。

参考答按:

(1)SELECT CNO, CNAME, CHOUR

FROM COURSE

WHERE CTEACHER='刘晓莉';

(2)SELECT SNAME

FROM STUDENT

WHERE SNO IN (SELECT SNO FROM SC WHERE GRADE<60);

(3)SELECT SNO, SNAME, SAGE, SCLASS

FROM STUDENT

WHERE SSEX='男' AND SAGE BETWEEN 18 AND 20;

(4)SELECT MAX(GRADE) 最高分数

FROM SC

WHERE CNO IN (SELECT CNO FROM COURSE WHERE CNAME='数据库原理');

(5)SELECT SNAME FROM STUDENT

WHERE SNO IN (SELECT SNO FROM SC GROUP BY SNO

HAVING AVG(GRADE)>80);

(6)SELECT * FROM COURSE

WHERE CNAME LIKE '%数据%';

(7)SELECT SNAME, SCLASS

FROM STUDENT JOIN SC ON SC.SNO=STUDENT.SNO JOIN COURSE ON SC.CNO=COURSE.CNO WHERE CNAME='数据库原理' AND GRADE>85;

(8)SELECT SNAME, SCLASS FROM STUDENT

WHERE SNO NOT IN (SELECT SNO FROM SC

WHERE CNO IN (SELECT CNO FROM COURSE WHERE CNAME='数据库原理'));

(9)SELECT CNAME, CHOUR FROM COURSE

WHERE NOT EXISTS (SELECT * FROM STUDENT

WHERE SCLASS='计算机091' AND NOT EXISTS ( SELECT * FROM SC

WHERE SC.CNO=COURSE.CNO AND SC.SNO=STUDENT.SNO));

(10)SELECT SNAME FROM STUDENT

WHERE SCLASS='计算机091' AND SNO IN ( SELECT SNO FROM SC

WHERE CNO IN (SELECT CNO FROM COURSE WHERE CNAME='数据库原理') AND GRADE=(SELECT MAX(GRADE) FROM SC

WHERE CNO IN (SELECT CNO FROM COURSE WHERE CNAME='数据库原理') AND SNO IN (SELECT SNO FROM STUDENT WHERE SCLASS='计算机091')));

(11)SELECT SNAME, SSEX, SAGE, SCLASS

FROM STUDENT S1

WHERE SAGE>(SELECT AVG(SAGE) FROM STUDENT S2 WHERE S2.SCLASS=S1.SCLASS);

(12)INSERT INTO STUDENT

VALUES('0905050105', '周晓斌', 19, '男', '计算机091');

(13)UPDATE SC SET GRADE=GRADE*1.05

WHERE SNO IN (SELECT SNO FROM STUDENT

WHERE SCLASS='计算机091')

AND CNO IN (SELECT CNO FROM COURSE

WHERE CNAME='数据库原理');

(14)DELETE FROM SC

WHERE CNO IN (SELECT CNO FROM COURSE WHERE CNAME='编译原理');

(15)INSERT INTO COURSE(CNO, CNAME, CHOUR)

VALUES('050804', '数字图像处理', 48);

4.试说明视图的优点。

参考答案:(1)简化用户的操作;(2)使用户能够从不同角度看待同一数据;(3)提供一定程度的逻辑独立性;(4)有助于对数据提供安全保护。

5.根据第2题中的三个表,创建一个 “计算机091”班学生的选课视图V_Computer091,要求视图中包括学号、姓名、课程名称和成绩等属性。

参考答案:

CREATE VIEW V_Computer091(SNO, SNAME, CNAME, GRADE) AS

SELECT STUDENT.SNO, SNAME, CNAME, GRADE FROM STUDENT JOIN SC ON SC.SNO=STUDENT.SNO JOIN COURSE ON SC.CNO=COURSE.CNO WHERE SCLASS='计算机091';

6.利用第5题创建的视图,使用SQL完成如下查询。

(1)查询“计算机091”班选修“数据库原理”课程的学生姓名及该课程的成绩。 (2)查询“计算机091”班每个学生的学号、姓名和平均成绩。 (3)查询“计算机091”班选课超过3门的学生姓名。 参考答案:

(1)SELECT SNAME, GRADE FROM V_Computer091

WHERE CNAME='数据库原理';

(2)SELECT SNO, SNAME, AVG(GRADE) 平均成绩

FROM V_Computer091 GROUP BY SNO, SNAME;

(3)SELECT SNAME FROM V_Computer091

WHERE SNO IN (SELECT SNO FROM V_Computer091 GROUP BY SNO

HAVING COUNT(*)>3);

7.上机实践:在SQL Server 2008数据库引擎中创建一个包含第2题中三个表的数据库(要满足该题的所有要求),输入如图4-29所示的数据,在查询编辑器中,编写SQL语句完成第3题的所有操作,并查看运行结果。

答:本题的参考代码详见第3题答案。

第5章 T-SQL程序设计基础

1.T-SQL的常量有几种?变量有几种?分别如何表示? 参考答案:

常量包括:字符串常量,例如'China';二进制常量,例如0x12Ef;日期/时间常量,例如'2010-12-05 14:23:05';数值量常量,例如235,3.45,$12。

变量包括局部变量和全局变量,局部变量以@开头,例如@number;全局变量,以@@开头,例如@@rowcount。

2.编写程序,求5! 参考答案:

DECLARE @a INT,@b INT SET @a=1 SET @b=1 WHILE(@a<=5) BEGIN

SET @b=@a*@b SET @a=@a+1 END PRINT @b

3.编写一个函数,功能是:输入两个整数,输出其中较小的一个。 参考答案:

CREATE FUNCTION comparedTwo(@a INT, @b INT) RETURNS INT AS BEGIN

DECLARE @small INT IF(@a<@b) SET @small=@a ELSE

SET @small=@b RETURN @small END GO

DECLARE @smallone INT, @aa INT, @bb INT SET @aa=3 SET @bb=5

SET @smallone=[student].dbo.comparedTwo(@aa,@bb) PRINT @smallone

4.编写一个函数,功能是:输入一个字符串,将该字符串倒序输出,例如,输入字符串'happy',则输出字符串'yppah'。

参考答案:

CREATE FUNCTION reversion(@str VARCHAR(200)) RETURNS VARCHAR(200) AS BEGIN

DECLARE @ret varchar(200) DECLARE @i int SET @ret='' SET @i=LEN(@str) WHILE (@i>0) BEGIN

SET @ret=@ret+SUBSTRING(@str,@i,1) SET @i=@i-1 END

RETURN @ret END GO

SELECT dbo.reversion('OMG')

5.编写一个函数elimin(c1, c2),将字符串c1中所有出现在c2的字符删除并输出c1,例如,如果有elimin('student', 'ent'),则应输出字符串'sud'。

参考答案:

CREATE FUNCTION elimin(@c1 VARCHAR(200),@c2 VARCHAR(200)) RETURNS VARCHAR(200) AS BEGIN

DECLARE @i INT SET @i=1

WHILE(@i

SET @c1=REPLACE(@c1,SUBSTRING(@c2,@i,1),'') SET @i=@i+1 END

RETURN @c1 END GO

SELECT dbo.elimin('student', 'ent')

6.编写一个函数,功能是将指定的时间显示为XX年XX月XX日。 参考答案:

CREATE FUNCTION formatdate(@date DATETIME)


数据库习题答案(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:10--Linux网络编程-网络基础-socket编程-高并发服务器

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: