数据库实验查询操作与解答

需积分: 2 2 下载量 196 浏览量 更新于2024-09-13 收藏 35KB DOC 举报
"数据库实验与答案" 这篇内容主要涉及的是SQL语言在数据库操作中的应用,具体涵盖了一系列关于数据查询和筛选的基本操作。SQL(Structured Query Language)是用于管理和处理关系数据库的标准编程语言,这里通过一系列的示例展示了如何在数据库中进行数据的检索、筛选、排序和统计。 1. **查询所有记录的特定列**:在实验的第一个例子中,通过`SELECT sname, ssex, sclass FROM student`查询了`student`表中所有学生的姓名、性别和班级。这演示了基本的字段选择功能。 2. **查询不重复的值**:第二个查询`SELECT DISTINCT depart FROM teacher`返回了`teacher`表中所有不同的部门,展示了`DISTINCT`关键字用于去除重复值的作用。 3. **查询所有记录**:`SELECT * FROM student`用于获取表中的所有记录,`*`代表所有字段。而另一种形式`SELECT sno as '学号', sname as '姓名', ssex as '性别', sbirthday as '出生日期', sclass as '班号' FROM student`则展示了如何重命名列名。 4. **范围查询**:`SELECT * FROM score WHERE degree BETWEEN 60 AND 80`选取了`score`表中成绩在60到80之间的所有记录,`BETWEEN`用于指定一个范围。 5. **列表查询**:`SELECT * FROM score WHERE degree IN (85, 86, 88)`选取了成绩为85、86或88的记录,`IN`关键字用于匹配列表中的任意值。 6. **逻辑运算符的使用**:`SELECT * FROM student WHERE class = '95031' OR ssex = '女'`结合了`OR`逻辑运算符,查询了95031班或性别为女性的学生记录。 7. **排序查询**:`SELECT * FROM student ORDER BY sclass DESC`按班级降序排列了`student`表的所有记录,`ORDER BY`用于对结果进行排序,`DESC`表示降序,`ASC`表示升序。 8. **多列排序**:`SELECT * FROM score ORDER BY cno, degree DESC`首先按照课程编号`cno`升序,然后在相同课程内按分数`degree`降序排列记录。 9. **计数统计**:`SELECT COUNT(*) as '95031班人数' FROM student WHERE sclass = '95031'`计算了95031班的学生人数,`COUNT(*)`返回指定列的记录数。 10. **平均值计算**:`SELECT AVG(degree) as '课程平均分' FROM score WHERE cno = '3-105'`求出了编号为“3-105”课程的平均分,`AVG()`函数计算平均值。 11. **分组和条件统计**:`SELECT cno, AVG(degree) as '平均分' FROM score WHERE cno LIKE '3%' GROUP BY cno HAVING COUNT(*) > 3`查询了以3开头且至少有3名学生选修的课程的平均分,`LIKE`用于模糊匹配,`GROUP BY`进行分组,`HAVING`在分组后添加条件。 12. **聚合函数与子查询**:最后一个查询`SELECT sno FROM score GROUP BY sno HAVING MIN(degree) > 70 AND MAX(degree) < 90`找出了其最低分大于70且最高分小于90的学生学号,使用了`GROUP BY`和`HAVING`结合子查询来实现条件筛选。 这些实验覆盖了SQL的基本操作,包括选择、聚合、排序、分组和条件过滤,对于理解数据库查询和管理具有重要作用。在实际的数据库应用中,这样的查询技能是非常基础且重要的。