数据库期末考试设计题解析与SQL查询练习

版权申诉
5星 · 超过95%的资源 1 下载量 35 浏览量 更新于2024-07-01 1 收藏 233KB DOC 举报
在数据库期末考试复习题中,我们遇到了两个综合设计题。首先,针对一个教学数据库,该数据库包含学生表S(学号SNO、姓名SNAME、年龄AGE和性别SEX)、课程表C(课程号CNO、课程名CNAME和教师TEACHER)以及选修表SC(学号SNO、课程号CNO和成绩GRADE)。题目要求解释SQL查询语句:选择张三同学未选修的课程号。SQL语句的含义是,从课程表C中选取所有不在学生表S与选修表SC联合查询结果中的课程号,即张三没有选修过的课程。其等价的关系代数表达式可以用π操作符表示为πCNO(C) - πCNO((SNAME='张三')(S)SC) 或 πCNO(C) - πCNO((SNAME=’张三')(SSC))。 第二个问题是关于三个关系:商店A#、商品B#及其相关信息。题目要求使用SQL语言实现两个查询: 1. 第一个查询是查找店员人数少于或等于100人,或者位于长沙市的商店的代号和商店名。这可以通过`SELECT A#, ANAME FROM A# WHERE WQTY <= 100 OR CITY = '长沙'`来实现。 2. 第二个查询是找出至少供应了代号为256的商店的商品,列出其他提供相同商品的商店的名称和所在城市。这可以分解为两个步骤:首先找到256号商店的商品列表(包括B#和商品名),然后根据这些商品在其他商店的信息找出对应商店的名称和城市。这部分可能需要通过连接操作来完成,具体SQL语句可能类似`SELECT BNAME, CITY FROM A# WHERE A#.B# IN (SELECT B#.B# FROM AB WHERE A#.A# = 256)`,然后进一步联接其他商店的信息。 这两个问题考察了学生对SQL查询的理解、关系代数的转换以及多表查询和条件筛选的能力,是数据库管理系统和关系型数据管理的关键知识点。在实际考试中,解答时需确保清晰地阐述SQL语句的目的,并准确构造出满足条件的查询语句。