数据库查询操作实战:从单表到多表查询

0 下载量 44 浏览量 更新于2024-08-31 收藏 72KB PDF 举报
"数据库表的查询操作实践演练(实验三),包括了数据库表的查询、更新、插入和删除操作,以及平均成绩计算和关系模型完整性的应用。" 在这个实验中,我们将深入学习数据库表的查询操作,特别是如何使用SQL语言进行不同类型的查询。实验涵盖了以下几个关键知识点: 1. **SQL Update语句**:用于修改数据库中的记录。在示例中,`UPDATE Teachers SET tname = '罗莉莉' WHERE tname = '罗莉'` 将教师名字从'罗莉'改为'罗莉莉'。`WHERE`子句用于指定要更新的记录条件。 2. **SQL Insert语句**:用于向数据库表中插入新记录。例如,`INSERT INTO Score (sno, cno, grade) VALUES ('04261006', 'C003', '64')` 插入了一条新的成绩记录。同时,我们还看到了如何通过`INSERT INTO ... SELECT`结合条件语句进行批量插入。 3. **SQL Select语句**:用于从数据库中检索数据。实验中的`SELECT sno 学号, cno 课程号, grade 分数 FROM Score WHERE sno = 04261006 OR sno = 04261007;` 选择了特定学生的成绩信息。在查询时,可以使用`WHERE`来设定过滤条件,`OR`用于组合多个条件。 4. **SQL Delete语句**:用于从表中删除记录。`DELETE FROM Score WHERE sno = 04261006 OR sno = 04261007;` 删除了指定学生的所有成绩记录。同样,`WHERE`子句定义了删除的条件。 5. **聚合函数与GROUP BY子句**:在计算每门课程的平均成绩时,`AVG()`是聚合函数,用于计算平均值。`SELECT DISTINCT cno, AVG(grade) FROM Score GROUP BY cno` 首先通过`DISTINCT`去除重复的课程编号,然后使用`GROUP BY`按课程编号分组,计算每个组(每门课程)的平均成绩。 6. **创建表和约束**:`CREATE TABLE average` 创建了一个新的表`average`,包含课程编号`cno`和平均分`avscore`。`PRIMARY KEY`约束定义了`cno`为主键,确保其唯一性;`FOREIGN KEY`约束则建立了`average`表与`Course`表之间的外键关系,保证数据的参照完整性。 7. **SQL嵌套查询**:虽然示例没有直接展示,但嵌套查询允许在一个查询中嵌入另一个查询,以满足更复杂的逻辑需求,如查找满足特定条件的子集。 8. **关系模型完整性**:在插入数据时,确保了数据遵循关系模型的完整性规则,例如,学生ID(sno)和课程ID(cno)必须存在于相应的学生和课程表中,这是参照完整性的体现。 通过这样的实践演练,我们可以更好地理解数据库操作的逻辑,以及如何在实际场景中应用SQL语句,这对于数据库管理和数据分析至关重要。对于初学者来说,这是一个很好的练习机会,能够巩固和提升数据库查询和管理的能力。