针对S_T数据库,查询既选修了1号课程又选修3号课程的学生学号,以下不正确的SQL命令是()。
A.select sno from sc where cno='1' and cno='3'
B.select sno from sc where cno='1' intersect select sno from sc where cno='3'
C.select sno from sc where cno='1' and sno in (select sno from sc where cno='3')
D.select a.sno from sc a,sc b where a.sno=b.sno and a.cno='1' and b.cno='3'
第1题:
学生表:Student 学生表 (学号,姓名,性别,年龄,组织部门)
Course 课程表 (编号,课程名称)
Sc 选课表 (学号,课程编号,成绩)
表结构如下:
(1).写一个SQL语句,查询选修了’计算机原理’的学生学号和姓名
(2).写一个SQL语句,查询’周星驰’同学选修了的课程名字
(3).写一个SQL语句,查询选修了5门课程的学生学号和姓名
select sno,sname
from student
where sno in (
select sno
from sc
where cno = (
select cno
from course
where cname=计算机原理
)
)
(2)
select cname
from course
where cno in (
select cno
from sc
where sno =
(
select sno
from student
where sname=周星驰
)
)
(3) select sno,sname
From student
Where sno in (
select sno
from scgroup by sno having count(sno)=5
)
第2题:
若有如下SQL查询语句: SELECT课程名称,开课系名,COUNT(学号)AS选修人数; FROM成绩,课程; WHERE课程.课程编号=成绩.课程编号; GROUP BY课程名称; HAVING COUNT(*)>3 上述语句所表示的含义是( )。
A.检索开课在3门以上的开课系名、课程名称和选修人数
B.检索选修了3门课程以上的学生记录,显示结果包括课程名称、开课系名和选修人数
C.检索每门课程中,有3人以上选修该课程的记录,显示结果包括课程名称、开课系名和选修人数
D.检索选修人数最多的3门课程的记录,显示结果包括课程名称、开课系名和选修人数
第3题:
A.GROUPBY学号WHERECOUNT(*)>3
B.ORDERBY学号WHERECOUNT(*)>3
C.GROUPBY学号HAVINGCOUNT(*)>3
D.ORDERBY学号HAVINGCOUNT(*)>3
第4题:
检索至少选修了课程号为1和课程号为5的课程的学生的学号。
第5题:
现有某高校的选修课记录(SC):学号、姓名、课程名称、成绩,要查询没有选修课成绩的学生和课程,正确的SQL语句是( )。
A. SELECT学号,课程号FROM sc WHERE成绩=””
B. SELECT学号,课程号FROM sc WHERE成绩=NULL
C. SELECT学号,课程号FROM SC WHERE成绩IS NULL
D. SELECT学号,课程号FROM SC WHERE成绩
第6题:
第{TSE}题使用如下3个数据库表:
学生表:S(学号,姓名,性别,出生日期,院系)
课程表:C(课程号,课程名,学时)
选课成绩表:SC(学号,课程号,成绩)
在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。
{TS}用SQL语句查询选修的每门课程的成绩都高于或等于85分的学生的学号和姓名,正确的命令是( )。
第7题:
某学校的教学信息关系数据库中有如下两个表:
学生表(学号,姓名,性别,专业)
成绩表(学号,课程名,分数)
用SQL语句表达下述查询:
(a)检索分数高于80分的所有学生的学号和分数。
(b)检索选修了“高等数学”课程的所有学生的学号。
第8题:
已知关系模式:学生(学号,姓名,性别,年龄,系别),选课(学号,课程号,成绩)用关系代数实现查询没有选修课程号为‘C3’课程的学生学号。
第9题:
要在学生选课表中查询选修三门以上课程的学生的学号,则可以使用的SQL语句是“SELECT 学号 FROM 学生选课 GROUP BY ()COUNT(*)>3”。
第10题:
第11题:
课程号 WHERE
学号 WHERE
课程号 HAVING
学号 HAVING
第12题:
SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号AND课程号=101AND成绩>=ALL(SELECT成绩FROM选课)
SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号AND成绩>=ALL(SELECT成绩FROM选课WHERE课程号=101)
SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号AND成绩>=ANY(SELECT成绩FROM选课WHERE课程号=101)
SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号AND课程号=101AND成绩>=(SELECT成绩FROM选课WHERE课程号=101)
第13题:
要从选课表(学号、课程号、成绩)中查询选修了3门以上课程的学生学号,应使用的SELECT-SQL语句是______。
A.SELECT学号FROM选课表WHERECOUNT(*)>=3
B.SELECT学号FROM选课表HAVINGCOUNT(*)>=3
C.SELECT学号FROM选课表GROUPBY学号HAVINGCOUNT(*)>=3
D.SELECT学号FROM选课表GROUPBY学号WHERECOUNT(*)>=3
第14题:
已知表S(学号,姓名,年龄)
SC(学号,课程号,成绩)
C(课程号,课程名,教师名)
试用SQL查询语句表达下列对教学数据库中的三个基本表S、SC、C的查询:
(1)统计有学生选修的课程门数.
(2)求选修C4课程的学生的平均年龄.
(3)求王平老师所授课程的每门课程的学生平均成绩.
(4)统计每门课程的学生选修人数(超过10人的课程才统计).要求输出课程号和选修人数.
(5)查询姓名以WANG开头的所有学生的姓名和年龄.
第15题:
当前目录下有“选课表”文件,要求查找既选修了“计算机”,又选修了“日语”的学生号,则语句为:
SELECT A.学号 FROM 选课表 A,选课表 B;
WHERE A.学号=B.学号 AND;
A.课程名称="计算机" AND ______
第16题:
某数据库中有学生选课表SC(Sno,cno,Grade),各属性分别表示为学号,课程号以及成绩。查询选修了3门课以上的学生的学号:
SELECT Sno
FROM SC
GROUP BY Sno
______。
第17题:
为管理岗位业务培训信息,建立3个表:
S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄
C (C#,CN ) C#,CN 分别代表课程编号、课程名称
SC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课程编号、学习成绩
要求实现如下5个处理:
1. 使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名
2. 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位
3. 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位
4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位
5. 查询选修了课程的学员人数
6. 查询选修课程超过5门的学员学号和所属单位
第18题:
【题目描述】
2.为管理岗位业务培训信息,建立3个表:
S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄
C (C#,CN ) C#,CN 分别代表课程编号、课程名称
SC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课程编号、学习成绩
要求实现如下5个处理:
1. 使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名
2. 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位
3. 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位
4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位
5. 查询选修了课程的学员人数
6. 查询选修课程超过5门的学员学号和所属单位
【参考答案分析】:
1. 使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名
SELECT SN,SD FROM S
WHERE [S#] IN(
SELECT [S#] FROM C,SC
WHERE C.[C#]=SC.[C#]
AND CN='税收基础')
2. 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位
SELECT S.SN,S.SD FROM S,SC
WHERE S.[S#]=SC.[S#]
AND SC.[C#]='C2'
3. 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位
SELECT SN,SD FROM S
WHERE [S#] NOT IN(
SELECT [S#] FROM SC
WHERE [C#]='C5')
4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位
SELECT SN,SD FROM S
WHERE S# IN(SELECT S# FROM SC GROUP BY S# HAVING COUNT(*)=
(SELECT COUNT(*) FROM C))
5. 查询选修了课程的学员人数
SELECT 学员人数=COUNT(DISTINCT [S#]) FROM SC
6. 查询选修课程超过5门的学员学号和所属单位
SELECT SN,SD FROM S
WHERE [S#] IN(
SELECT [S#] FROM SC
GROUP BY [S#]
HAVING COUNT(DISTINCT [C#])>5)
1. 使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名
--实现代码:
SELECT SN,SD FROM S
WHERE [S#] IN(
SELECT [S#] FROM C,SC
WHERE C.[C#]=SC.[C#]
AND CN=N'税收基础');
2. 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位
--实现代码:
SELECT S.SN,S.SD FROM S,SC
WHERE S.[S#]=SC.[S#]
AND SC.[C#]='C2';
3. 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位
--实现代码:
SELECT SN,SD FROM S
WHERE [S#] NOT IN(
SELECT [S#] FROM SC
WHERE [C#]='C5');
4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位
--实现代码:
SELECT SN,SD FROM S
WHERE [S#] IN(
SELECT [S#] FROM SC
RIGHT JOIN C ON SC.[C#]=C.[C#]
GROUP BY [S#]
HAVING COUNT(*)=COUNT(DISTINCT [S#]));
5. 查询选修了课程的学员人数
--实现代码:
SELECT 学员人数=COUNT(DISTINCT [S#]) FROM SC;
6. 查询选修课程超过5门的学员学号和所属单位
--实现代码:
SELECT SN,SD FROM S
WHERE [S#] IN(
SELECT [S#] FROM SC
GROUP BY [S#]
HAVING COUNT(DISTINCT [C#])>5);
第19题:
第20题:
设有三个关系:S(S#,SNAME,AGE,SEX)C(C#,CNAME,TEACHER)SC(S#,C#,GRADE) 试用关系代数表达式表示下列查询语句: (1)检索“陈军”老师所授课程的课程号(C#)和课程名(CNAME)。 (2)检索年龄小于20的男学生学号(S#)和姓名(SNAME)。 (3)检索至少选修“陈军”老师所授全部课程的学生姓名(SNAME) (4)检索“李强”同学不学课程的课程号(C#)。 (5)检索至少选修两门课程的学生学号(S#)。 (6)检索全部学生都选修的课程的课程号(C#)和课程名(CNAME)。 (7)检索选修课程包含“陈军”老师所授课程之一的学生学号(S#)。 (8)检索选修课程号为C1和C5的学生学号(S#)。 (9)检索选修全部课程的学生姓名(SNAME)。 (10)检索选修课程包含学号为S2的学生所修课程的学生学号(S#)。 (11)检索选修课程名为“C语言”的学生学号(S#)和姓名(SNAME)。⋈ (σCNAME=’C语言’(C)))))
第21题:
现有“学生选课”数据库,其中主要的表有:“学生”表(学号,姓名,性别,专业,出生年月),“选课”表(学号,课程号,成绩),“课程”表(课程号,课程名,所属专业,学分)按照下列要求写出SQL语句: (1)在“选课”表中,删除选了课程号为10004的所有选课记录。 (2)在“课程”表中,修改课程号为10008的课程名称:数字电路。 (3)设计子查询,查询“课程”表中,有哪些课程没有被任何同学报选。 (4)设计连接查询,查找选修了“数据结构”课程且成绩在80分及以上的学生的学号、姓名、课程名及成绩。
第22题:
第23题:
第24题: