2015年数据库课后习题参考答案.pdf
第1章数据概述一.选择题I.下列关于数据库管理系统的说法,错误的是 CA.数据库管理系统与操作系统有关,操作系统的类型决定了能够运行的数据库管理系统的类型B.数据库管理系统对数据库文件的访问必须经过操作系统实现才能实现C.数据库应用程序可以不经过数据库管理系统而直接读取数据库文件D.数据库管理系统对用户隐藏了数据库文件的存放位置和文件名2.下列关于用文件管理数据的说法,错误的是 DA.用文件管理数据,难以提供应用程序对数据的独立性B.当存储数据的文件名发生变化时,必须修改访问数据文件的应用程序C.用文件存储数据的方式难以实现数据访问的安全控制D.将相关的数据存储在一个文件中,有利于用户对数据进行分类,因此也可以加快用户操作数据的效率3.下列说法中,不属于数据库管理系统特征的是 CA.提供了应用程序和数据的独立性B.所有的数据作为一个整体考虑,因此是相互关联的数据的集合C.用户访问数据时,需要知道存储数据的文件的物理信息D.能够保证数据库数据的可靠性,即使在存储数据的硬盘出现故障时,也能防止数据丢失5.在数据库系统中,数据库管理系统和操作系统之间的关系是 DA.相互调用B.数据库管理系统调用操作系统C.操作系统调用数据库管理系统D.并发运行6.数据库系统的物理独立性是指 DA.不会因为数据的变化而影响应用程序B.不会因为数据存储结构的变化而影响应用程序C.不会因为数据存储策略的变化而影响数据的存储结构D.不会因为数据逻辑结构的变化而影响应用程序7.数据库管理系统是数据库系统的核心,它负责有效地组织、存储和管理数据,它位于用户和操作系统之间,属于 AA.系统软件 B.工具软件C.应用软件 D.数据软件8.数据库系统是由若干部分组成的。下列不属于数据库系统组成部分的是 BA.数据库 B.操作系统C.应用程序 D.数据库管理系统9.下列关于客户/服务器结构和文件服务器结构的描述,错误的是 DA.客户/服务器结构将数据库存储在服务器端,文件服务器结构将数据存储在客户端B.客户/服务器结构返回给客户端的是处理后的结果数据,文件服务器结构返回给客户端的是包含客户所需数据的文件C.客户/服务器结构比文件服务器结构的网络开销小D.客户/服务器结构可以提供数据共享功能,而用文件服务器结构存储的数据不能共享数据库是相互关联的数据的集合,它用综合的方法组织数据,具有较小的数据冗余,可供多个用户共享,具有较高的数据独立性,具有安全控制机制,能够保证数据的安全、可靠,允许并发地使用数据库,能有效、及时地处理数据,并能保证数据的一致性和完整性。1 0.下列关于数据库技术的描述,错误的是 BA.数据库中不但需要保存数据,而且还需要保存数据之间的关联关系B.由于数据是存储在磁盘上的,因此用户在访问数据库数据时需要知道数据的存储位置C.数据库中数据存储结构的变化不会影响到应用程序D.数据库中的数据具有较小的数据冗余二.填空题1.数据管理的发展主要经历了 和 两个阶段。文件管理数据库管理2.在利用数据库技术管理数据时,所有的数据都被 统一管理。数据库管理系统3.数据库管理系统提供的两个数据独立性是 独立性和 独立性。物 理 逻 辑4.数据库系统能够保证进入到数据库中的数据都是正确的数据,该特征称为 o 数据完整性5.在客户/服务器结构中,数据的处理是在 端完成的。服务器6.数据库系统就是基于数据库的计算机应用系统,它主要由、利 三部分组成。数据库、数据库管理系统和应用程序7.与用数据库技术管理数据相比,文 件 管 理 系 统 的 数 据 共 享 性,数据独立性 o差 低8.在数据库技术中,当表达现实世界的信息内容发生变化时,可以保证不影响应用程序,这个特性称为。逻辑独立性9.当数据库数据由于机器硬件故障而遭到破坏时,数据库管理系统提供了将数据库恢复到正确状态,并尽可能使数据不丢失的功能,这是数据库管理系统的 特性保证的。可靠性10.数据库中的数据是相互关联的数据集合,具有较小的数据冗余,可供多个用户共享,具有较高的数据独立性,且具有安全性和可靠性,这些特征都是由 保证的。数据库管理系统第 2 章数据模型与数据库系统结构选择题1.数据库三级模式结构的划分,有利于 AA.数据的独立性 B.管理数据库文件C.建立数据库 D.操作系统管理数据库2.在数据库的三级模式中,描述数据库中全体数据的逻辑结构和特征的是 BA.内模式 B.模式 C.外模式 D.其他3.数据库系统中将数据分为三个模式,从而提供了数据的独立性,下列关于数据逻辑独立性的说法,正确的是 CA.当内模式发生变化时,模式可以不变B.当内模式发生变化时,应用程序可以不变C.当模式发生变化时,应用程序可以不变D.当模式发生变化时,内模式可以不变4.为最大限度地保证数据库数据的正确性,关系数据库实现了三个完整性约束,下列用于保证实体完整性的是 BA.外码 B.主码 C.CHECK约束 D.UNIQUE约束5.下列关于关系中主属性的描述,错误的是 DA.主码所包含的属性一定是主属性B.外码所引用的属性一定是主属性C.候选码所包含的属性都是主属性D.任何一个主属性都可以唯一地标识表中的一行数据6.设有关系模式销售(顾客号,商品号,销售时间,销售数量),若允许一个顾客在不同时间对同一个产品购买多次,则此关系模式的主码是 DA.顾客号 B.产品号C.(顾客号,商品号)D.(顾客号、商品号、销售时间)7.关系数据库用二维表来存储数据。下列关于关系表中记录的说法,正确的是 BA.顺序很重要,不能交换 B.顺序不重要C.按输入数据的顺序排列 D.一定是有序的8.下列模式中,用于描述单个用户数据视图的是 CA.内模式 B.概念模式C.外模式 D.存储模式9.在利用概念层数据模型描述数据时,一般要求模型要满足三个要求。下列描述中,不属于概念层数据模型应满足的要求的是 AA.能够描述并发数据 B.能够真实地模拟现实世界C.容易被业务人员理解 D.能够方便地在计算机上实现10.数据模型三要素是指BA.数据结构、数据对象和数据共享B.数据结构、数据操作和数据完整性约束C.数据结构、数据操作和数据的安全控制D.数据结构、数据操作和数据的可靠性11.下列关于实体联系模型中联系的说法,错 误 的 是DA.一个联系可以只与一个实体有关B.一个联系可以与两个实体有关C.个联系可以与多个实体有关D.一个联系也可以不与任何实体有关12.数据库系统中的三级模式以及模式间的映像提供了数据的独立性。下列关于两级映像的说法,正确的是 CA.外模式到模式的映像是山应用程序实现的,模式到内模式的映像是由DBMS实现的B.外模式到模式的映像是由DBMS实现的,模式到内模式的映像是由应用程序实现的C.外模式到模式的映像以及模式到内模式的映像都是山DBMS实现的D.外模式到模式的映像以及模式到内模式的映像都是由应用程序实现的13.下列不属于数据完整性约束的是 DA.实体完整性 B.参照完整性C.域完整性 D.数据操作完整性14.下列关于关系操作的说法,正确的是 AA.关系操作是非过程化的B.在进行关系操作时,用户需要知道数据的存储位置C.在进行关系操作时,用户需要知道数据的存储结构D.用户可以在关系上直接进行行定位操作14.下列关于概念层数据模型的说法,错误的是 CA.概念层数据模型应该采用易于用户理解的表达方式B.概念层数据模型应该比较易于转换成组织层数据模型C.在进行概念层数据模型设计时,需要考虑具体的DBMS的特点D.在进行概念层数据模型设计时,重点考虑的内容是用户的业务逻辑15.下列关于外码的说法,正确的是 CA.外码必须与其所引用的主码同名B.外码列不允许有空值C.外码和所引用的主码名字可以不同,但语义必须相同D.外码的取值必须要与所引用关系中主码的某个值相同16.下列关于关系的说法,错误的是 DA.关系中的每个属性都是不可再分的基本属性B.关系中不允许出现值完全相同的元组C.关系中不需要考虑元组的先后顺序D.关系中属性顺序的不同,关系所表达的语义也不同二.填空题1.数据库可以最大限度地保证数据的正确性,这在数据库中被称为。数据完整性2.实 体-联 系 模 型 主 要 包 含、和 三部分内容。实 体 属 性 联 系3.如果实体A 与实体B 是一对多联系,则实体B 中的一个实例最多可对应实体A 中的 实例。一 个4.数据完整性约束包括 完整性、完整性和 完整性。实 体 参 照 用户定义5.关 系 数 据 模 型 的 组 织 形 式 是。二维表6.数据库系统的 和 之间的映像,提供了数据的物理独立性。7.数据的逻辑独立性是指当 变化时可以保持 不变。内 模 式 模 式8.数据模型三要素包括、和。数据结构数据操作数据完整性约束9.实体联系模型属于 层数据模型,它与具体的DBMS。概念 无关10.关系操作的特点是基于 的操作。集合11.当数据的物理存储位置发生变化时,通过调整 映像,可以保证 不变化,从而保证数据的物理独立性。模式/内模式 模式12.参照完整性约束是通过 保证的。外码第 3 章 SQL语言基础及数据定义功能选择题1.下列关于SQL语言特定的叙述,错误的是 BA.使用SQL语言访问数据库,用户只需提出做什么,而无需描述如何实现B.SQL语言比较复杂,因此在使用上比较难C.SQL语言可以在数据库管理系统提供的应用程序中执行,也可以在DOS环境下执行D.使用SQL语言可以完成任何数据库操作2.下列所述功能中,不属于SQL语言功能的是 DA.数据库和表的定义功能 B.数据查询功能C.数据增、册 h改功能 D.提供方便的用户操作界面功能3.设某职工表中有用于存放年龄(整数)的列,下列类型中最合适年龄列的是 CA.int B.smallintC.tinyint D.bit4.SQL Server数据库是由文件组成的。下列关于数据库所包含的文件的说法,正确的是 DA.一个数据库可包含多个主数据文件和多个日志文件B.一个数据库只能包含一个主数据文件和一个日志文件C.一个数据库可包含多个次要数据文件,但只能包含一个日志文件D.一个数据库可包含多个次要数据文件和多个日志文件5.在 SQL Server中创建用户数据库,其主数据文件的大小必须大于 BA.master数据库的大小 B.model数据库的大小C.msdb数据库的大小 D.3MB6.在 SQL Server系统数据库中,存放用户数据库公共信息的是 DA.master B.modelC.msdb数据库的大小 D.tempdb7.在 SQL Server中创建用户数据库实际就是定义数据库所包含的文件以及文件的属性。下列不属于数据库文件属性的是 CA.初始大小 B.物理文件名C.文件结构 D.最大大小8.在 SQL Server中创建用户数据库实际就是定义数据库所包含的文件以及文件的属性。下列不属于数据库文件属性的是 CA.初始大小 B.物理文件名C.文件结构 D.最大大小9.下列约束中用于限制列的取值范围的约束是 BA.PRIMARY KEYB.CHECKC.DEFAULTD.UNIQUE10.下列约束中用于限制列的取值不重的约束是DA.PRIMARY KEYB.CHECKC.DEFAULTD.UNIQUE1 1.下列约束中用于实现实体完整性的约束是AA.PRIMARY KEYB.CHECKC.DEFAULTD.UNIQUE1 2.下列关于DEFAULT约束的说法,错误的是 DA.一个DEFAULT约束只能约束表中的一个列B.在一个表上可以定义多个DEFAULT约束C.DEFAULT只能定义在列级完整性约束处D.在列级完整性约束和表级完整性约束处都可以定义DEFAULT约束第 4 章数据操作语句一.选择题1.当关系R 和 S 进行连接操作时,如果R 中的元组不满足连接条件,在连接结果中也会将这些记录保留下来的操作是 AA.左外连接 B.右外连接C.内连接 D.自连接2.设在某SELECT语句的WHERE子句中,需要对Grade列的空值进行处理。下列关于空值的操作,错误的是 CA.Grade IS NOT NULLC.Grade=NULL3.下列聚合函数中,不忽略空值的是A.SUM(列名)C.AVG例名)B.Grade IS NULLD.NOT(Grade IS NULL)DB.MAX(列名)D.COUNT(*)4.SELECT INTO.FROM语句的功能是 AA.将查询结果插入到一个新表中B.将查询结果插入到一个已建好的表中C.合并查询的结果D.向已存在的表中添加数据5.下列利用SC表的查询语句中,错误的是 BA.SELECT Sno,COUNT(*)FROM SC GROUP BY SnoB.SELECT Sno FROM SC GROUP BY Sno WHERE COUNT(*)3C.SELECT Sno FROM SC GROUP BY Sno HAVING COUNT(*)3D.SELECT Sno FROM SC GROUP BY Sno6.现要利用Student表查询年龄最小的学生姓名和年龄。下列实现此功能的查询语句中,正确的是DA.SELECT Sname,MIN(Sage)FROM StudentB.SELECT Sname,Sage FROM Student WHERE Sage=MIN(Sage)C.SELECT TOP 1 Sname,Sage FROM StudentD.SELECT TOP 1 Sname,Sage FROM Student ORDER BY Sage7.设 SC 表中记录成绩的列为:G rade,类型为int。若在查询成绩时,希望将成绩按 优、良、中、及 格 和 不及格 形式显示,正确的Case函数是 CA.Case GradeWhen90-100THEN,优,When80-89THEN,良,When 70-79THEN 中When60 69THEN,及格Else 不及格,EndB.CaseC.D.WhenWhenWhenWhenE lseEndCaseWhenWhenWhenWhenE lseEndGradeGradeGracieGradeGracieGradeGracieGradeGradebetw eenbetw eenbetw eenbetw een90807060,不 及 格,betw eenbetw eenbetw eenbetw een,不 及 格,Case GradeWhen90-10090807060andandandandandandandandTHEN Gracie100897969100897969THENTHENTHENTHENTHENTHENTHENTHENWhen80-89THEN GradeWhen 70-79THEN GradeWhen60-69THEN Grade,优,良,中,及 格,E lseGrade 不 及 格 EndGracieGradeGradeGrade,优,良,t中,及 格,8.下述语句的功能是将两个查询结果合并为一个结果。其中正确的是A.s e le c tO rdersno,snam e,sageby sagefromstu d e n twheresd ep tB.C.D.Unions e le c tO rderse le c tUnions e le c tby sageO rder by sages e le c t sno,snam e,sageUnionsno,snam e,sagesn。,snam e,sagesn oz snam e,sagefromstu d e n twheresdeptfromstu d e n twheresdeptfromstu d e n twheresdeptfromstu d e n twheresdepts e le c t sno,snam e fromstu d e n t where sdeptO rder by sages e le c tO rdersno,snam e,sageby sagefrom stu d e n twhere sdeptUnions e le c tsn。,snam e,sagefrom stu d e n twhere sd ep t9.下 列SQL语 句 中,用于修改表数据的语句是CA.ALTERB.SELECTC.UPDATED.INSERT1 0.设 有Teachers表,该表的定义如下:CREATE TABLE T e a c h e rs(,优,良,中,及 格,B=1 cs=1 is=*cs=1 is=*cs,=1 cs=1 isTno CHAR(8)PRIMARY KEY,Tname VARCHAR(10)NOT NULL,Age TINYINT CHECK(Age BETWEEN 25 AND 65)卜列插入语句中,不能正确执行的是DA.B.C.D.INSERTINSERTINSERTINSERTINTOINTOINTOINTOTeachers VALUES(T100,张鸿,NULL)Teachers(Tno,Tname,Age)VALUES(T100 一 张 鸿 I 30)Teachers(Tno,Tname)VALUES(T100,张鸿,)TeachersVALUES(T100 I,张鸿,)11.设数据库中己有表4-1至 4-3所小的Student、Course和 SC表。现要查询学生选的第2 学期开设课程的情况,只需列出学号、姓名、所在系和所选的课程号。该查询涉及到的表是 DA.仅 Student 表 B.仅 Student 和 SC 表C.仅 Student 和 Course 表 D.Student-.SC 和 Course 表12.删除计算机系学生(在 student表中)的修课记录(在 SC表中)的正确的语句是表是BA.DELETE FROM SC JOIN Student b ON S.Sno=b.SnoWHERE Sdept=计算机系B.DELETE FROM SC FROM SC JOIN Student b ON SC.Sno=b.SnoWHERE Sdept=计算机系,C.DELETE FROM Student WHERE Sdept=计算机系D.DELETE FROM SC WHERE Sdept=计算机系二.填空题1.在相关子查询中,子查询的执行次数是由_ _ _ _ _ _ _ _ _ 决定的。外层表的行数2.对包含基于集合测试子查询的查询语句,是先执行 层查询,在执行_ _ _ _ _ _ _ _ _层查询。内,外3.对包含相关子查询的查询语句,是先执行 层查询,在执行_ _ _ _ _ _ _ _ _ 层查询。外,内4.聚合函数COUNT(*)是按 统计数据个数。行5.设 Grade 列目前有三个值:90、80 和 N U L L,则 AVG(Grade)的值是,MIN(Grade)的值是 0 85,806.设有学生表(学号,姓名,所在系)和选课表(学号,课程号,成绩),现要建立统计每个系的选课人数。请补全下列语句:COUNT(DISTINCT选课表.学号)SELECT所在系,FROM选课表JOIN学 生 表 O N 选课表.学号=学生表.学号GROUP B Y 所在系7.设 有 选 课 表(学号,课程号,成绩),现要查询考试成绩最高的三个学生的学号、课程号和成绩,包括并列情况。请补全下列语句:TOP 3 WITH TIES,ORDER B Y 成 绩 DESCSELECT 学号,课程号,成 绩 FROM选课表8.UNION操作用于合并多个查询语句的结果,如果在合并结果时不希望去掉重复的数据,则在用UNION操作时应使用 关键字。ALL9.进行自连接操作的两个表在物理上为一张表。通过 方法可将物理上的一张表在逻辑上成为两张表。起别名10.FROM A LEFT JOIN B O N 语句表示在连接结果中不限制 表数据必须满足连接条件。A11.对 分 组 后 的 统 计 结 果 再 进 行 筛 选 使 用 的 子 句 是。HAVING12.若 SELECT语句中同时包含WHERE子句和GROUP子句,则先执行的是 子句。WHERE三.简答题1.在聚合函数中,哪个函数在统计时不考虑NULL。答:COUNT(*)2.在 LIKE运算符中“”的作用是什么?答:匹配0 个或多个字符。3.WHERE Age BETWEEN 20 AND 3 0 子句,查找的Age范围是多少?答:Age大于等于20并且小于等于304.WHERE Sdept NOT IN(CS,J IS-MA),查找的数据是什么?答:查找CS,J I S,MA,三个系之外的其他系5.自连接与普通内连接的主要区别是什么?答:自连接中进行连接操作的表在物理上是一张表,而普通内连接进行连接的表在物理上是两张表。6.外连接与内连接的主要区别是什么?答:进行外连接的两个表中,可以有一张表不满足连接条件,而进行内连接的两个表必须都满足连接条件。7.在使用UNION合并多个查询语句的结果时,对各个查询语句的要求是什么?答:各个查询语句的列个数必须相同,对应列的语义相同,类型兼容。8.相关子查询与嵌套子查询在执行方面的主要区别是什么?答:相关子查询的执行过程是先外后内,而嵌套子查询的执行过程是先内后外。而且相关子查询中必须有与外层查询的关联,而嵌套子查询中,内、外层查询之间没有关联关系。9.执 行 SELECT INOT表 名 FROM语句时,对表名的要求是什么?答:必须是一个不存在的新表名。10.对统计结果的筛选应该使用哪个子句完成?答:使用HAVING子句11.在排序子句中,排序依据列的前后顺序是否重要?ORDER BY C1,C2子句对数据的排序顺序是什么?答:重要,系统会按列的先后顺序进行排序。先按C 1列进行排序,在 C 1列值相同时再按C 2列进行排序。12.TO P子句的作用是什么?答:在查询结果产生后,提取结果的前若干行数据。四.上机练习1.查询学生选课表中的全部数据。答:select*from SC2.查询计算机系的学生的姓名、年龄。答:select sname,sage from student where sdept=,计算机系3.查询成绩在7080分之间的学生的学号、课程号和成绩。答:select sn。,eno,grade from sc on where grade between 70 and 804.查询计算机系年龄在1820之间且性别为“男”的学生的姓名、年龄。答:select sname,sage from studentwhere sdept=计算机系,and sage between 18 and 20 and ssex=男5.查 询“C001”号课程的最高分。答:select max(grade)from sc where eno=1C00116.查询计算机系学生的最大年龄和最小年龄。答:select max(sage)as max_ageA min(sage)as min_age from studentwhere sdept=计算机系7.统计每个系的学生人数。答:select sdeptr count(*)from student group by sdept8.统计每门课程的选课人数和考试最高分。答:select eno,count(*),max(grade)from sc group by eno9.统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。答:select sno,count(*)r sum(grade)from sc group by snoorder by count(*)asc10.查询总成绩超过200分的学生,要求列出学号和总成绩。答:select sno,sum(grade)from sc group by snohaving sum(grade)20011.查询选课门数超过2 门的学生的学号、平均成绩和选课门数。答:select sno,avg(grade),count(*)from sc having count(*)212.查询选了“C002”课程的学生的姓名和所在系。答:select sname,sdept from student s join sc on s.sno=sc.snowhere eno=1C002113.查询成绩80分以上的学生的姓名、课程号和成绩,并按成绩降序排列结果。答:select sname,cnoz grade from student s join sc on s.sno=sc.snowhere grade 80 order by grade desc14.查询计算机系男生修了“数据库基础”的学生的姓名、性别和成绩。答:select sname,ssex,grade from student s join sc on s.sno=sc.snojoin course c on c.eno=sc.enowhere sdept=,计算机系,and ssex=,男,and cname=,数据库基础,15.查询学生的选课情况,要求列出每位学生的选课情况(包括未选课的学生),并列出学生的学号、姓名、课程号和考试成绩。答:select s.snoz sname,eno,grade from student sleft join sc on s.sno=sc.sno16.查询哪些课程没有人选,要求列出课程号和课程名。答:select c.eno,cname from course c left join sc on c.eno=sc.enowhere sc.eno is null17.查询计算机系没有选课的学生,列出学生姓名。答:select sname from student s left join sc on s.sno=sc.snoWhere sdept=计 算 机 系 and sc.sno is null18.列 出“数据库基础”课程考试成绩前三名的学生的学号、姓名、所在系和考试成绩。答:select top 3 s.sn。,sname,sdept,gradefrom Student s join SC on s.Sno=SC.Snojoin Course c on c.Cno=SC.Cnowhere cname=,数据库基础,order by grade desc19.查询VB考试成绩最低的学生的姓名、所在系和VB成绩。答:select top 1 with ties sname,sdept,grade from student sjoin sc on s.sno=sc.snojoin course c on o=owhere cname=1VB1order by grade asc20.查询有考试成绩的所有学生的姓名、修课名称及考试成绩,要求将查询结果放在张新的永久表中,假设新表名为new sc。答:select sname,cname,grade into new_scfrom student s join sc on s.sno=sc.snojoin course c on o=owhere grade is not null21.分别查询信息管理系和计算机系的学生的姓名、性别、修课名称、修课成绩,并要求将这两个查询结果合并成一个结果集,并以系名、姓名、性别、修课名称、修课成绩的顺序显示各列。答:select sdept系名,sname姓名,ssex性别,cname修课名称,grade修课成绩from student s join sc on s.sno=sc.snojoin course c on o=sc.enowhere sdept=,信息管理系,UNIONselect sdept,sname,ssex,cname,gradefrom student s join sc on s.sno=sc.snojoin course c on o=sc.enowhere sdept=,计算机系,22.查询选了 VB的学生学号、姓名、所在系和成绩,并对所在系进行如下处理:当所在系为“计算机系”时;显 示“CS”;当所在系为“信息管理系”时:显 示“IS”;当所在系为“通信工程系”时,显 示“CO”;对其他系,均显示“OTHER”。答:select s.sno 学号,sname 姓名,case sdeptwhen 计算机系 then 1CS1when 信息系,then 1 IS1when 数 学 系 thenCOelse fOTHER1end a s 所在系,grade成绩from student s join sc on s.sno=sc.snojoin course c on c.eno=sc.enowhere cname=*vb*23.用子查询实现如下查询:(1)查询选了“C001”课程的学生姓名和所在系。答:select sname,sdept from student where sno in(select sno from sc where eno=COO11)(2)查询通信工程系成绩80分以上的学生学号和姓名。答:select sno,sname from student where sno in(select sno from sc where grade 80)and sdept=,通信工程系,(3)查询计算机系考试成绩最高的学生姓名。答:select sname from student s join sc on s.sno=sc.snowhere sdept=计算机系 and grade=(select max(grade)from sc join student s on s.sno=sc.snowhere sdept=计算机系)(4)查询年龄最大的男生的姓名和年龄。答:select sname,sage from studentWhere sage=(select max(sage)from student and ssex=男,)and ssex=男(5)查 询“C001”课程的考试成绩高于“C001”课程的平均成绩的学生的学号和“C001”课程成绩。答:select sno,grade from sc where eno=C0011And grade (select avg(grade)from sc where eno=1 C0011)24.创建一个新表,表名为test,其结构为:(COL1,COL2,COL3),其中:COL1:整型,允许空值。COL2:字符型,长度为10,不允许空值。COL3:字符型,长度为10,允许空值。试写出按行插入如卜数据的语句(空白处表示空值)。COL1COL2COL3B11B2C22B3答:create table test_t(COL1 int,COL2 char(10)not null,COL3 char(10)insert into test_t values(NULL,B1,NULL)insert into test_t values(lz,B2 1,1C2 T)insert into testt(COL1,COL2)values(2Z*B31)25.将“C001”课程的考试成绩加10分。答:update sc set grade=grade+10 where eno=1C001126.将计算机系所有选修了“计算机文化学”课程的学生成绩加10分,分别用子查询和多表连接形式实现。答:(1)子查询update sc set grade=grade+10where sno in(select sno from student where sdept=计算机系)and eno in(select eno from course where cname=计算机文化学)(2)多表连接update sc set grade=grade+10from sc join student s on sc.sno=s.snojoin course c on c.eno=sc.enowhere sdept=,计算机系,and canem=,计算机文化学,27.删除修课成绩小于50分的学生的选课记录。答:delete from sc where grade 502 8 .删除信息管理系考试成绩小于5 0 分的学生的该门课程的修课纪录,分别用子查询和多表连接形式实现。答:(1)用连接查询实现delete from sc from sc join student s on s.sno=sc.snowhere sdept=信息管理系 and grade 50(2)用子查询实现delete from sc where sno in(select sno from student where sdept=信息管理系)and grade ,=、和=60Group by sno2.利用第1题建立的视图,写出完成如下查询的SQL语句,并执行这些语句,查看执行结果。将查询语句和执行结果保存到一个文件中o(1)查询考试成绩大于等于90分的学生的姓名、课程名和成绩。答:Select snamef cname,grade From v2 where grade=90(2)查询选课门数超过3 门的学生的学号和选课门数。答:Select*from v3 where total=3(3)查询计算机系选课门数超过3 门的学生的姓名和选课门数。答:Select sname,total from v3 join student s on s.sno=v3.snoWhere sdept=计算机系 and total=3(4)查询修课总学分超过10分的学生的学号、姓名、所在系和修课总学分。答:Select v4.sno,sname,sdeptz total_creditFrom v4 join student s on s.sno=v4.snoWhere total_credit=10(5)查询年龄大于等于20岁的学生中,修课总学分超过10分的学生的姓名、年龄、所在系和修课总学分。答:Select sname,sage,sdept,total_creditFrom v4 join student s on s.sno=v4.snoWhere sage=20 and total_credit=103.修改第1题(4)定义的视图,使其查询每个学生的学号、总学分以及总的选课门数。答:A lte r view v4 AsS e le c t sn o,su m(c re d it)as to ta l_ c r e d itz c o u n t(*)as to ta l_ c n oFrom sc jo in co u rse c on c.eno=s c.enoGroup by sno4.写出实现下列操作的SQL语句,执行这些语句,并在SSMS工具中观察语句执行结果。(1)在 Student表的Sdept列上建立一个按降序排序的非聚集索引,索引名为:Idx_Sdept。答:C reate index Idx_Sdept on s tu d e n t(Sdept DESC)(2)在 Student表的Snaine列上建立一个唯一的非聚集索引,索引名为:Idx_Sname。答:C reate unique index Idx_Sname on student(Snam e)(3)在 Course表上为Cname列建立一个非聚集索引,索引名为:Idx Cname答:C reate index Idx_Cname on Course(Cname)(4)在 SC表上为Sno和 Cno建立一个组合的非聚集索引,索引名为:Idx_SnoCnoo答:C reate index Idx_SnoCno on SC(Sno,Cno)(5)删除在Sname列上建立的Idx Sname索引。答:drop index Idx_Sname on S tuden