在本篇上机实验报告中,我们探讨了数据库管理和SQL语言的基本操作,主要涉及了创建、修改和查询数据表的相关知识。以下是对这些操作的详细解释: 我们创建了四个基本表:`Student`(学生)、`Course`(课程)、`Class`(班级)和`Grade`(成绩)。`Student`表包含了学生的学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)和班级号(Clno),其中Sno是主键,不允许为空。`Course`表存储课程编号(Cno)、课程名称(Cname)和学分(Credit),Cno是唯一标识,不允许重复。`Class`表记录班级的班级号(Clno)、专业(Speciality)、入学年份(Inyear)和人数(Number),Clno是唯一键。`Grade`表用于保存学生的成绩,包含学号(Sno)、课程编号(Cno)和分数(Gmark)。 在对`Student`表的操作中,我们看到了`alter table`命令,它用于修改表结构。第一条`alter`语句是删除`Nation`列,这使得`Student`表的结构发生变化,移除了一个字段。而在T11中,我们先添加了`Nation`列,然后又将其删除,这展示了如何动态调整表的列。 在`Grade`表的操作中,我们执行了插入(insert)、更新(update)和删除(delete)操作。`insert`语句将一条新的成绩记录添加到表中,`update`语句将指定学号(Sno)的学生某一课程的分数设置为70,而`delete`语句则删除了该学号对应的所有成绩记录。 接着,我们看到对索引的管理。索引可以加速查询速度,`create index`用于创建索引,这里是在`Student`表的`Clno`列上创建了一个名为`IX_Class`的索引。`drop index`语句用于删除索引,我们移除了之前创建的索引。 在上机实验四中,我们重点练习了SQL查询语句。`distinct`关键字用于去除重复的值,如在T12的第一条查询中,我们获取了所有课程编号的独特列表。`like`操作符用于模糊匹配,第四条查询找出所有名字以"李"开头的学生。子查询是SQL中的重要部分,它可以嵌套在其他查询中,例如第五条和第六条查询,它们分别根据特定条件计算学生数量和成绩的平均值、最大值和最小值。在第九条查询中,我们用到了多级子查询,找出特定专业和入学年份下,未记录成绩的学生名字。 关于子查询的思考题强调了别名的重要性。别名可以简化复杂的查询,提高可读性,同时在多次扫描同一表时,可以避免重复的表名,使得代码更加清晰。如最后一段提到的,子查询可以被当作一个临时的表(在本例中为`t1`),并在当前SQL语句的范围内使用。 这次上机实验涵盖了数据库管理的基础操作,包括数据表的创建、修改、查询以及索引的管理,同时也强调了子查询和别名在SQL中的应用,这些都是数据库管理和数据分析中不可或缺的技能。通过这些练习,我们可以更好地理解和掌握SQL语言,从而更有效地管理和操作数据库。
- 粉丝: 51
- 资源: 308
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论0