问答题

有下列关于运动会管理系统的ER图,如图10所示。图中矩形表示实体,圆表示属性,双圆表示关键字属性,菱形表示实体之间的关系。假定已通过下列SQL语言建立了基本表。 CREATE TABLE ATHLETE
ANAME CHAR(20),
ASEX CHAR(1),
ATEAM CHAR(20));
CREATE TABLE |TEM
(INO CHAR(6)NOT NULL,
INAME CHAR(20),
ITIME CHAR(12),
IPLACE CHAR(20);
CREATE TABLE GAMES
(ANO CHAR(6)NOTNULL,
INO CHAR(6)NOT NULL,
SCORRE CHAR(10));
为了答题的方便,图中的实体和属性同时给出了中英文两种文字,回答问题时只需写出英文名即可。
【E-R图】


【问题】
填充下列SQL程序1~4中的(1)~(7),使它们分别完成相应的功能:
程序1:统计参加比赛时男运动员人数。
SELECT (1)
FROM ATHLETE
WHERE ASEX=’M’;
程序2:查100872号运动员参加的所有项目及其比赛时间和地点。
SELECT ITEM,INO,IN A ME,ITIME,IPLACE
FROM GAMES,ITEM
WHERE (2)
AND (3)
程序3:查参加100035项目的所有运动员名单。
SELECT ANO,ANAME,ATEAM
FROM ATHLETE
WHERE (4)
(SELECT (4) (5)
FROM GAMES
WHERE GAMES ANO=ATHLETE.ANO AND INO=’100035’);
程序4:建立运动员成绩视图。
(6) ATHLETE-SCORE
AS SELECT ATHLETE,ANO,ANAME,ATEAM,INAME,SCORE
FORM (7) WHERE ATHLETE.ANO=GAMES. ANO AND GAMES.INO=ITEM.INO;

【参考答案】

(1)COUNT(*)(若答COUNT或COUNT,得2分)
(2)GAMES.INO=IFEM.INO......

(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)
热门 试题

问答题
【程序说明】 该程序定义了两个子函数strsort和strmerge。它们分别实现了将一个字符串按字母顺序排序和将两个字符串合并排序,并删去相同字符。在主函数里,先输入两个字符串s1和s2,然后调用strsort函数对它们分别排序,然后调用strmerge函数将s1和s2合并,将合并后的字符串赋给字符串s3,最后输出字符串s3。 【程序】 #include<stdio.h> void strmerge(char,a,char *b,char *c) 将字符串a,b合并到字符串c中 char t,*w; w=c; while( (1) ) 找到字符串a,b当前字符中较小的字符 if(*a< *b) t= *a; (2) ; else if (*a>*b) t= *b; (3) ; else 字符串a,b当前字符相等 t= *a; a++; b++; if( (4) ) 开始,可直接赋值 *w=t; else if(t!=*w) 如果a,b中较小的当前字符与c中当前字符不相等,才赋值 (5) ; if(*a!= ’ 0’) 如果字符串a还没有结束,则将a的剩余部分赋给C while(*a!=’ 0’) if(*a!=*w) *(++w)=*a; a++; else (6) ; if(*6!=’ 0’) 如果字符串b还没有结束,则将b的剩余部分赋给c while(*b!=’ 0’) if(*b! = *w) *(++w)=*b; b++; else b++; (7) ; void strsort(char*s) 将字符串S中的字符排序 int i,j,n; char t,*w; W=S; for(n=0;*w!=’ 0’;n++) 得到字符串长度n w++; for(i=0;i<n-1;i++) 对字符串s进行排序,按字母先后顺序 for(j=i+1;j<n;j++) if( (8) ) t=s[i]; s[i]=s[j]; (9) ; void main() char s1[100],s2[100],s3[100]; printf( nPlease,input the first string: ); scanf( %s ,s1); printf( nPlease input the second string: ); scanf( %s ,s2); strsort(s1); 将字符串s1排序 strsort(s2); 将字符串s2排序 printf( %s n ,s1); printf( %s n ,s2); s3[0]=’ 0’; 字符串s3的第一个字符先置’ 0’结束标志 (10) 将s1和s2合并,按照字母顺序排列, 且要删去相同字符,存入s3中 printf( %s ,s3);