《数据库技术与应用》第4章 习题答案.pdf

上传人:赵** 文档编号:52497796 上传时间:2022-10-23 格式:PDF 页数:5 大小:203.02KB
返回 下载 相关 举报
《数据库技术与应用》第4章 习题答案.pdf_第1页
第1页 / 共5页
《数据库技术与应用》第4章 习题答案.pdf_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《《数据库技术与应用》第4章 习题答案.pdf》由会员分享,可在线阅读,更多相关《《数据库技术与应用》第4章 习题答案.pdf(5页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、数据库技术与应用第数据库技术与应用第 4 4 章章 习题答案习题答案第 4 章 关系数据库标准语言 SQL 1.试述关系数据库标准语言 SQL 的特点。解:SQL 语言是一种功能强大、通用性好又简单易学的语言,主要特点包括:?综合统一:SQL 语言将数据定义语言 DDL、数据操纵语言 DML、数据控制语言 DCL 的功能集于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动。?高度非过程化:用 SQL 语言进行数据操作只要提出“做什么,而无需指明“怎么做。?面向集合操作:SQL 采用集合操作方式。不仅查询的结果可以是元组的集合,而且一次插入、更新、删除操作的对象也可以是元组的集合。?支

2、持关系数据库的三级模式结构:外模式对应于视图(View),模式对应于根本表,内模式对应于存储文件。?简洁易学,灵活易用:SQL 语言简洁,只有少量关键字,语法简单。SQL 的使用方式非常灵活,可以直接通过 SQL 实现人机交互,还可以将 SQL 语句嵌入到其他高级语言程序中来使用。2.概述 SQL 的根本功能。解:SQL 语言是一种综合的、通用的、功能强大的关系数据库语言,集数据查询(Data Query)、数据操纵(Data Manipulation)、数据定义(Data Definition)和数据控制(Data Control)功能于一体。数据定义功能。主要用于定义、删除和修改关系数据库

3、中的对象,数据库对象主要包括根本表、视图等。1 1/5 5数据查询功能。运用 SELECT 语句来实现查询数据的功能。数据操纵功能。主要用于增加、删除和修改数据库中的数据。数据控制功能。主要用来控制用户对数据库的操作权限,包括数据库平安控制和事物管理两局部。3.什么是根本表?什么是视图?两者的区别和联系是什么?解:根本表是本身独立存在的表,在 SQL 中一个关系就对应一个表。试图是从一个或几个根本表导出的表。试图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据。视图与表的区别:概念不同。表是使用 DBMS 的 DDL 定义的,拥有真实数据的,以独立文件的形

4、式存储在计算机外存上的具有固定模式结构和相应元组数据的实表。视图那么是利用带有查询语句的视图定义,从表或视图中导出的虚表。数据有效期不同。表示拥有真实数据的实表,而视图是没有数据,只有视图定义的虚表。数据存储不同。表是永久存储在外存,而视图是执行时创立临时表,用后释放。更新方式不同。表一般可以任意更新,而视图一般不能任意更新,会受到一定限制。视图与表的联系:视图最终是定义在表之上,其数据最终来自表。表是创立视图的根底,并为视图提供数据。如果表发生了改变或者被删除,那么必须修改删除、或者重新建立相应的视图。对于最终用户,视图与表根本相同,即:视图和表在用户看来都是表,用户可以按照表的使用方法来使

5、用视图,同时可以在视图上再定义视图。4.说明使用视图的优点。解:视图是关系数据库系统提供应用户以多种角度观察数据库中数据的重要机制。合理的使用视图能带来许多好处。使用视图的优点有:?视图能够简化用户的操作?视图使用户能以多种角度看待同一数据?视图提供了一定程度的逻辑独立性?视图能够对数据提供平安保护 5.是否所有的视图都是可以更新的?为什么?解:不是所有的视图都是可以更新的。视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对根本表的更新。因为有些视图的更新不能惟一有意义地2 2/5 5转换成对相应根本表的更新,所以,并不是所有的视图都是可更新的。例如,根本表的行列子集视图一般是可更新

6、的。假设视图的属性来自集函数、表达式,那么该视图肯定是不可以更新的。6.设有一个学生-课程数据库 SC,其中有 S,C,SC 三张表 S(Sno,Sname,sex,age,dept)C(Cno,Cname,credit)SC(Sno,Cno,grade)其中学生表 S 由学号 Sno、姓名 Sname、性别 sex、年龄 age、专业 dept 组成;课程表 C 由课程编号 Cno、课程名称Cname、课程学分 credit 组成;选课表 SC由学号 Sno、课程编号 Cno、成绩 grade 组成;试用 SQL 语句建立这三张表。解:建立学生表 S:CREATE TABLE S(Sno C

7、HAR(9)PRIMARY KEY,Sname CHAR(8)NOT NULL,sex CHAR(2),ageSMALLINT,dept CHAR(20);建立课程表 C:CREATE TBALE C(Cno CHAR(4)PRIMARY KEY,Cname CHAR(40),credit SMALLINT);建立选课表 SC:CREATE TABLE SC(Sno CHAR(9),Cno CHAR(4),grade SMALLINT,PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)REFERENCES S(Sno),FOREIGN KEY(Cno)REFERENCE

8、SC(Cno);7.针对习题 6 中的三个表用 SQL 语句完成以下操作(1)找出所有学生的学号和姓名。解:SELECT Sno,Sname FROM S;(2)计算全体学生的出生年份。解:SELECT Sname,2022-Sage FROM S;(3)查询选修了课程的学生的学号,并去掉结果表中重复的行。解:SELECT DISTINCT Sno FROM SC;(4)查询考试成绩在 60-70 之间的学生的学号及姓名。解:SELECT Sno,Sname FROM S,SC WHERE S.Sno=SC.Sno AND3 3/5 5 grade BETWEEN 60 AND 70;(5)查

9、询学生姓“李且全名为 2 个汉字的学生的姓名及学号。解:SELECT Sname,Sno FROM S WHERE Sname LIKE 李_ _(6)查询选修了 1号课程的学生的平均成绩。解:SELECT AVG(Grade)FROM SC WHERE Cno=1;(7)查询各个课程号及相应的选修人数。解:SELECT Cno,COUNT(Sno)FROM SC GROUP BY Cno;(8)查询其他系中比计算机系所有学生年龄都小的学生姓名及年龄。解:SELECT Sname,age FROM S WHERE age 计算机;(9)将计算机系所有学生的年龄增加 1 岁。解:UPDATE S

10、 SET Sage=Sage+1 WHERE dept=计算机;(10)删除计算机系所有学生的选课记录。解:DELETE FROM SC WHERE 计算机=(SELECT dept FROM S WHERE S.Sno=SC.Sno);(11)根据学生的学号创立索引。解:CREATE UNIQUE INDEX sutno ON S(Sno);(12)将记录1,数据库,4插入课程表中。解:INSERT INTO C VALUES(1,数据库,4);(13)建立选修了 1 号课程且成绩在 80 分以上的学生的视图 包括学号,姓名,成绩。解:CREATE VIEW V_S1 AS SELECT S

11、.Sno,Sname,Grade FROM SC,S WHERE Cno=1 AND S.Sno=SC.Sno AND Grade=80;8.在什么情况下需要使用嵌入式 SQL?解:SQL 语言是面向集合的描述性语言,本身不具有过程性结构。大多数语句都独立执行,与上下文无关。但是绝大多数的数据库应用都是过程性的,要求根据不同的情况执行不同的任务,因此单纯的 SQL 语言很难实现这样的应用。需要将SQL 语句嵌入到主语言源程序中使用,利用高级语言的过程性结构来弥补 SQL 语4 4/5 5言实现复杂应用方面的缺乏。因此,在开发数据库应用系统时,我们需要使用嵌入式 SQL。9.在嵌入式 SQL 中

12、如何实现数据库和主语句程序间的信息传递?解:首先用 SQL 通信区SQL Communication Area,简称 SQLCA向主语句程序传递 SQL语句的执行状态信息,使主语言能够据此控制程序流程。在程序运行中,主语句程序使用使用主变量向 SQL 语句提供参数。将 SQL 语句查询数据库的结果交主语句程序进一步处理,使用主变量和游标cursor向主语句程序输出数据。10.什么是动态 SQL?动态 SQL 有几种形式?解:动态 SQL 语句就是不能在编译时确定需要的 SQL 语句和查询条件,而是在程序运行时才能提供,即程序在执行过程中临时“组装SQL 语句,然后将 SQL 语句传给 DBMS 执行。动态 SQL只有在执行时才产生执行方案。动态 SQL 包括动态组装 SQL 语句和动态参数两种形式。动态组装 SQL 语句:一个完整的 SQL 以字符串形式赋予主变量,然后使用立即执行语句执行主变量中的 SQL 语句。动态参数:态参数使用参数符号(?),表示该位置的数据在运行时设定。动态参数与主变量的不同之处在于,主变量是在编译时绑定的,而动态参数是在运行时绑定的。5 5/5 5

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com