目录
数据库 第01讲章节测验
1【单选题】数据库中,数据的物理独立性是指_______。
A、用户的应用程序与存储在磁盘上数据库中的数据是相互独立的
B、用户程序与DBMS的相互独立
C、数据库与数据库管理系统的相互独立
D、应用程序与数据库中数据的逻辑结构相互独立 正确答案:A
2【单选题】DBS的三级模式结构中,最接近外部存储器的是_______。
A、模式 B、外模式
C、内模式 D、用户模式 正确答案:C
3【单选题】数据库系统的体系结构是( )
A、两级模式结构和一级映象 B、三级模式结构和三级映象
C、三级模式结构和一级映象 D、三级模式结构和两级映象 正确答案:D
4【单选题】数据库系统模式结构的中心是
A、模式 B、内模式
C、外模式 D、子模式 正确答案:A
5【单选题】数据库中,数据的逻辑独立性是指_______。
A、应用程序与数据库中数据的逻辑结构相互独立
B、数据库与数据库管理系统的相互独立
C、用户程序与DBMS的相互独立
D、应用程序与存储在磁盘上数据库中的数据是相互独立的 正确答案:A
6【多选题】数据库的特点有?
A、数据冗余度高 B、数据共享性高
C、数据结构化 D、数据独立性高 正确答案:BCD
7【判断题】数据与信息在概念上是没有区别的。 正确答案:错
8【判断题】一个数据可以是由多个数据项组成的 正确答案:对
9【判断题】信息是处理后的数据 正确答案:对
10【判断题】数据是描述客观事物特征或性质的某种符号 正确答案:对
11【判断题】因为数据库中存储的数据具有很高的共享性,所以数据的冗余度必然很低。 正确答案:错
12【判断题】数据就是在计算机中存储的数字和文字。 正确答案:错
13【判断题】数据是信息的载体,信息是数据的内涵,二者不能混为一谈。 正确答案:错
14【判断题】任何数据都是信息 正确答案:错
15【填空题】数据库系统一般由数据库、____、____、数据库管理员组成(写最主要的)。
正确答案:
第一空: 数据库管理系统
第二空: 应用程序
数据库 第02讲第01节知识点测验
1必答[填空题]数据库系统的核心是______________ 正确答案: 数据模型
2必答[单选题]按用户观点进行数据信息建模的是什么模型? 正确答案: A
- A.概念模型
- B.逻辑模型
- C.物理模型
- D.视觉模型
3必答[单选题]表示数据在系统中存储方式的是什么模型? 正确答案: B
A.概念模型
B.物理模型
C.逻辑模型
D.表示模型
4必答[单选题]从计算机系统角度进行数据建模的是什么模型? 正确答案: C
A.概念模型
B.物理模型
C.逻辑模型
D.数据模型
5必答[判断题]数据模型的三要素包括数据结构,数据操作和数据存储。 正确答案: 错
6必答[单选题]数据模型的三要素中不包括_______。 正确答案: A
A.数据存储
B.数据结构
C.完整性约束
D.数据操作
7必答[判断题]所有的数据模型都能比较真实地模拟或抽象表示现实世界 正确答案: 错
2.4章节测验
1【单选题】在为一个系统建立所需的数据模型的过程中,其中哪一步是最重要的一个环节? 正确答案:B
A、系统的数据库基本表设计环节 B、系统的功能需求分析环节
C、系统的功能设计环节 D、系统功能的测试环节
2【单选题】基本表中的每一列称为 正确答案:D
A、分量 B、索引 C、单元 D、属性
3【单选题】以二维表格作为数据结构的数据模型是 正确答案:A
- 关系数据模型 B、层次数据模型 C、面向对象数据模型 D、网状数据模型
4【多选题】关系模型的完整性约束包括
A、参照完整性
B、数据完整性
C、用户定义完整性
D、实体完整性 正确答案:ACD
5【多选题】对于书籍,以下属于它的属性的是:
A、出版社
B、作者
C、购买人
D、出版编号 正确答案:ABD
6【多选题】构成数据模型的三要素包括:
A、数据操作
B、完整性约束
C、数据模式
D、数据结构 正确答案:ABD
7【多选题】关系模型的优点包括
A、概念单一
B、建立在严格的数学理论基础上
C、存取路径对用户透明
D、数据操作是集合操作 正确答案:ABCD
8【多选题】以下实体间的联系属于1对多的是
A、课程与学生
B、班长与学生
C、教室与学生
D、班主任与学生 正确答案:BD
9【判断题】数据模型的三要素中,数据结构是对数据库数据库动态特性的描述。 正确答案:错
10【判断题】在E-R模型到关系模式的转换中,需要将多对多的联系转换为一个新的关系模式,且该关系模式的主键必然是由关联的两个实体的主键属性所构成
正确答案:错
11【判断题】在用户观点下,所有结构数据模型中数据的逻辑结构都是一张二维表
正确答案:错
12【判断题】一般情况下,每个关系模式中都至少包含一个主键和一个外键。
正确答案:错
13【填空题】关系数据模型的特点是概念单一化,数据及其数据间的联系都用关系来表示,且以___________为理论基础,数据独立性强。
正确答案:关系代数
14【填空题】在用户观点下,通常所说的一张二维表称为一个_________。
正确答案:关系
02-03. 课程管理系统的E-R模型
1必答[简答题]请根据一下描述,绘制出课程管理系统的E-R图:
(1)每个学院包含多个专业,每个专业有多名学生;
(2)每个学院有多位教师,但只有一个院长;
(3)每名学生要学习多门课程,每门课程也会有多名学生选修,需要记录学生选修的学年、学期以及课程的成绩;
(4)每位教师每个学年的每个学期要讲授多门课程,每门课程也会有多位教师讲授。
其中:(1)学院的属性有学院编号和学院名称;
(2)专业的属性有专业编号和专业名称;
(3)学生的属性有学号,姓名,性别和出生日期;
(4)教师的属性有教师编号,姓名,性别和出生日期;
(5)课程的属性有课程编号,课程名称,学时数和学分
2必答[简答题]请根据上述所绘制的课程管理系统的E-R图,转换为对应系统所需的关系模式。
02-04. 图书借阅管理系统的E-R模型
1必答[简答题]请根据一下描述,绘制出图书借阅管理系统的E-R图
①图书分为“科技图书”,“社科图书”等种类,每本书只能划归为一个种类。
②可随时查询书库中现有的书籍的种类、数量和存放位置,所有各类书籍均可由书号唯一标识。
③可随时查询书籍借还情况,包括借书证号、借书人单位、姓名、借书日期和还书日期。
④约定任何人可借多种书,任何一种书可为多个人所借,借书证号具有唯一性
⑤当需要时,可查询出版社的名称、电话、邮编及地址等信息。同时约定一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有唯一性。
2必答[简答题]请根据上述所绘制的图书借阅管理系统的E-R图,转换为对应系统所需的关系模式,并指出每个关系模式中的主键和外键。
正确答案: 借书人(借书证号、姓名、借书人单位)
图书(书号、书名、数量、存放位置、社名、种类名、)
出版社(社名、电话、地址、邮编)
借阅(借书证号、书号、借书日期、还书日期)
02-05. 工程管理系统的E-R模型
1必答[简答题]
请根据以下描述,绘制出工程管理系统的E-R图:
(1)一个部门有多名职工,而一名职工只能属于一个部门,每名职工都有入职日期。
(2)一名职工只能主管一项工程,一项工程也只能由一名职工主管,而一名职工可以参与多个工程的工作,每名职工参与的工程都有任务的分配;
(3)一个工程会用到从不同的供应商那里买来的多种零件,供应商提供的每种零件也可用于多个工程中,需要记录供应的零件数量。
其中,部门的属性有部门编号,部门名称,部门职能;职工的属性有职工编号,姓名,性别;工程的属性有工程编号,工程名称,任务描述;供应商的属性有供应商编号,供应商名称,联系电话;零件的属性有零件编号,零件名称,规格。
2必答[简答题]
请根据上述所绘制的工程管理系统的E-R图,转换为对应系统所需的关系模式,并指出每个关系模式中的主键和外键。
02-06. 医院住院管理系统的E-R模型
1必答[简答题]
请根据以下描述,绘制出医院住院管理系统的E-R图:
(1)一个科室有多间病房,一间病房只属于一个科室
(2)一个科室有多名医生,一名医生只属于一个科室
(3)一名医生可负责多个病人的诊治,一个病人也会找多名医生看病,每位医生为病人诊治后,都记录看诊日期和书写病例;
(4)一间病房可以收治多名病人,一名病人也会在多间病房入住,病人入住病房会记录入住日期和出院日期。其中,科室的属性有科室名,科室地址和科室电话;病房的属性有病房号和床位数;医生的属性有工作证号、姓名、职称和年龄;病人的属性有病历号,姓名,性别
2必答[简答题]
请根据上述所绘制的医院住院管理系统的E-R图,转换为对应系统所需的关系模式,并指出每个关系模式中的主键和外键。
04-01. 单表查询小练习
1必答[简答题]请写出下列查询要求的SQL语句,“查询课程表中,没有前序课程的课程信息,查询结果显示课程编号、课程名称和学时数”
SELECT Cno, Cname,Chours
FROM COURSES
WHERE Pre_Cno IS NULL;
2必答[简答题]请写出下列查询要求的SQL语句,“查询选课表中,每个学年都有哪些课程被学生选中,查询结果显示选课学年,课程号,按选课学年升序排序,要求属性列用中文显示”
SELECT DISTINCT Racademicyear AS "选课学年", Cno AS "课程号"
FROM Reports
ORDER BY Racademicyear;
3必答[简答题]请写出下列查询要求的SQL语句,“查询'11'学院中,来自山东的学生的信息,查询结果显示学生的学号、姓名、专业编号和生源地”
SELECT Sno, Sname, Mno, Snative
FROM Students
WHERE Dno='11' AND Snative LIKE '山东%';
4必答[简答题]
请写出下列查询要求的SQL语句,“查询学生的名字中带个“一”字的学生信息,查询结果显示学生的学号、姓名、性别和班级编号”
SELECT Sno, Sname, Sgender, Sclass
FROM Students
WHERE Sname LIKE '%一%';
5必答[简答题]请写出下列查询要求的SQL语句,“查询选课表中,在2014学年到2016学年期间,成绩达到优秀(大于等于90)的学生的学号、课程号及成绩,按学号降序排序”
SELECT Sno, Cno, Grade
FROM Reports
WHERE Racademicyear BETWEEN 2014 AND 2016 AND Grade >= 90
ORDER BY Sno DESC;
6必答[简答题]请写出下列查询要求的SQL语句,“统计一下'11'学院中,各个专业在各个月份出生的学生人数,查询结果显示专业编号、出生月份和学生人数,按专业编号升序、月份升序排序,并用中文显示属性列名”
SELECT Mno AS "专业编号", MONTH(Sbirth) AS "出生月份", COUNT(*) AS "学生人数"
FROM Students
WHERE Dno='11'
GROUP BY Mno,MONTH(Sbirth)
ORDER BY Mno,MONTH(Sbirth);
7必答[简答题]请写出下列查询要求的SQL语句,“统计一下'11'学院中的教授和讲师的人数,查询结果显示学院编号、职称和教师人数,按职称降序排序,并用中文显示属性列名”
SELECT Dno AS "学院编号", Tprof AS "职称", COUNT(*) AS "教师人数"
FROM Teachers
WHERE Dno='11' AND Tprof IN ('教授', '讲师')
GROUP BY Dno,Tprof
ORDER BY Tprof;
8必答[简答题]请写出下列查询要求的SQL语句,“查询2017学年上课门数排名前三的教师,查询结果显示教师编号、上课次数(给不同班上同一门课程算不同次数),并用中文显示属性列名”
SELECT Tno AS "教师编号",COUNT(*) AS "上课次数"
FROM Tutors
WHERE Tacademicyear=2017
GROUP BY Tno
ORDER BY COUNT(*) DESC
LIMIT 3;
9必答[简答题]请写出下列查询要求的SQL语句,“查询选修的各门课程成绩都在75分以上的学生信息,查询结果显示学生的学号、最高分、最低分和平均成绩,按平均成绩降序排序,并用中文显示属性列名”
SELECT Sno AS "学号", MAX(Grade) AS 最高分, MIN(Grade) "最低分", AVG(Grade) AS "平均成绩"
FROM Reports
GROUP BY Sno
HAVING MIN(Grade)>=75
ORDER BY AVG(Grade) DESC;
05-01. 连接查询小练习
1[简答题]请写出下列查询的SQL语句,“查询物理与电子工程学院的教师的教师编号、教师姓名、学院名称和职称”
SELECT Tno,Tname,Dname,Tprof
FROM Teachers T,Department D
WHERE T.Dno=D.Dno AND Dname='物理与电子工程学院';
或者
SELECT Tno,Tname,Dname,Tprof
FROM Teachers T INNER JOINDepartment D ON T.Dno=D.Dno
WHERE Dname='物理与电子工程学院';
2[简答题]请写出下列查询的SQL语句,“用内连接查询学院号为'11'的2014级学生的学号、姓名、专业号和专业名称,结果按专业编号降序排序”
SELECT Sno,Sname,S.Mno,Mname
FROM Students S INNER JOIN Major M ON S.Mno=M.Mno
WHERE Dno='11' AND LEFT(Sno,4)='2014'
ORDER BY S.Mno DESC;
3[简答题]请写出下列查询的SQL语句,“查询所有教师的基本信息,结果显示教师编号、教师姓名、所在学院名称、职称、出生年份以及是否是本学院的院长(若是则显示‘是’,不是则显示‘否’),结果按学院编号升序排序,并用中文显示属性列名”
SELECT Tno '教师编号',Tname '教师姓名',Dname '所在学院', Tprof '职称',
(CASE WHEN Tno=Dheader THEN '是'
ELSE '否'
END) '是否是院长'
FROM Teachers T, Department D
WHERE T.Dno=D.Dno;
或者
SELECT Tno '教师编号',Tname '教师姓名',Dname '所在学院', Tprof '职称',
(IF(Tno=Dheader, '是', '否')) '是否是院长'
FROM Teachers T, Department D
WHERE T.Dno=D.Dno;
05-02. 自身连接查询小练习
1[简答题]请写出下列查询的SQL语句,“用自身连接查询年龄比学号是'2014112103'的学生的年龄大的学生信息,结果显示这些学生的学号,姓名和年龄”
SELECT S1.Sno, S1.Sname, YEAR(NOW())-YEAR(S1.Sbirth)
FROM Students S1, Students S2
WHERE S1.Sbirth
2[简答题]请写出下列查询的SQL语句,“用自身连接查询王光华的同班同学的信息,结果显示学生编号、学生姓名、性别、出生日期和班级编号”
SELECT S1.Sno,S1.Sname,S1.Sgender,S1.Sbirth
FROM Students S1, Students S2
WHERE S1.Sclass=S2.Sclass AND S2.Sname='王光华';
#AND S1.Sno< >S2.Sno;
3[简答题]请写出下列查询的SQL语句,“用自然连接查询学生的选修课程情况,结果显示学号、姓名、课程号、课程名和成绩”
SELECT Sno, Sname, Cno, Cname, Grade
FROM students NATURAL JOIN reports
NATURAL JOIN courses;
05-03. 多表连接与外连接查询小练习
1[简答题]请写出下列查询的SQL语句,“查询名叫'王平'的教师的授课信息,结果显示教师编号,教师姓名,授课编号、授课名称和授课班级”
SELECT T.Tno, Tname, C.Cno, Cname, Sclass
FROM teachers T,tutors Tut, courses C
WHERE T.Tno=Tut.Tno AND Tut.Cno=C.Cno
AND Tname='王平';
或者
SELECT T.Tno, Tname, C.Cno, Cname, Sclass
FROM teachers T INNER JOIN tutors Tut T.Tno=Tut.Tno
INNER JOIN courses C ON Tut.Cno=C.Cno
WHERE Tname='王平';
2[简答题]请写出下列查询的SQL语句,“查询计算机与信息工程学院2016级的学生的选课情况,查询结果显示学生学号,学生姓名,专业名称,所在班级,选课编号,选课名称以及选课成绩”
SELECT S.Sno, Sname, Mname, Sclass, R.Cno, Cname
FROM Students S, Department D, Major M, Reports R, Courses C
WHERE S.Sno=R.Sno AND S.Dno=D.Dno AND S.Mno=M.Mno AND R.Cno=C.Cno
AND Dname='计算机与信息工程学院' AND LEFT(Sclass,4)='2016';
3[简答题]请写出下列查询的SQL语句,"查询选修了张雪老师所授课程的学生相关信息,查询结果显示学生学号,学生姓名,所在班级,选修课程编号,选修学年和选修学期,按授课的学年、学期及课程编号升序排序"
SELECT S.Sno, Sname, S.Sclass, R.Cno, R.Racademicyear, R.Rterm
FROM Teachers Tea, Tutors Tut, Reports R, Students S
WHERE Tea.Tno=Tut.Tno AND Tut.Cno=R.Cno AND R.Sno=S.Sno AND Tut.Sclass=S.Sclass
AND Tname='张雪'
ORDER BY R.Racademicyear,R.Rterm,R.Cno;
4[简答题]请写出下列查询的SQL语句,“查询课程表中的所有课程的教师授课情况,结果显示课程编号、课程名称、授课教师编号、教师姓名,授课学年、授课学期和授课班级,若某门课程没有教师的授课信息,则只显示课程的相关信息,授课教师的信息显示为空值”
SELECT C.Cno,Cname,T.Tno,Tname,Tacademicyear,Tterm,Sclass
FROM courses C LEFT JOIN tutors Tut ON C.Cno=Tut.Cno
LEFT JOIN teachers T ON Tut.Tno=T.Tno;
或者
SELECT C.Cno,Cname,T.Tno,Tname,Tacademicyear,Tterm,Sclass
FROM courses C LEFT JOIN tutors Tut USING(Cno)
LEFT JOIN teachers T USING(Tno);
05-04. 带谓词IN的嵌套查询小练习
1[简答题]请写出下列查询的SQL语句,“用带谓词IN的嵌套查询,查询有课程成绩不及格的学生的基本信息,结果显示学号、姓名和所在班级”
SELECT Sno, Sname, Sclass
FROM Students
WHERE Sno IN
(SELECT Sno FROM Reports WHERE Grade<60);
2[简答题]请写出下列查询的SQL语句,“用带谓词IN的嵌套查询,查询有给物理与电子工程学院的学生上过课的教师的信息,查询结果显示教师编号,教师姓名和所在学院名称”
正确答案:
SELECT Tno, Tname, Dname
FROM Teachers Tea, Department D
WHERE Tea.Dno=D.Dno AND
Tno IN
(SELECT Tno FROM Tutors WHERE Sclass IN
(SELECT Sclass FROM Students WHERE Dno IN
(SELECT Dno FROM Department WHERE Dname='物理与电子工程学院')
)
);
3[简答题]请写出下列查询的SQL语句,“用带谓词IN的嵌套查询,查询各班有课程成绩不及格的学生的人数,查询结果显示班级编号,不及格人数,并按照班级升序排序”
SELECT Sclass 班级编号, COUNT(*) 不及格人数
FROM Students S
WHERE Sno IN
(SELECT Sno FROM Reports WHERE Grade<60)
GROUP BY Sclass
ORDER BY Sclass;
4[简答题]请写出下列查询的SQL语句,"用带谓词IN的嵌套查询查询选修了张雪老师所授课程的学生相关信息,查询结果显示学生学号,学生姓名,所在班级,选修课程编号,选修学年和选修学期,按授课的学年、学期及课程编号升序排序"
提示:先查询张雪老师讲授的课程编号和对应的班级编号,然后再通过学生表和选课表找到对应的选修学生的信息
SELECT S.Sno, Sname, S.Sclass, R.Cno, R.Racademicyear, R.Rterm
FROM Reports R, Students S
WHERE R.Sno=S.Sno
AND (Sclass,R.Cno) IN
(SELECT Sclass,Cno FROM Tutors WHERE Tno IN
(SELECT Tno FROM Teachers WHERE Tname='张雪'))
ORDER BY R.Racademicyear,R.Rterm,R.Cno;
05-05. 带比较运算符的嵌套查询小练习
1[简答题]请写出下列查询的SQL语句,“用带比较运算符的嵌套查询,查询王光华的同班同学的信息,结果显示学生编号、学生姓名、性别、出生日期和班级编号”
SELECT Sno,Sname,Sgender,Sbirth
FROM Students
WHERE Sclass= (SELECT Sclass FROM Students WHERE Sname='王光华');
#AND Sname<>'王光华';
2[简答题]请写出下列查询的SQL语句,“用带比较运算符的嵌套查询,查询年龄比学号是'2014112103'的学生的年龄大的学生信息,结果显示这些学生的学号,姓名和年龄”
SELECT Sno, Sname, YEAR(NOW())-YEAR(Sbirth)
FROM Students
WHERE Sbirth<
(SELECT Sbirth FROM students WHERE Sno='2014112103');
3[简答题]请写出下列查询的SQL语句,“用带比较运算符的嵌套查询,查询选修了数据结构,并且成绩高于数据结构的平均成绩的学生信息,结果显示学号、姓名及成绩”
SELECT S.Sno, Sname, Grade
FROM Students S, Reports R
WHERE S.Sno=R.Sno
AND Cno=( SELECT Cno FROM Courses WHERE Cname='数据结构' )
AND Grade >
(SELECT AVG(Grade) FROM Reports WHERE Cno =
(SELECT Cno FROM Courses WHERE Cname='数据结构') );
4[简答题]请写出下列查询的SQL语句,“用带谓词ALL的嵌套查询,查询不是计算机与信息工程学院的,但是年龄比计算机与信息工程学院所有的教师年龄都大的教师的信息,结果显示教师编号、姓名、学院名称和出生日期”
SELECT Tno, Tname, Dname, Tbirth
FROM Teachers Tea, Department D
WHERE Tea.Dno=D.Dno AND Dname<>'计算机与信息工程学院'AND
Tbirth < ALL
(SELECT Tbirth FROM Teachers
WHERE Dno =
(SELECT Dno FROM Department
WHERE Dname='计算机与信息工程学院')
);
5[简答题]请写出下列查询的SQL语句,“用带谓词ANY的嵌套查询,查询非20161151班的,已获得的总学分数不少于20161151班的各位学生已获得总学分数的学生情况,结果显示学生学号和已获得的总学分数,要求,父查询中只使用Reports表和Courses表”
SELECT Sno, SUM(Ccredit)
FROM Reports R, Courses C
WHERE R.Cno=C.Cno AND Grade>=60
AND Sno NOT IN
(SELECT Sno FROM Students WHERE Sclass='20161151')
GROUP BY Sno
HAVING SUM(Ccredit) >= ANY
(SELECT SUM(Ccredit)
FROM Reports R, Courses C
WHERE R.Cno=C.Cno AND Grade>=60
AND Sno IN
(SELECT Sno FROM Students
WHERE Sclass='20161151')
GROUP BY Sno
)
;
05-06. 带谓词EXIST的嵌套查询小练习
1[简答题]请写出下列查询的SQL语句,“用带谓词EXISTS的嵌套查询,查询有给20161121班上过课的教师信息,结果显示教师编号、教师姓名、出生日期和职称”
SELECT Tno, Tname, Tbirth, Tprof
FROM Teachers Tea
WHERE EXISTS
(SELECT * FROM Tutors Tut
WHERE Tea.Tno=Tut.Tno and Sclass ='20161121'
);
2[简答题]请写出下列查询的SQL语句,“用带谓词EXISTS的嵌套查询,查询没有给20161151班上过课的计算机与信息工程学院的教师信息,结果显示教师编号和教师姓名”
:SELECT Tno,Tname
FROM Teachers
WHERE Dno =
(SELECT Dno FROM Department WHERE Dname='计算机与信息工程学院')
AND NOT EXISTS
(SELECT * FROM Tutors
WHERE Sclass='20161151' AND Teachers.Tno=Tutors.Tno);
3[简答题]请写出下列查询的SQL语句,“用带谓词EXISTS的嵌套查询,查询没有选修过一门课程的学生的信息,结果显示学生的学号、姓名、所在学院名称”
SELECT Sno, Sname, Dname
FROM Students S INNER JOIN Department D ON S.Dno=D.Dno
WHERE NOT EXISTS
(SELECT * FROM Reports R
WHERE S.Sno=R.Sno);
4[简答题]请写出下列查询的SQL语句,“用带谓词EXISTS的嵌套查询,查询所有学生都选修了的课程的信息,结果显示课程编号和课程名称”
SELECT Cno, Cname
FROM Courses C
WHERE NOT EXISTS
(SELECT * FROM Students S
WHERE NOT EXISTS
(SELECT * FROM Reports R
WHERE C.Cno=R.Cno AND S.Sno=R.Sno)
);
06-01. 插入语句小练习
(2)添加统计记录 INSERT INTO TeaInfor (Dname,Tprof,Numbers) (SELECT Dname, Tprof, COUNT(*) FROM Teachers T, Department D WHERE T.Dno=D.Dno GROUP BY D.Dname,Tprof ); |
1必答[简答题]新建一个教师情况表(学院名称,职称,人数),并将统计的每个学院中各个职称的人数添加到该表中
(1)新建表
CREATE TABLE TeaInfor
(Dname VARCHAR(15),
Tprof VARCHAR(8),
Numbers INT);
2必答[简答题]数学与统计学院新来了一位教师,将她的信息加入教师表。教师编号:T012,姓名:刘伟,性别:女,出生日期:1992-08-01,学院:数学与统计学院,职称:助教。
提示:学院编号需要通过子查询来获得
INSERT INTO Teachers(Tno, Tname, Tgender, Tbirth, Dno, Tprof)
VALUES
('T012', '刘伟', '女', '1992-08-01',
(SELECT Dno FROM Department WHERE Dname='数学与统计学院'), '助教'
);
3必答[简答题]
增加一位外国语学院的教师(学院编号: 13,教师编号: T013,教师姓名:王小燕,性别:女,出生日期:1991-10-05,职称: 助教),并安排一门教学任务(课程名:大学英语Ⅰ,授课学年: 2019,学期: 1,授课班级: 20171202),完成所有必要信息的添加。
提示: 注意操作的步骤和所有需要添加的信息,(1)学院表中还没有外国语学院的记录;默认情况下,班级中所有的学生都有选修该门课程。
(1)增加外国语学院的信息
INSERT INTO Department(Dno, Dname)
(2)增加教师信息 INSERT INTO Teachers(Dno, Tno, Tname, Tgender, Tbirth, Tprof) VALUES('13','T013','王小燕','女','1991-10-05','助教'); |
VALUES ('13', '外国语学院');
(3)增加授课信息
INSERT INTO Tutors(Tno,Cno,Tacademicyear,Tterm,Sclass)
VALUES('T013',
(SELECT Cno FROM Courses WHERE Cname='大学英语Ⅰ'),
2019,1,'20171202'
);
(4)增加选修信息
INSERT INTO Reports(Sno,Cno,Racademicyear,Rterm)
(SELECT Sno, Cno, 2019, 1
FROM Students, Courses
WHERE Sclass='20171202' AND Cname='大学英语Ⅰ'
);
06-02. 修改语句小练习
1必答[简答题]将学号为2016115101的学生的生源地更改为广东潮州
UPDATE Students
SET Snative='广东潮州'
WHERE Sno='2016115101';
2必答[简答题]将新来的两位教师(T012和T013)的工资更新为1500,岗位津贴更新为1000。
UPDATE Teachers
SET Tsal=1500, Tcomm=1000
WHERE Tno IN ('T012' ,'T013');
3[简答题]重新统计数学与统计学院和外国语学院的各个职称的人数,并更新教师情况表中的数据
UPDATE TeaInfor
SET Numbers= TN.Number
FROM TeaInfor,
(SELECT Dname, Tprof, COUNT(*) Number
FROM Teachers T, Department D
WHERE T.Dno=D.Dno AND Dname IN ('数学与统计学院','外国语学院')
GROUP BY Dname, Tprof) TN
WHERE TeaInfor.Dname=TN.Dname AND TeaInfor.Tprof=TN.Tprof
06-03. 删除语句小练习
1必答[简答题]
2019学年第1学期的汇编语言程序设计由于选课人数太少,将取消该门课程,将相关信息删除掉
提示:选课人数少,说明已有选课记录,取消该门课程,说明已安排教师上课
(1)首先将选修信息删除
DELETE FROM Reports
WHERE Racademicyear=2019 AND Rterm=1
AND Cno=(SELECT Cno FROM Courses WHERE Cname='汇编语言程序设计');
(2)然后将授课信息删除
DELETE FROM Tutors
WHERE Tacademicyear=2019 AND Tterm=1
AND Cno=(SELECT Cno FROM Courses WHERE Cname='汇编语言程序设计');
2必答[简答题]
20141151班的朱玉玲同学,因为身体原因申请退学,现在需要将她的所有相关信息删除掉。
提示:相关信息包括学生的个人信息以及选课信息
(1) 首先删除选课记录
DELETE FROM Reports
WHERE Sno =
(SELECT Sno FROM Students
WHERE Sname='朱玉玲' AND Sclass='20141151'
);
(2) 然后删除学生记录
DELETE FROM Students
WHERE Sname='朱玉玲' AND Sclass='20141151';
07-01. 第07讲第01节知识点测验
1必答[填空题]
数据模型的三要素包括:_____________、______________和______________。
正确答案:
第1空 数据结构 第2空 数据操作 第3空 完整性约束
2必答[判断题]
在关系中,同一个属性列的取值应属于同一个域。 正确答案: 对
3必答[填空题]
已知有集合D1={'张三','李四','王五'},D2={'数学','英语','语文'},D3={83,65,74,90},则三个集合的笛卡尔积D1×D2×D3的基数是_______。 正确答案: 36
4必答[判断题]关系是笛卡儿积的任意子集。 正确答案: 错
5必答[单选题]
下面对于关系的叙述中,不正确的是_______。 正确答案: C
A.关系中的每个属性是不可分解的 B.在关系中元组的顺序是无关紧要的
C.任意的一个二维表都是一个关系 D.每一个关系只有一种记录类型
6必答[填空题]
若关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为____。
若一个关系有多个这样的属性组,则选定一个作为____。
正确答案:
第1空 候选码;候选键 第2空 主码;主键
07-02. 第07讲第02节知识点测验
1必答[单选题]
关系模型的完整性约束不包括:________。 正确答案: C
A.实体完整性 B.参照完整性
C.主键完整性 D.用户定义完整性
2[判断题]实体完整性指的是关系中的每一个元组的属性对应的各个分量不能为空值。 正确答案: 错
3必答[判断题]参照完整性规则给出了关系之间建立联系的约束规则 正确答案: 对
4必答[判断题]参照关系中的外键和对应被参照关系的主键必须同名 正确答案: 错
5必答[单选题]在Reports表中,用来保证实体完整性约束的属性(组)是:正确答案: C
A.Sno B.Cno C.(Sno, Cno) D.Sno和Cno
6必答[简答题]以Students为例,说出表中的一个用户定义完整性约束
正确答案:
如:Sno定义为长度为11的字符型数据,Sgender定义为长度为1的字符型数据,Sbirth定义为日期类型数据
07-03. 第07讲第03节知识点小测验
1必答[填空题]传统的集合运算,要求关系R和关系S是________的,这意味是关系R和关系S具有相同的_______,并且R中的第i个属性和S中的第i个属性定义在同一个______上。
正确答案: 第1空 相容 第2空 度 第3空 域
2必答[判断题] 关系模型中的操作其实就是集合的各种运算 正确答案: 对
3必答[多选题]已知有关系D1={a,b,c},关系D2={(1,2),(2,3)},则以下不属于D1×D2中的元组是
正确答案: BC
A.(a,1,2) B.(b,(2,3)) C.(1,2,b) D.(c,2,3)
4必答[填空题]已知有关系D1={a,b,c},关系D2={(1,2),(2,3)},则笛卡尔积D1×D2的度为________个,基数为______。(填阿拉伯数字) 正确答案:第1空 6 第2空 3
5必答[单选题]
自然连接是构成新关系的有效方法。一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或多个共有的____。 正确答案: D
A.元组 B.行 C.记录 D.属性
6必答[判断题]已知有关系R(A,B,C)和关系S(D,E),则有R▷◁S=R×S。 正确答案: 对
7必答[填空题]
在关系代数的专门关系运算中,从表中取出满足条件的属性的操作称为____;从表中选出满足某种条件的元组的操作称为____;将两个关系中具有共同属性值的元组连接到一起构成新表的操作称为____。
正确答案:
第1空 投影;投影运算 第2空 选择;选择运算 第3空 连接;连接运算
8必答[多选题]
关系R和S的自然连接运算过程包括以下哪些步骤 正确答案: ABD
A.计算广义笛卡尔积R×S B.选择满足条件R.A=S.A的所有元组
C.去掉重复的元组 D.去掉重复的属性
9必答[单选题]设有关系R(A,B,C)和关系S(B,C,D),那么与R⋈S等价的关系代数表达式是_________
A.π1,2,3,4 ( σ2=1∧3=2 (R×S)) B.π1,2,3,6 ( σ2=1∧3=2 (R×S)) 正确答案: C
C.π1,2,3,6(σ2=4∧3=5(R×S)) D.π1,2,3,4(σ2=4∧3=5(R×S))
10必答[单选题]
设W=R⋈S,且W、R、S的属性个数分别为w、r和s,那么三者之间应满足 正确答案: A
A.w≤r+s B.w C.w≥r+s D.w>r+s
11必答[单选题]
设关系R与关系S具有相同的目(或称度),且相对应的属性的值取自同一个域,则R-(R-S)等于________。 正确答案: B
A.R∪S B.R∩S C.R╳S D.R-S
12[判断题]在提出数据库的查询操作时,选择运算应尽早执行 正确答案: 对
07-04. 简单的关系代数表达式小练习
1必答[简答题]用代数表达式查询学生表中,所有学生的学号(Sno) 、姓名(Sname)和出生日期
2必答[简答题]用代数表达式表示查询授课表中,都有哪些教师(Tno),教授了哪些课程(Cno)
3必答[简答题]
用代数表达式表示查询选课表中,成绩不及格的学生的学号、课程号、学年、学期及成绩
4必答[简答题]用代数表达式表示查询选课表中,选修了课程编号为’112p0046’的课程,并且成绩在70到80之间的学生的学号及成绩
5必答[简答题]用代数表达式表示查询选修了课程但还没有成绩的学生的学号(Sno)和相应的课程号(Cno)
07-05. 关系代数表达式的小练习
1必答[简答题]用关系代数表达式表示查询张兰老师所授课程的课程号和课程名
或
2必答[简答题]用关系代数表达式表示查询学号为2016210102的学生所学课程的课程名与成绩
3必答[简答题]用关系代数表达式查询至少选修了两门课程的学生学号
4必答[简答题]用关系代数表达式表示查询所有学生都选修的课程的课程编号号和课程名称
5必答[简答题]用关系代数表达式表示查询没有被任何人选修的课程名
∏Cname(Courses⋈(∏Cno(Courses)-∏Cno(Reports)))
6必答[简答题]用关系代数表达式表示查询至少选修了 2014112103号学生选修的全部课程的学生学号
∏Sno,Cno(Reports)÷∏Cno(σSno='2014112103'(Reports))
7必答[简答题]用关系代数表达式表示查询同时选修计算机网络及操作系统的学生名字。
∏Sname,Cno(Students⋈Reports)÷∏Cno(σCname =‘计算机网络’∨Cname='操作系统'(Courses))
第07讲章节测验
1【单选题】下面对于关系的叙述中,不正确的是_______。
A、关系中的每个属性是不可分解的
B、在关系中元组的顺序是无关紧要的
C、任意的一个二维表都是一个关系
D、每一个关系只有一种记录类型 正确答案:C
2【单选题】自然连接是构成新关系的有效方法。一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或多个共有的_______。
A、元组 B、行
C、记录 D、属性 正确答案:D
3
【单选题】设W=R⋈S,且W、R、S的属性个数分别为w、r和s,那么三者之间应满足
A、w≤r+s B、w
C、w≥r+s D、w>r+s 正确答案:A
4
【单选题】设属性A 是关系R 的主键中的属性,则属性A 不能取空值(NULL),这是_________
A、实体完整性规则
B、参照完整性规则
C、用户定义完整性规则
D、域完整性规则 正确答案:A
5【单选题】设关系R与关系S具有相同的目(或称度),且相对应的属性的值取自同一个域,则R-(R-S)等于________。
A、R∪S
B、R∩S
C、R╳S
D、R-S 正确答案:B
6【单选题】对于被参照表Students表中的主键Sno和参照表Reports表中的Sno,是否可以在Reports表中将Sno的外键约束设置成取空值?
A、可以
B、不可以 正确答案:B
答案解析:Reports表的主键中包含了Sno,还必须满足实体完整性约束,所以不能置空值。
7【填空题】数据模型的三要素包括:_____________、______________和______________。
第一空: 数据结构 第二空: 数据操作 第三空: 完整性约束
8【填空题】若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为____。若一个关系有多个这样的属性组,则选定一个作为该关系的____。
正确答案:第一空: 候选码;候选键
第二空: 主码;主键
9填空题】已知有关系D1={a,b,c},关系D2={(1,2),(2,3)},则笛卡尔积D1×D2的度为________,基数为______。(填阿拉伯数字)
正确答案:第一空: 3 第二空: 6
10【填空题】在关系代数的专门关系运算中,从表中选出满足布尔条件的元组的操作称为____。
正确答案:第一空: 选择;选择运算
11填空题】在关系代数的专门关系运算中,将两个关系中具有共同属性值的元组连接到一起构成新表的操作称为_______。
正确答案:第一空: 连接;连接运算
12【填空题】设关系R和S的度数分别为n和m(n>m>0),那么R÷S的度数是_______, 将得到的关系结果与关系T(度数为t)去计算广义笛卡尔积,那么(R÷S)×T的度数是_______。
正确答案:
第一空: n-m
第二空: n-m+t
13【多选题】已知有关系D1={a,b,c},关系D2={(1,2),(2,3)},则以下不属于D1×D2中的元组是
A、(a,1,2)
B、(b,(2,3))
C、(1,2,b)
D、(c,2,3) 正确答案:BC
14
【多选题】关系代数运算中,专门的关系运算有
A、连接
B、交
C、投影
D、选择
正确答案:ACD
15【多选题】关系R和S的自然连接运算过程包括以下哪些步骤
A、计算广义笛卡尔积R×S
B、选择满足条件R.A=S.A的所有元组
C、去掉重复的元组
D、去掉重复的属性 正确答案:ABD
16【判断题】关系是笛卡儿积的任意子集。 正确答案:错
答案解析:不能是任意子集,是有约束条件的
17【判断题】参照完整性规则给出了关系之间建立联系的约束规则 正确答案:对
18【判断题】参照关系中的外键和对应被参照关系的主键必须同名 正确答案:错
09-01. 关系模式规范化练习
1必答[简答题]设关系模式R(Sno,Cno,Grade,Tname,Taddress),其属性分别表示学生学号、课程编号、成绩、任课教师姓名、教师地址等属性。如果规定,每个学生每学一门课只有一个成绩,每门课只有一个教师任教,每位教师可以承担多门课程;每个教师只有一个地址且没有同姓名的教师。
试写出关系模式R的函数依赖集F和候选键K。
正确答案:
F={(Sno,Cno)→Grade,Cno→Tname,Tname→Taddress}
K=(Sno,Cno)
2必答[简答题]判断关系模式R是否属于2NF,并说明理由。若不属于,则将其进行模式分解。
正确答案:
∵R的候选键是(Sno,Cno),而非主属性Tname存在Cno→Tname,部分函数依赖于候选键
∴R∉2NF。
进行模式分解:
R1=(Sno, Cno, Grade)
R2=(Cno,Tname,Taddress)
3进一步判断由2得到的关系模式是否属于3NF,并说明理由。若不属于,则将其进行模式分解。
正确答案:
∵R1的候选键是(Sno,Cno),且其只包含一个函数依赖关系,不存在传递函数依赖,
∴R1∈3NF
∵R2的候选键是Cno,而依赖集包含Cno→Tname,Tname→Taddress
即非主属性Taddress对候选键存在传递函数依赖
所以R2∉3NF
将R2进行模式分解: R21=(Cno, Tname) R22=(Tname, Taddress)
09-02. 范式小练习
1必答[简答题]指出下列关系模式最高属于第几范式,说明理由
R(A, B, C),F={AB→C}
2必答[简答题]指出下列关系模式最高属于第几范式,说明理由
R(A, B, C),F={B→C, AC→B}
3必答[简答题]指出下列关系模式最高属于第几范式,说明理由
R(A, B, C),F={B→C, B→A, A→BC}
4必答[简答题]指出下列关系模式最高属于第几范式,说明理由
R(A, B, C),F={A→B, A→C}
5必答[简答题]指出下列关系模式最高属于第几范式,说明理由
R(A, B, C, D),F={A→C, AD→B}