考核内容
一、选择题
1、SQL语言是( B )的语言,易学习。
A.过程化 B.非过程化 C.格式化 D.导航式
2、SQL语言是( C )语言。
A.层次数据库 B.网络数据库 C.关系数据库 D.非数据库
3、SQL语言具有( B )的功能。
A.关系规范化、数据操纵、数据控制
B.数据定义、数据操纵、数据控制
C.数据定义、关系规范化、数据控制
D.数据定义、关系规范化、数据操纵
4、SQL语言具有两种使用方式,分别称为交互式SQL和( C )。
A.提示式SQL B.多用户SQL C.嵌入式SQL D.解释式SQL
5、假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE)。
要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系 ( D )。
A.S B.SC,C
C.S,SC D.S,C,SC
6、如下面的数据库的表中,若职工表的主关键字是职工号,部门表的主关键字是部门号,下面哪条SQL操作( B )不能执行。
A.从职工表中删除行(‘025’,‘王芳’,‘03’,720)
B.将行(‘005’,‘乔兴’,‘04’,750)插入到职工表中
C.将职工号为‘001’的工资改为700
D.将职工号为‘038’的部门号改为‘03’
7、若用如下的SQL语句创建一个student表:
CREATE TABLE
student(NO C(4) NOT NULL,
NAME C(8) NOT
NULL,
SEX C(2),
AGE N(2))
可以插入到student表中的是( B )。
A.(‘1031’,‘曾华’,男,23) B.(‘1031’,‘曾华’,NULL,NULL)
C.(NULL,‘曾华’,‘男’,‘23’)
D.(‘1031’,NULL,‘男’,23)
第8到第11题基于这样的三个表即学生表S、课程表C和学生选课表SC,它们的结构如下:
S(S#,SN,SEX,AGE,DEPT)
C(C#,CN)
SC(S#,C#,GRADE)
其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE为成绩。
8、检索所有比“王华”年龄大的学生姓名、年龄和性别。正确的SELECT语句是(A )。
A.SELECT SN,AGE,SEX
FROM S
WHERE AGE>(SELECT AGE FROM S
WHERE SN=“王华”)
B.SELECT SN,AGE,SEX
FROM S
WHERE SN=“王华”
C.SELECT SN,AGE,SEX FROM S
WHERE AGE>(SELECT AGE
WHERE SN=“王华”)
D.SELECT SN,AGE,SEX FROM S
WHERE AGE>王华.AGE
9、检索选修课程“C2”的学生中成绩最高的学生的学号。正确的SELECT语句是(D )。
A.SELECT S# FORM SC
WHERE
C#=“C2” AND GRAD>=
(SELECT GRADE FORM SC
WHERE C#=“C2”)
B.SELECT S# FORM SC
WHERE
C#=“C2” AND GRADE IN
(SELECT GRADE FORM SC
WHERE C#=“C2”)
C.SELECT S# FORM SC
WHERE C#=“C2” AND GRADE NOT IN
(SELECT GRADE FORM SC
WHERE C#=“C2”)
D.SELECT S# FORM SC
WHERE
C#=“C2” AND GRADE>=ALL
(SELECT GRADE FORM SC
WHERE C#=“C2”)
10、检索学生姓名及其所选修课程的课程号和成绩。正确的SELECT语句是(
C )。
A.SELECT S.SN,SC.C#,SC.GRADE
FROM S
WHERE S.S#=SC.S#
B.SELECT S.SN,SC.C#,SC.GRADE
FROM SC
WHERE S.S#=SC.GRADE
C.SELECT S.SN,SC.C#,SC.GRADE
FROM S,SC
WHERE S.S#=SC.S#
D.SELECT S.SN,SC.C#,SC.GRADE
FROM S.SC
11、检索选修四门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。正确的SELECT语句是( B )
A.SELECT S#,SUM(GRADE)FROM SC
WHERE
GRADE>=60
GROUP BY
S#
ORDER BY 2
DESC
HAVING
COUNT(*)>=4
B.SELECT S# FORM SC
WHERE
C#=“C2” AND GRADE IN
(SELECT GRADE FORM SC
WHERE
C#=“C2”)
C.SELECT S# FORM SC
WHERE
C#=“C2” AND GRADE NOT IN
(SELECT GRADE FORM SC
WHERE
C#=“C2”)
D.SELECT S# FORM SC
WHERE C#=“C2” AND GRADE>=ALL
(SELECT
GRADE FORM SC
WHERE
C#=“C2”
二、填空题
1、SQL是 一种功能齐全的数据库语言 。
2、视图是一个虚表,它是从 从一个或几个基本表 中导出的表。在数据库中,只存放视图的 结构定义 ,不存放视图的 对应的数据 。
3、设有如下关系表R:
R(No,NAME,SEX,AGE,CLASS)
主关键字是NO
其中NO为学号,NAME为姓名,SEX为性别,AGE为年龄,CLASS为班号。
写出实现下列功能的SQL语句。
①插入一个记录(25,“李明”,“男”,21,“95031”);_INSERT INTO R V ALUES
(25,“李明”,“男”,21,“95031” 。
②插入“95031”班学号为30、姓名为“郑和”的学生记录; INSERT INTO R
(NO,NAME,CLASS)V ALUES (30,“郑和“,“95031”) 。
③将学号为10的学生姓名改为“王华”; _UPDA
TE R SET NAME=“王华”WHERENO=10
。
④将所有“95101”班号改为“95091”; 95091”;_UPDA TE R SET CLASS=“95091” 。
⑤删除学号为20的学生记录; DELETE FROM R WHERE NO=20 。
⑥删除姓“王”的学生记录; DELETE FROM R WHERE NAME
LIKE “王 。
三.综合题
1、设学生课程数据库中有三个关系:
学生关系S(S#,SNAME,AGE,SEX)
学习关系SC(S#,C#,GRADE)
课程关系C(C#,CNAME)
其中S#、C#、SNAME、AGE、SEX、GRADE、CNAME分别表示学号、课程号、姓名、年龄、性别、成绩和课程名。
用SQL语句表达下列操作
(1)检索选修课程名称为“MATHS”的学生的学号与姓名;
(2)检索至少学习了课程号为“C1”和“C2”的学生的学号;
(3)检索年龄在18到20之间(含18和20)的女生的学号、姓名和年龄;
(4)检索平均成绩超过80分的学生学号和平均成绩;
(5)检索选修了全部课程的学生姓名;
(6)检索选修了三门课以上的学生的姓名。
(1 )SELECT
S.学号,S.姓名
FROM SC INNER JOIN C ON SC.课程号 = C.课程号 INNER JOIN S ON SC.学号 = S.学号
where C.课程名 = ‘MATHS’
(2)SELECT 学号,iCount=Sum(iCount) From (
SELECT 学号,iCount=1 FROM SC Where 课程号 = ‘C1’ OR 课程号 = ‘C2’
) A Group by 学号
(3)SELECT 学号,姓名,年龄 FROM S WHERE 性别=’女‘
And 年龄 >= 18 And 年龄 <= 20
(4)SELECT * FROM (
SELECT 学号,平均成绩=Avg(成绩) FROM SC Group By 学号
) A WHERE 平均成绩 > 80
(5)SELECT
S.姓名
FROM
(
SELECT 学号 FROM(SELECT 学号,学习课程总数=Count(课程号),课程总数=Isnull((select
count(课程号) From C),0) FROM SC Group By 学号) A Where 学习课程总数 = 课程总数
) L INNER JOIN S ON L.学号 = S.学号
(6)SELECT
S.姓名
FROM
(
SELECT 学号 FROM (SELECT 学号,课程数=sum(iCount) FROM (SELECT 学号,iCount=1 FROM
SC) A GROUP BY 学号) A WHERE 课程数 > 3
) L INNER JOIN S ON L.学号 = S.学号