数据库查询操作实战:从单表到多表查询
64 浏览量
更新于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语句,这对于数据库管理和数据分析至关重要。对于初学者来说,这是一个很好的练习机会,能够巩固和提升数据库查询和管理的能力。
2021-07-06 上传
2023-06-09 上传
2023-04-26 上传
2024-09-07 上传
2023-06-09 上传
2023-06-02 上传
2023-07-16 上传
weixin_38567813
- 粉丝: 4
- 资源: 913
最新资源
- OptiX传输试题与SDH基础知识
- C++Builder函数详解与应用
- Linux shell (bash) 文件与字符串比较运算符详解
- Adam Gawne-Cain解读英文版WKT格式与常见投影标准
- dos命令详解:基础操作与网络测试必备
- Windows 蓝屏代码解析与处理指南
- PSoC CY8C24533在电动自行车控制器设计中的应用
- PHP整合FCKeditor网页编辑器教程
- Java Swing计算器源码示例:初学者入门教程
- Eclipse平台上的可视化开发:使用VEP与SWT
- 软件工程CASE工具实践指南
- AIX LVM详解:网络存储架构与管理
- 递归算法解析:文件系统、XML与树图
- 使用Struts2与MySQL构建Web登录验证教程
- PHP5 CLI模式:用PHP编写Shell脚本教程
- MyBatis与Spring完美整合:1.0.0-RC3详解