数据库查询操作实战:从单表到多表查询
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语句,这对于数据库管理和数据分析至关重要。对于初学者来说,这是一个很好的练习机会,能够巩固和提升数据库查询和管理的能力。
2021-07-06 上传
2022-07-12 上传
2009-10-29 上传
2024-01-23 上传
2023-04-07 上传
2021-01-13 上传
点击了解资源详情
weixin_38567813
- 粉丝: 4
- 资源: 913
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍