25-26 春季学期 SQL 编程大题回忆版
操作题(本题共 5 小题,每小题 6 分,共 30 分)
设有一个论文发表管理数据库,包括论文关系 Paper、教师关系 Teacher 和发表关系 Publish,它们的模式如下:
Paper(PaperID, Title, Attr1, Attr2)
Teacher(TeacherID, Name, Organization, Sex)
Publish(PaperID, AuthorID, OrderNo)
Paper 关系由论文编号(PaperID)、论文题目(Title)以及其他两个属性(Attr1、Attr2)组成,其中论文编号是主键,且论文编号长度限定为 8 个字符。
Teacher 关系由教师编号(TeacherID)、姓名(Name)、单位(Organization)和性别(Sex)组成,其中教师编号是主键,且教师编号长度限定为 8 个字符。
Publish 关系由论文编号(PaperID)、作者编号(AuthorID)和作者顺序(OrderNo)组成。其中,论文编号和作者编号共同构成主键;论文编号是外键,参照 Paper(PaperID);作者编号是外键,参照 Teacher(TeacherID)。作者顺序 OrderNo 表示该作者在该论文中的署名顺序,例如 OrderNo = 1 表示第一作者,OrderNo = 2 表示第二作者,依此类推,且 OrderNo 的取值范围为 1 到 10。
请用 SQL 语句表达下列操作:
建立发表关系表 Publish,建表的同时完成对给定完整性约束条件的定义。
【题干待补充】
完成一个涉及 Paper、Teacher 和 Publish 之间联系的简单查询。
查询所有没有发表过论文的教师编号和姓名。
查询所有发表过大于等于两篇论文的教师姓名、单位和发表论文数。
建立一个第一作者视图 FIRST_AUTHOR_VIEW,其中包括每篇论文的论文编号、论文题目、第一作者姓名和第一作者单位。