以下是“《数据库原理及应用实验指导》 钱雪忠 北京邮电大学出版社”一书中的待修改处
P11
原:“
3> Select * from authors (从authors表中查询所有记录)
4> Go (执行上 Select * from authors命令)
5> Exit (退出isql 程序)
”
改为:“
1> Select * from authors (从authors表中查询所有记录)
2> Go (执行上 Select * from authors命令)
1> Exit (退出isql 程序)
”
P22
原:“
[例3] 使用DBCC SHRINKDATABASE缩小student数据库的大小,保留自由空间60MB,保留释放的文件空间(未释放给操作系统)。
”
改为:“
[例3] 使用DBCC SHRINKDATABASE缩小student数据库的大小,保留自由空间60%,保留释放的文件空间(未释放给操作系统)。
”
P24
原:“
(3)收缩数据库,使用企业管理器收缩数据库。右击数据库,从弹出的快捷菜单中选择“所有任务”→“收缩数据库”命令,输入收缩量,实现收缩操作。
使用Transact-SQL语句压缩数据库。打开查询分析器,输入DBCC SHRINKDATABASE(student2,2),将student2数据库压缩成为2MB。
”
改为:“
(3)收缩数据库,使用企业管理器收缩数据库。右击数据库,从弹出的快捷菜单中选择“所有任务”→“收缩数据库”命令,输入收缩量,实现收缩操作。
使用Transact-SQL语句压缩数据库。打开查询分析器,输入DBCC SHRINKDATABASE(student2,2),将student2数据库压缩成为含2%的可用空间。
”
P44
原:“
[例9] 查询课程之先修课的先修课(自身连接例)。
SELECT FIRST.Cno, SECOND.Pcno
FROM Course FIRST, Course SECOND
WHERE FIRST.Pcno=SECOND.Cno;
”
改为:“
[例9] 查询课程之先修课的先修课(自身连接例)。
SELECT FIRST.Cno, SECOND.cpno
FROM Course FIRST, Course SECOND
WHERE FIRST.cpno=SECOND.Cno;
”
P44
原:“
[例12] 查询性别为男、课程成绩及格的学生信息及课程号、成绩。
SELECT Student.*,Cno,Grade
FROM STUDENT INNER JOIN ON Student.Sno=SC.Sno
WHERE SSEX=’男’ AND GRADE >=60
”
改为:“
[例12] 查询性别为男、课程成绩及格的学生信息及课程号、成绩。
SELECT Student.*,Cno,Grade
FROM STUDENT INNER JOIN SC ON Student.Sno=SC.Sno
WHERE SSEX=’男’ AND GRADE >=60
”
P48
原:“
[例25] 查询平均成绩大于85分的学号、姓名、平均成绩。
Select sno,sname,avgr
From Student,( Select sno,avg(grade) From SC
Group By sno) as SG(sno,avgr)
Where Student.sno=SG.sno And avgr>85;
”
改为:“
Select Student.sno,sname,avgr
From Student,( Select sno,avg(grade) From SC
Group By sno) as SG(sno,avgr)
Where Student.sno=SG.sno And avgr>85;
”
P49
原:“
[例29] 建立信息系学生的视图(含有学号、姓名、年龄及性别),并要求进行修改和插入操作时仍须保证该视图只有信息系的学生。通过视图查找年龄大于等于18岁的女学生。
CREATE VIEW IS_Student
AS SELECT Sno,Sname,Sage,Ssex
FROM Student
WHERE Sdept='IS' WITH CHECK OPTION;
SELECT * FROM IS_Student WHERE Sage>=18 AND Ssex='女';
”
改为:“
[例29] 建立信息系学生的视图(含有学号、姓名、年龄及性别),并要求进行修改和插入操作时仍须保证该视图只有信息系的学生。通过视图查找年龄大于等于18岁的女学生。
CREATE VIEW IS_Student
AS SELECT Sno,Sname,Sage,Ssex
FROM Student
WHERE Sdept='IS' WITH CHECK OPTION
GO
SELECT * FROM IS_Student WHERE Sage>=18 AND Ssex='女';
”
P50
原:“
2、基于“教学管理”数据库JXGL,试用SQL的查询语句表达下列查询:
(1)统计有学生选修的课程门数。
(2)求选修C4课程的学生的平均年龄。
(3)求学分为3的每门课程的学生平均成绩。
(4)统计每门课程的学生选修人数,超过20人的课程才统计。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。
(5)检索学号比王非同学大,而年龄比他小的学生姓名。
(6)检索姓名以王打头的所有学生的姓名和年龄。
(7)在SC中检索成绩为空值的学生学号和课程号。
(8)求年龄大于女同学平均年龄的男学生姓名和年龄。
(9)求年龄大于所有女同学年龄的男学生姓名和年龄。
(10) 检索所有比“王华”年龄大的学生姓名、年龄和性别。
(11) 检索选修课程“C2”的学生中成绩最高的学生的学号。
(12) 检索学生姓名及其所选修课程的课程号和成绩。
(13) 检索选修4门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。
”
改为:“
2、基于“教学管理”数据库JXGL,试用SQL的查询语句表达下列查询:
(1)统计有学生选修的课程门数。
(2)求选修“4”课程号的学生的平均年龄。
(3)求学分为3的每门课程的学生平均成绩。
(4)统计每门课程的学生选修人数,超过2人的课程才统计。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。
(5)检索学号比王非同学大,而年龄比他小的学生姓名。
(6)检索姓名以王打头的所有学生的姓名和年龄。
(7)在SC中检索成绩为空值的学生学号和课程号。
(8)求年龄大于女同学平均年龄的男学生姓名和年龄。
(9)求年龄大于所有女同学年龄的男学生姓名和年龄。
(10) 检索所有比“钱横”年龄大的学生姓名、年龄和性别。
(11) 检索选修课程号为“2”的学生中成绩最高的学生的学号。
(12) 检索学生姓名及其所选修课程的课程号和成绩。
(13) 检索选修4门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。
”
P58
原:“
[例7] 将98001学生选修3号课程的成绩改为该课的平均成绩。
Update SC
Set Grade=(Select AVG(Grade) From SC Where Cno='3')
Where Sno ='98001';
”
改为:“
[例7] 将98001学生选修3号课程的成绩改为该课的平均成绩。
Update SC
Set Grade=(Select AVG(Grade) From SC Where Cno='3')
Where Sno ='98001' AND Cno='3';
”
P59
原:“
⑧ 将Student的4位学生的年龄均增加1岁。
”
改为:“
⑧ 将Student的前4位学生的年龄均增加1岁。
”