试题三(15分)
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某竞赛管理系统的部分数据库关系模式如下:
选手:PLAYER(PnO Phame,Sex.Region,Tel),各属性分别表示参赛选手的编号、姓名、性别、地区和联系电话:竞赛项目: CONTEST(CnO, Chame, Type, Date),各属性分别表示竞赛项目的编号、名称、类别和举办日期;
选手参赛:PC(Pno.Cno,City,Rank,Point),各属性分别表示选手编号、竞赛项目编号、竞赛所在城市、选手取得的名次和积分。
有关关系模式的说明如下:
(1)下划线标出的属性是表的主码。
(2)选手参赛表的属性Pno和Cno分别参照了选手表和竞赛项目表的主码。
(3)一个选手参加一项竞赛有一个名次和一-个积分,名次有4个取值(“一”“二”“三”无”)。另外,竞赛所在城市不能为空。
【问题1】(5分)
请将下面创建选手参赛表PC的SQL语句补充完整,要求定义实体完整性约束、参照完整性约束,以及其他完整性约束。
CREATE TABLE PC(
Pno CHAR(10) REFERENCES(a)(Pno),
Cno CHAR(3) REFERENCES(b)(Cno),
City CHAR(20)(c)
Rank CHAR(20)(d)
PointSMALLIT,
(e)
【问题2】(6分)
查询所有未参加"Al"类别竞赛的选手,要求输出选手的编号(Pno),查询结果按照选手编号的升序排列。此功能由下面的SQL语句实现,请补全。
SELECT Pno FROM(f)
INTOll mhoms FROM otders
WHERE Pno(g)
SELECT(h)FROM PC, Contest
WHERESET (i)
(j)Type="Al")
(k)Pon;
【问题3】(4分)
由于某种原因,编号为TE06的竞赛项目在正式举办前被取消了。而此前系统中已经记录了些选手的报名参赛情况,因此需要在系统中删除E06的竞赛项目记录,以及该竞赛的所有报名参赛纪录。根据问题1在选手参赛表PC上定义的参照完整性约束,此功能可以由下面的SQL语句实现,请补全。
(1)FROM(m)WHERE Cno=E06;
(n)FROM(o)WHERE Cno="E06";