2023年6月27日发(作者:)
一.选择题
1.下面哪种数字数据类型不可以存储数据256(D)
A. bigint B. int C. Smallint D. tinyint
2.下面是有关主键和外键之间的关系描述,正确的是(AC)
A. 一个表最多只能有一个主键约束,多个外键约束。
B. 一个表中最多只有一个外键约束,一个主键约束。
C. 在定义主键外键约束时,应该首先定义主键约束,然后定义外键约束。
D. 在定义主键外键约束时,应该首先定义主键约束,然后定义主键约束。
3.下面关于数据库中表的行和列的叙述正确的是(D)
A. 表中的行是有序的,列是无序的 B. 表中的列是有序的,行是无序的
C. 表中的行和列都是有序的 D. 表中的行和列都是无序的
语言的数据操作语句包括 SELECT、INSERT、UPDATE、DELETE等。其中最重要的,也是使用最频繁的语句是(A)
A. SELECT
5.在下列SQL语句中,修改表结构的语句是(A )。
A. ALTER B. CREATE C. UPDATE D. INSERT
6.设有关系R(A,B,C)和S(C,D),与关系代数表达式πA,B,D(σ=(R ∞ S)等价的SQL语句是(B)。
A. SELECT *FROM R,S WHERE =
B. SELECT A,B,D FROM R,S WHERE =
C. SELECT A,B,D FROM R,S WHERE R=S
D. SELECT A,B FROM R WHERE(SELECT D FROM S WHERE =
7.设关系 R(A,B,C) 与SQL语句“SELECT DISTINST A FROM R WHERE B=17”等价的关系代数表达式是(A)
A.
πA(σB=17
(R)) B.
σB=17
(πA(R))
C.
σB=17
(πA. C(R)) D.
πA. C(σB=17
(R))
下面第(8)-(12)题,基于“学生-选课-课程”数据库中的3个关系。
S(S#,SNAME,SEX,DEPAPTMENT),主码是S#
C(C#,CNAME,TEACHER),主码是 C#
SC(S#,C#,GRADE),主码是(S#,C#)
8.在下列关于保持数据库完整性的叙述中,哪一个是不正确的(D)
A. 向关系SC 插入元组时,S#和C#都不能是空值(NULL)
B. 可以任意删除关系SC中的元组
C. 向任何一个关系插入元组时,必须保证该关系主码值得唯一性
D. 可以任意删除关系C中的元组
9.查找每个学生的学号、姓名、选修的课程名和成绩,将使用关系(D)
A. 只有 S,SC B. 只有 SC,C C. 只有 S,C D. S,SC,C
10若要查找姓名中第1个字为“王”的学生的学号和姓名,则下面列出的SQL语句中,哪个(些)是正确的(B)
Ⅰ. SELECT S#,SNAME FROM S WHERE SNAME=’王%’
Ⅱ. SELECT S#,SNAME FROM S WHERE SNAME LIKE ‘王%’
Ⅲ. SELECT S#,SNAME FROM S WHERE SNAME LIKE’王_’
A. Ⅰ B.Ⅱ C.Ⅲ D.全部
11.若要“查询选修了3门以上课程的学生的学号”,则正确的SQL语句是(B) A. SELECT S# FROM SC GROUP BY S# WHERE COUNT(*)>3
B. SELECT S# FROM SC GROUP BY S# HAVING COUNT(*)>3
C. SELECT S# FROM SC ORDER BY S# WHERE COUNT(*)>3
D. SELECT S# FROM SC ORDER BY S# HAVING COUNT(*)>3
12.若要查找“由张劲老师执教的数据库课程的平均成绩、最高成绩和最低成绩”,则将使用关系(D)。
A. S和SC B. SC和C C. S和C D. S、SC和 C
下面第(13)-(16)题基于这样的3个表,即学生表S、课程表C和学生选课表SC,它们的关系模式如下。
S(S#,SN,SEX,AGE,DEPT)(学号,姓名,性别,年龄,系别)
C(C#,CN)(课程号,课程名称)
SC(S#,C#,GRADE)(学号,课程号,成绩)
13.检索所有比“王华”年龄大的学生姓名、年龄和性别。下面正确的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
14.检索选修课程“C2”的学生中成绩最高的学生的学号。正确的SELECT 语句是(D)。
A. SELECT S# FROM SC WHERE C#=’C2’ AND GRADE>=(SELECT GRADE FROM SC
WHERE C#=’C2’)
B. SELECT S# FROM SC WHERE C#=’C2’ AND GRADE IN(SELECT GRADE GORM SC
WHERE C#=’C2’)
C. SELECT S# FROM SC WHERE C#=’C2’ AND GRADE NOT IN(SELECT GRADE GORM SC
WHERE C#=’C2’)
D. SELECT S# FROM SC WHERE C#=’C2’ AND GRADE>=ALL(SELCET GRADE FROM SC
WHERE C#=’C2’)
15.检索4门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。正确的 SELECT 语句是(B)
A. SELECT S#,SUM(GRAGE) FROM SC WHERE GRADE>=60 GROUP BY S# ORDER BY S#
HAVING COUNT(*)>=4
B. SELECT S#,SUM(GRADE)FROM SC WHERE GRADE>=60 GROUP BY S# HAVING
COUNT(*)>=4 ORDER BY 2 DESC
C. SELECT S#,SUM(GRADE)FROM SC WHERE GRADE>=60 HAVING COUNT(*)<=4
GROUP BY S#ORDER BY 2 DESC
D. SELECT S#,SUM(GRADE) FROM SC WHERE GRADE>=60 HAVING COUNT(*)>=4
GROUP BY S# ORDER BY 2
17. 数据库见表 和表,若职工表的主关键字是职工号,部门表的关键字是部门号,SQL操作(B)不能执行。
A. 从职工表中删除行(‘025’,‘王芳’,‘03’,720)
B. 将行(‘005’,‘乔兴’,‘04’,720)插入到职工表中
C. 将职工号为“001”的工资改为700 D. 将职工号为’038’的部门号改为“03”
表
职工表
E. F.
职工号 职工名 部门号 工资
001 01 580 G. H.
李红
005 01 670 I. J.
刘军
025 03 720 K. L.
王芳
038 02 650 M. N.
张强
表 部门表
部门号 部门名 主任
01
人事处 高平
02
财务处 蒋华
03
教务处 许红
04
学生处 杜琼
18.若用如下的STUDENT表。
CREATE TABLE STUDENT
(NO char(4) NOT NULL,
NAME char(8) NOT NULL,
SEX char(2),
AGE int);
可以插入到STUDENT表中的是(B)。
A. (‘1031’,’曾华’,’男’,23’) B. (‘1031’,’曾华’,NULL,NULL)
C. (NULL,’曾华’,’男’,’23’) D. (‘1031’,NULL,’男’,23)
19.有关系 S(S#,SNAME,SAGE), C(C#,CNAME), SC(S#,C#,GRADE)。要查询选修”ACCESS”课的年龄不小20的全体学生姓名的SQL语句”SELECT SNAME FROM
S,C,SC WHERE 子句”。这里的WHERE子句的内容是(A)
A. #=# AND #=# ANDSAGE>=20 AND CNAME=’ACCESS’
B. #=# AND #=# AND SAGE IN>=20 AND CNAME IN ‘ACCESS’
C. SAGE>=20 AND CNAME=’ACCESS’
D. SAGE>=20 AND CNAMEIN’ACCESS’
20.若要在基本表中S中增加一列CN(课程名),可用(D)
A. ADD TABLE S(CN char(8))
B. ADD TABLE S ALTER(CN char(8))
C. ALTER TABLE S ADD(CN,char(8))
D. ALTER TABLE S(ADD CN char(8))
21.学生关系模式 S(S#,SNAME,AGE,SEX), S的属性分别表示学生的学号、姓名、年龄、性别。要在表S中删除一个属性“年龄”,可选用的SQL语句是(B)。
A. DELETE AGE FROM S
B. ALTER TABLE S DROP COLUMN AGE
C. UPDATE S AGE
D. ALTER TABLE S’AGE’
E. 22.设关系数据库中有一个表S的关系模式为S(SN,CN,GRADE),其中SN为学生名,CN为课程名,二者为字符型;GRADE为成绩,数值型,取值范围0-100。若要
更正“王二”的化学成绩为85分,则可用(A)。
A. UPDATE S SET GRADE=85 WHERE SN=’王二’ AND CN=’化学’
B. UPDATE S SET GRADE=’85’ WHERE SN=’王二’ AND SN=’化学’
C. UPDATE GRADE=85 WHERE SN=’王二’ AND CN=’化学’
D. UPDATE GRADE=’85’ WHERE SN=’王二’ AND CN=’化学’
23.在SQL语言中,子查询语句是(D)。
A. 返回单表中数据子集的查询语句
B. 选取多表中字段子集的查询语句
C. 选取单表中字段子集的查询语句
D. 嵌入到另一个查询语句之中的查询语句
24.在SQL语言中,条件“年龄 BETWEEN 20 AND 30”表示年龄在20-30,且(A)。
A. 包括20岁和30岁 B.不包括20岁和30岁
C. 包括20岁但不包括30岁 D.包括30岁但不包括20岁
25.下列聚合函数不忽略空值(NULL)的是(C)。
A. SUM(列名) B. MAX(列名)
C. COUNT(*) (AGE IS NULL)
26.在SQL中,下列涉及空值的操作,不正确的是(C)。
A. AGE IS NULL B. AGE IS NOT NULL
C. AGE=NULL (AGE IS NULL)
27.已知学生选课信息表sc(sno,cno,grade)。 查询“至少选修了一门课程,但没有学习成绩的学生学号和课程号”的SQL语句是(C)。
A. SELECT sno,cno FROM sc WHERE grade=NULL
B. SELECT sno,cno FROM sc WHERE grade IS”
C. SELECT sno,cno FROM sc WHERE grade IS NULL
D. SELECT sno,cno FROM sc WHERE grade=”
28.有如下的SQL语句。
Ⅰ. SELECT sname FROM s,sc WHERE grade<60
Ⅱ. SELECT sname FROM s WHERE sno IN(SELECT sno FROM sc WHERE grade<60)
Ⅲ.SELECT sname FROM s,sc WHERE = AND grade<60
若要查找分数(grade)不及格的学生姓名(sname),则以上正确的有哪些(C)
A. Ⅰ和Ⅱ B. Ⅰ和Ⅲ C. Ⅱ和Ⅲ D. Ⅰ、Ⅱ 和Ⅲ
二.填空题
1.关系R(A,B,C)和S(A,D,E,F),有=。 若将关系代数表达式π,,,(R∞S),用SQL语言的查询语句表示,则为:SELECT ,,, FROM R,S WHERE
= 。
语句中,WHERE 子句用于选择满足给定条件的元组。使用 GROUP BY 子句可按指定列的值分组,同时使用 HAVING 可提取满足条件的组。若希望将查询结果排序,则应在
SELECT 语句中使用 ORDER BY 子句,其中, ASC 选项表示升序,DESC 选项表示降序。若希望查询的结果不出现重复元组,则应在SELECT 子句中使用
Distinct 保留字。WHERE 子句的条件表达式中,字符串匹配的操作符是 LIKE ,与0个或多个字符匹配的通配符是 % ,与单个字符匹配的通配符是 __下划线 。
3.子查询的条件不依赖于父查询,这类查询称为 嵌套子查询 ,否则称为 相关子查询。
4.有学生信息表 student,求年龄在 20-22岁(含 20 岁和22岁)的学生姓名和年龄的SQL语句是:SELECT sname,age FROM student WHERE age BETWEEN 20 AND 22 。
5.在“学生选课”数据库中的两个关系如下。
S(SNO,SNAME,SEX,AGE),SC(SNO,CNO,GRADE)
则与SQL命令“SELECT SNAME FROM S WHERE SNO IN(SELECT SNO FROM SC WHERE
GRADE<60)”等价的关系代数表达式是
πSname (σGrade<60(SC∞S) ) 。
6.在“学生-选课-课程”数据库中的3个关系如下。
S(S#,SNAME,SEX,AGE),SC(S#,C#,GRADE),C(C#,CNAME,TEACHER)。现要查找选修“数据库技术”这门课程的学生的学生姓名和成绩,可使用如下的SQL语句。
SELECT SNAME,GRADE FROM S,SC,C WHERE CNAME=’数据库技术’ AND #=# AND #=# 。
7.设关系SC(sno,cname,grade),各属性的含义分别为学号、课程名、成绩。若要将所有学生的“数据库技术”课程的成绩加5分,能正确完成该操作的SQL语句是 UPDATE SC SET 。
grade=grade+5 WHERE cname=’数据库技术’。
8.在SQL语言中,若要删除一个表,应使用的语句是 DROP TABLE 。
三.综合练习题
1.现有如下关系。
学生(学号,姓名,性别,专业,出生日期)
教师(教师编号,姓名,所在部门,职称)
授课(教师编号,学号,课程编号,课程名称,教材,学分,成绩)
用SQL语言完成下列功能。
(1)删除学生表中学号为“”的记录。
(2)将编号为“003”的教师所在的部门改为“电信系”。
(3)向学生表中增加一个“奖学金”列,其数据类型为数值型。
答:
①DELETE FROM 学生 WHERE 学号=‘’
②UPDATE 教师 SET 所在部门=‘电信系’ WHERE 教师编号=‘003’
③ALTER TABLE 学生 ADD(奖学金 INT )
2.现有如下关系:
3.学生S(S#,SNMAE,AGE,SEX)
4.学习SC(S#,C#,GRADE)
5.课程C(C#,CNAME,TEACHER)
6.用SQL语言完成下列功能:
7.1)统计有学生选修的课程门数。
8.2)求选修C4课程的学生的平均年龄。
9.3)求李文老师所授课程的每门课程的学生平均成绩。
10.4)检索姓名以王打头的所有学生的姓名和年龄。
11.5)在基本表S中检索每一门课程成绩都大于等于80分的学生学号、姓名和性别,并把检索到的值送往另一个已存在的基本表STUDENT(S#,SNAME,SEX)中。
12.6)往基本表S中插入一个学生元组(’S9’,’WU’,18,’F’)。
13.7) 把低于总平均成绩的女同学的成绩提高10分。
14.8) 把王林同学的选课记录全部删除。
答:
①SELECT COUNT(DISTINCT C#) FROM SC
②SELECT AVG(AGE) FROM S WHERE S# IN (SELECT S# FROM SC WHERE C#=‘C4’)
③SELECT AVG(GRADE) FROM SC WHERE C# IN (SELECT C# FROM C WHERE TEACHER=‘李文’) GROUP BY C#
④SELECT SNAME,AGE FROM S WHERE SNAME LIKE ‘王%’
⑤INSERT INTO STUDENT SELECT S#,SNAME,SEX FROM S WHERE EXISTS (SELECT * FROM
SC WHERE #=# GROUP BY S# HAVING MIN(GRADE)>=80)
或者
INSERT INTO STUDENT SELECT S#,SNAME,SEX FROM S WHERE SNO IN (SELECT SNO FROM
SC GROUP BY S# HAVING MIN(GRADE)>=80)
⑥INSERT INTO S VALUES(‘S9’,‘WU’,18,‘F’)
⑦UPDATE SC SET GRADE=GRADE* WHERE GRADE<(SELECT AVG(GRADE)FROM SC)AND S#
IN (SELECT S# FROM S WHERE SEX=‘女’)
⑧DELETE FROM SC WHRER S#=(SELECT S# FROM S WHERE SNAME=‘王林’)
15.设要创建学生选课数据库,库中包括学生、课程和选课3个表,其表结构如下。
学生(学号,姓名,性别,年龄,所在系)
课程(课程号,课程名,先行课)
选课(学号,课程号,成绩)
用SQL语句完成下列操作。
(1)创建学生选课库。
(2)创建学生、课程和选课表,其中学生中“性别”的域为“男”或“女”,默认值为“男”。
答:
①CREATE DATABASE 学生选课库
②学生表:
USE grademanager
Go
CREATE TABLE student
(sno char(10) PRIMARY KEY
sname varchar(10) ,
ssex char(2) CHECK(ssex IN('男','女')) DEFAULT '男',
sdept char(8)
)
课程表
CREATE TABLE course
(cno char(5) NOT NULL,
cname varchar(20) NOT NULL,
cterm tinyint NOT NULL,
CONSTRAINT C1 PRIMARY KEY(cno,cterm)
)
CREATE TABLE sc
(sno char(10) NOT NULL,
cno char(5) NOT NULL,
degree numeric(5,1),
cterm tinyint NOT NULL,
CONSTRAINT A1 PRIMARY KEY(sno,cno,cterm),
CONSTRAINT A2 FOREIGN KEY(sno) REFERENCES STUDENT(sno),
CONSTRAINT A3 FOREIGN KEY(cno) REFERENCES COURSE(cno), CONSTRAINT A5 CHECK(degree BETWEEN 0 AND 100)
)
发布者:admin,转转请注明出处:http://www.yc00.com/news/1687817702a47754.html
评论列表(0条)