“学生表”中有“学号”、“姓名”、“性别”和“入学成绩”等字段。执行如下SQL命令后的结果是()。 Selectav
A.计算并显示所有学生的平均入学成绩
B.计算并显示所有学生的性别和平均入学成绩
C.按性别顺序计算并显示所有学生的平均入学成绩
D.按性别分组计算并显示不同性别学生的平均入学成绩
A.计算并显示所有学生的平均入学成绩
B.计算并显示所有学生的性别和平均入学成绩
C.按性别顺序计算并显示所有学生的平均入学成绩
D.按性别分组计算并显示不同性别学生的平均入学成绩
某学校的教学信息关系数据库中有如下两个表:
学生表(学号,姓名,性别,专业)
成绩表(学号,课程名,分数)
用SQL语句表达下述查询:
(a)检索分数高于80分的所有学生的学号和分数。
(b)检索选修了“高等数学”课程的所有学生的学号。
A. CREATE TABLE学生(学号C(6)PRIMARY,姓名C(8),性别C(2),年龄I)
B. CREATE TABLE学生(学号C(6)FOREIGN,姓名C(8),性别C(2),年龄I)
C. CREATE TABLE学生(学号C(6)FOREIGN KEY,姓名C(8),性别C(2),年龄I)
D. CREATE TABLE学生(学号C(6)PRIMARY KEY,姓名C(8),性别C(2),年龄I)
设教学数据库中有三个基本表:
学生表S(SNO,SNAME,AGE,SEX),其属性分别表示学号、学生姓名、年龄、性别。
课程表C(CNO,CNAME,TEACHER),其属性分别表示课程号、课程名、上课教师名。
选修表SC(SNO,CNO,GRADE),其属性分别表示学号、课程号、成绩。
请完成下列问题:
(1)写出查询张三同学没有选修的课程的课程号的SQL查询语句;
(2)用等价的关系代数表达式表示上述SQL查询语句。
A )计算并显示所有学生的性别和入学成绩的平均值
B )按性别分组计算并显示性别和入学成绩的平均值
C )计算并显示所有学生的入学成绩的平均值
D )按性别分组计算并显示所有学生的入学成绩的平均值
在SQLServer2000的某数据库中有如下两张关系表:
学生表(学号,姓名,性别,系号),学号为主码
系表(系号,系名,系简称),系号为主码
①在数据库中执行如下T-SQL代码:
DECLARE @DePtID varchar(10)
DECLARE @cnt int
set @cnt=O
DECLARE cursor1 cursor FOR SELEET系号FROM系表
WHERE系名LIKE'%电%'
OPEN cursorl
FETCH NEXT FROM cursor1 INTO @DePtID
WHILE @@FETCH_STATUS=O
BEGIN
DECLARE @temp_cnt int
sELECT @temp_cnt=COUNT(*)FROM学生表WHERE系号=@DeptID
set @Cnt=@cnt+@temp_cnt
FETCH NEXT FROM cursor1 INTO ODePtID
END
CLOSE cursor1
DEALLOCATE cursor1
SELECT @cnt
执行过程中发现速度比较慢,为了解决性能问题,需在功能不变的情况下,将此T-SQL代码改为一条SQL语句,请写出此SQL语句(语句中不能含有子查询)并说明为什么此种修改可以提高性能。
②设在学生表的(姓名,系号)列上建有一个复合索引,该索引是否有助于提高下列两个语句的查询效率?并说明原因。
SELECT*FROM学生表 WHERE系号=‘1’;
SELEET*FRoM学生表WHERE姓名=‘张三’;
A.SELECT姓名FROM学生表,选课表WHERE学生表.学号=选课表.学号;.OR.性别=“女”.AND.成绩>=80
B.SELECT姓名FROM学生表,选课表WHERE学生表.学号=选课表.学号;.AND.性别=“女”.OR.成绩>=80
C.SELECT姓名FROM学生表,选课表WHERE学生表.学号=选课表.学号;.OR.性别=“女”.OR.成绩>=80
D. SELECT姓名FROM学生表,选课表WHERE学生表.学号=选课表.学号;.AND.性别=“女”.AND.成绩>=80
设有表示学生选课的三张表,学生s(学号,姓名,性别,年龄,身份证号),课程c(课号,课名),选课Sc (学号,课号,成绩),则表sc的关键字(键或码)为()。
A.课号,成绩
B.学号,成绩
C.学号,课号
D.学号,姓名,成绩