将学生的学号及他的平均成绩定义为一个视图。创建这个视图的语句中使用的子查询包括下列哪些子句?
Ⅰ. SELECT Ⅱ. FROM Ⅲ. WHERE
Ⅳ. GROUP BY Ⅴ. ORDER BY
A) 仅Ⅰ、Ⅱ和Ⅲ
B) 仅Ⅰ、Ⅱ和Ⅳ
C) 仅Ⅰ、Ⅱ、Ⅲ和Ⅳ
D) 都包括
Ⅰ. SELECT Ⅱ. FROM Ⅲ. WHERE
Ⅳ. GROUP BY Ⅴ. ORDER BY
A) 仅Ⅰ、Ⅱ和Ⅲ
B) 仅Ⅰ、Ⅱ和Ⅳ
C) 仅Ⅰ、Ⅱ、Ⅲ和Ⅳ
D) 都包括
A.Ⅰ和Ⅱ
B.Ⅰ和Ⅲ
C.Ⅰ、Ⅱ和Ⅲ
D.全部
(2)在数据库“学生管理”中建立视图“view1”,显示学生表中的所有记录,并按“出生日期”升序排序。建立表单“bd1”,在表单上添加“表格”控件显示新建立的视图的记录。
试题五(共15分)
阅读以下说明和C 函数,将应填入(n) 处的字句写在答题纸的对应栏内。
[说明]
某班级有N 名学生,他们可根据自己的情况选修名称和数量不尽相同的课程。设N,如图5-1 所示。
程序中相应的类型定义如下:
define N 6
struct node{
char cname[5]; /*课程名*/
int grade; /*成绩*/
struct node *next; /*指针,指示某学生选修的下一门课程及成绩*/
};
struct student{
char xh[5]; /*学号*/
char name[20]; /*姓名*/
struct node *link; /*指针,指示出选修的课程及成绩链表*/
}stud_info[N];
stud_info[]为一个全局数组。
函数func (char kc[],int *num)的功能是统计选修了课程名为kc 的学生的人数,
并返回该课程的平均成绩(若无人选修该课程,则平均成绩为0),参数num 带回选修课程kc 的学生人数。
[C函数]
double func (char kc[],int *num)
{
int i,count = 0,sum = 0; /*count用于记录选修课程名为kc 的学生的人数*/
double avg = 0.0;
struct node *p;
for(i = 0; i < N; i++){
p = (1) ; /*取第i 个学生所修课程链表的头指针*/
while (p) {
if ((2) ) {
sum = (3) ;
count++;
break;;
}/*if*/
p = p->next;
}/*while*/
}
(4) ;
if ((5) )
avg = (double)sum / count; /* 计算平均成绩 */
return avg;
}/*func*/
设有一个关系Student(学号,姓名,系名,课程号,成绩),查询至少选修了四门课程的学生学号、姓名及平时成绩的SELECT语句应该是:
SELECT学号,姓名,AVG(成绩) AS平均成绩
FROM Student
GROUP BY (1)
HAVING (2)
(15)
A.学号
B.姓名
C.系名
D.课程号
(1)创建一个查询,查找并显示有书法或绘画爱好学生的“学号”、“姓名”、“性别”和“年龄”四个字段内容,所建查询命名为“qT1”。
(2)创建一个查询,查找成绩低于所有课程总平均分的学生信息,并显示“姓名”、“课程名”和“成绩”三个字段内容,所建查询命名为“qT2”。
(3)以表对象“tScore”和“tCourse”为基础,创建一个交叉表查询。要求:选择学生的“学号”为行标题、“课程号”为列标题来统计输出学分小于3分的学生平均成绩,所建查询命名为“qT3”。
注意:交叉表查询不做各行小计。
(4)创建追加查询,将表对象“tStud”中“学号”、“姓名”、“性别”和“年龄”四个字段内容追加到目标表“tTemp”的对应字段内,所建查询命名为“qT4”。(规定:“姓名”字段的第一个字符为姓,剩余字符为名。将姓名分解为姓和名两部分,分别追加到目标表的“姓”、“名”两个字段中)
①用SQL的有关语句定义
(1)学生关系S,包括学号SNo(主键)、姓名SN、年龄SA、系别SD;
(2)课程关系C,包括课程号CNo(主键)、课程名CN、授课教师T;
(3)学生选课关系SC,包括SNo、CNo和成绩G。
要求定义出主键和外键(如果存在)。数据类型和长度可根据生活经验或开发经验合理定义。
②在①所创建的数据表基础上,用SQL语句完成下列操作。
(1)用SQL语句查询每个学生的平均成绩,输出学号和平均成绩,按平均成绩排序(降序),若平均成绩相同,再按学号排序(升序)。
(2)求姓林的老师讲的每门课的学生平均成绩。
利用SQL派生一个包含“课程名称”、“姓名”和“成绩”的视图,要求按“课程名称”升序排序,正确的命令是()。
A.CREATE VIEW viewl AS; (SELECT 课程.课程名称,学生.姓名,成绩.成绩; FROM 课程 INNER JOIN 成绩; INNER JOIN 学生; ON 成绩.学号=学生.学号; ON 课程.课程编号=成绩.课程编号; GROUP BY 课程名称)
B.CREATE VIEW view1 AS; (SELECT 课程.课程名称,学生.姓名,成绩.成绩; FROM 课程 INNER JOIN 成绩; INNER JOIN 学生; ON 成绩.学号=学生.学号; ON 课程.课程编号=成绩.课程编号; ORDER BY 课程名称)
C.CREATE VIEW view1 AS; SELECT 课程.课程名称,学生.姓名,成绩.成绩; FROM 课程 INNER JOIN 成绩; INNER JOIN 学生; ON 成绩.学号=学生.学号; ON 课程.课程编号=成绩.课程编号; GROUP BY 课程名称
D.CREATE VIEW view1 AS; SELECT 课程.课程名称,学生.姓名,成绩.成绩; FROM 课程 INNER JOIN 成绩; INNER JOIN 学生; ON 成绩.学号=学生.学号; ON 课程.课程编号=成绩.课程编号; ORDER BY 课程名称
要建2一个随机文件记录学生的信息,如下定义的学生记录类型,由学号、姓名和5门课程成绩(百分制)组成,下列的定义正确的是()。
A.CREATE VIEW xsview AS SELECT学生.姓名,课程.课程名称,成绩.成绩 FROM学生INNER JOIN成绩 INNER JOIN课程 WHERE成绩.课程编号:=课程.课程编号 AND学生.学号一成绩.学号
B.CREATE VIEW xsview As (SELECT学生.姓名,课程.课程名称,成绩.成绩 FROM学生INNERJOIN成绩 INNER JOIN课程 ON成绩.课程编号=课程.课程编号 ON学生.学号=成绩.学号)
C.CREATE VIEW xsview A SELECT学生.姓名,课程.课程名称,成绩.成绩 WHERE学生INNER JOIN成绩 INNER JOIN课程 ON成绩.课程编号=课程.课程编号 ON学生.学号=成绩.学号
D.CREATE VIEw Xsview A SELECT学生.姓名,课程.课程名称,成绩.成绩 FROM学生INNER JOIN成绩 INNER JOIN课程 ON成绩.课程编号=课程.课程编号 ON学生.学号=成绩.学号