《中财ACCESS数据库复习题(共13页).docx》由会员分享,可在线阅读,更多相关《中财ACCESS数据库复习题(共13页).docx(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上数据库及应用复习题一、填空题数据库系统的三级模式结构分别是:外模式、_、和内模式。(概念模式)ACCESS数据库支持的数据模型是_。(关系模型)关系模型提供的三种完整性约束分别是:实体完整性、参照完整性和_。(用户自定义完整性)数据库并发操作控制包括以_方式打开数据库和对数据库或记录加锁两种方法。(独占)数据处理是将数据转换成_的过程。 (信息)实体之间的联系归结为一对一、_和多对多三种。(一对多)一个公司只能有一个总经理,公司和总经理职位之间为_的联系。(一对一)在关系数据库的基本操作中,从表中选出满足条件的元组的操作称为_;(选择)从表中抽取属性值满足条件的列的操
2、作称为_;(投影)把两个关系中相同属性的元组联接在一起构成新的二维表的操作称为_。(联接)在一个工资关系中有工资号、姓名、职务工资、津贴、公积金、所得税等到字段,其中可以作为主键的字段是_。(工资号)INSERT INTO命令能够向基本表中_一条记录。(插入)关系规范化的过程是通过对初始关系模式的逐步_来实现的。(分解)将E-R模型(实体联系模型)转换成关系模型遵守的原则是:一个实体型转化成一个_。(关系)概念结构设计阶段经过:设计局部E-R图、综合成初步E-R图、_这三个步骤。(E-R图优化)_是数据库中用来存储数据的对象,是整个数据库系统的基础。(表)ACCESS数据库对象包括:_、_、_
3、、_、_、_、_。(表、查询、窗体、报表、数据访问页、宏、模块)ACCESS中,除_对象之外(报表),其他对象都存放在一个扩展名为_(MDB)的数据库文件中。在ACCESS中写出下列函数名称:对字段内的值求和_(SUM);字段内的值求最小值_(MIN);某字段中非空值的个数_(COUNT)。教材第一章到第6章所有的选择题二、选择题以下第110选择题要用到以下的数据: 当前盘当前目录下有ACCESS数据库文件db_stock,其中有表stock,该表的内容是: 股票代码 股票名称 单价 交易所 青岛啤酒 7.48 上海 方正科技 15.20 上海 广电电子 10.40 上海 兴业房产 12.76
4、 上海 二纺机 9.96 上海 轻工机械 14.59 上海 深发展 7.48 深圳 深万科 12.50 深圳 1、执行如下SQL语句后 SELECT * FROM stock ORDER BY 单价 D A) 系统将会提示出错信息 B) 列出一个按“单价”升序排列的表文件中所有信息。C) 在屏幕上显示一个按“单价”降序排列的查询结果。D) 在屏幕上显示一个按“单价”升序排列的查询结果。2、有如下SQL SELECT语句SELECT * FORM stock WHERE 单价BETWEEN 12.76 AND 15.20 与该语句等价的是 C A) SELECT * FORM stock WHE
5、RE 单价= 12.76B) SELECT * FORM stock WHERE 单价= 12.76 .AND. 单价 12.76 .AND. 单价3 AND AVG_金额200B)SELECT职员号FROM订单; GROUP BY职员号HAVING COUNT(*)3 AND AVG(金额)200C)SELECT职员号FROM订单; GROUP,BY职员号HAVING COUNT(*)3 WHERE AVG(金额)200D)SELECT职员号FROM订单; GROUP BY职员号WHERE COUNT(*)3 AND AVG_金额20015、要使”产品”表中所有产品的单价上浮8,正确的SQL
6、命令是( D )A)UPDATE产品SET单价=单价+单价*8FOR ALLB)UPDATE产品SET单价=单价*1.08 FOR ALLC)UPDATE产品SET单价=单价+单价*8D)UPDATE产品SET单价=单价*1.0816、假设同一名称的产品有不同的型号和产地,则计算每种产品平均单价的SQL语句是( D )A)SELECT产品名称,AVG(单价)FROM产品GROUP BY单价B)SELECT产品名称,AVG(单价)FROM产品ORDERBY单价C)SELECT产品名称,AVG(单价)FROM产品ORDER BY产品名称D)SELECT产品名称,AVG(单价)FROM产品GROUP
7、 BY产品名称17、从”订单”表中删除签订日期为2004年1月10日之前(含)的订单记录,正确的SQL语句是( C ) A)DROP FROM 订单WHERE签订日期=2004-l-10 B)DROP FROM 订单 FOR 签订日期=2004-l-lO C)DELETE FROM 订单 WHERE 签订日期=2004-1-10 D)DELETE FROM 订单 FOR 签订日期 30B) DELETE FOR AGE 30C) DELETE S FOR AGE 30D) DELETE S WHERE AGE 3026、参照完整性的规则不包括 C A)更新规则 B)删除规则 C)检索规则 D)
8、插入规则27、数据库中的视图对应三级模式中的_C_。A. 模式 B. 内模式 C. 外模式D. 其他28、实体完整性用_B_保证。A. 外码B.主码 C. CHECK约束D. UNIQUE约束29、外码与其所引用的列之间的关联关系是根据_D_关联的。A. 列名相同B. 类型相同C. 语义D. 任意情况30、外码的作用是_C_。不限制外码列的取值范围限制引用列的取值范围限制外码列的取值范围在所引用的列的已有值范围内限制所引用的列的取值范围在外码列的已有值范围内31、关系模式:购买情况(顾客号,产品号,购买时间,购买数量),若允许一个顾客在不同时间对同一个产品购买多次,则此关系模式的主码是_B_。
9、A顾客号B (顾客号、产品号、购买时间)C(顾客号,产品号) D产品号32、关系数据库表中,记录行_B_。A顺序很重要,不能交换B顺序不重要C按输入数据的顺序排列D一定是有序的33、已知实体A与实体B之间是一对多联系,为反映两个实体之间的关联关系,应_D_。A将外码放置在实体A中B 在B中定义一个主码C将外码放置在实体B中D在A中定义一个主码34、关系数据库采用的数据结构是_D_。A多维表结构B 图结构C树型结构D二维表结构35、数据模型三要素是_B_。数据结构,数据库定义和数据库维护数据结构,数据操作和数据完整性数据定义,数据操作和数据维护关系数据库,层次数据库和网状数据库36、关系数据库的
10、完整性约束包括_A_。实体完整性、参照完整性和用户定义完整性实体完整性、约束完整性和主码完整性数据库定义完整性、参照完整性和用户定义完整性表结构完整性、用户定义完整性和事务完整性37、能将查询结果插入到一个新表中的语句是_C_。AINSERT INTO VALUES BINSERT INTO SELECT CSELECT INTO FROM DSELECT FROM 38、有关系模式:学生表(学号,姓名,所在系),建立统计每个系的学生人数的视图的正确语句是_B_。A. CREATE VIEW v1 AS SELECT 所在系,COUNT(*) FROM 学生表 GROUP BY 所在系B. C
11、REATE VIEW v1(系名,人数) AS SELECT 所在系,COUNT(*) FROM 学生表 GROUP BY 所在系C. CREATE VIEW v1(系名,人数) AS SELECT 所在系,SUM(*) FROM 学生表 GROUP BY 所在系D. CREATE VIEW v1 AS SELECT 所在系,SUM(*) FROM 学生表 GROUP BY 所在系39、现有雇员表,结构为:雇员表(雇员号,姓名,所在部门,年龄)现要统计每个部门的雇员的平均年龄,希望查询结果是按平均年龄从高到低的顺序排列,并且只取平均年龄最高的前3个部门。完成此功能的查询语句为:_C_。A. S
12、ELECT TOP 3 WITH TIES 所在部门,AVG(年龄) 平均年龄FROM 雇员表 ORDER BY 平均年龄B. SELECT TOP 3 WITH TIES 所在部门,AVG(年龄) 平均年龄FROM 雇员表 GROUP BY 所在部门C. SELECT TOP 3 WITH TIES 所在部门,AVG(成绩) 平均年龄FROM 雇员表 GROUP BY 所在部门ORDER BY 平均年龄 DESC D. SELECT TOP 3 WITH TIES 所在部门,AVG(成绩) 平均年龄FROM 雇员表 GROUP BY 所在部门ORDER BY 平均成绩40数据库管理系统在对表
13、进行 _A_ 检查CHECK约束。A. 插入和更新数据之前 B. 插入和删除数据之后C. 插入和删除数据之前 D. 插入和更新数据之后41在ACCESS中,用来存储数据信息的对象是 _A_。A表 B查询 C窗体 D模块42在ACCESS表中, _C_数据类型不能用于分组记录。A日期/时间 B是/否 COLE对象 D查阅向导43 _B_属性可以指定字段或所控制数据的显示格式。A输入掩码 B格式 C小数位数 D有效性文本44数据筛选不能用于_D_对象中。A表 B查询 C窗体 D报表三、写出下列各命令或命令组的功能(每题3分,共21分) 假定使用的“图书”、“读者”、“借阅”和ZGJK库的定义如下:
14、 图书(总编号,C(6),分类号C、(8)书名C(16),作者C(6),出版单位C(16),单价N(7,2) 读者(借书证号C(4),单位C(10),姓名C(6),性别C(2),职称C(6),地址C(16) 借阅(借书证号C(4),总编号C(6),借书日期D() ZGJK(职工号C(6),姓名C(6),性别C(2),出生日期D(),职称C(6),基本工资N(7,2)Select MAX(单价)as 最高价,MIN(单价)AS最低价,AVG(单价)AS平均价;from 图书(求出“图书”数据库中所有图书的最高价、最低价和平均价。)2 Select count(*);from 图书;where 单
15、价 between 10 and 20(统计出“图书”库中10至20元之间的图书数量。) 3 select 借书证号,count(*);from 借阅;where 借书日期=3(分组统计出97年底以前借阅不低于3本图书的借书证号及数量。)4 select 单位,count(*);from 读者,借阅;where 读者.借书证号=借阅.借书证号;group by 单位(按单位分组统计出被惜阅图书的数量。)四、根据下面的数据表及要求,写出相应的SQL语句(一)、职员表:职员号 C(3),姓名 C(6),性别 C(2),组号 N(1),职务 C(10)客户.DBF:客户号 C(4),客户名 C(36
16、),地址 C(36),所在城市 C(36)订单.DBF:订单号 C(4),客户号 C(4),职员号 C(3),签订日期 D,金额 N(6.2)1、查询金额最大的那10%订单的信息,SQL语句是:SELECT TOP 10 PERCENT * FROM 订单 ORDER BY 金额 DESC2、查询订单数在3个以上、订单的平均金额在200元以上的职员号。SQL语句是:SELECT 职员号 FROM 订单 GROUP BY 职员号 HAVING COUNT(*)3 WHERE AVG(金额)2003、显示2005年1月1日后签订的订单,显示订单的订单号、客户名以及签订日期。SQL语句是:SELEC
17、T 订单号,客户名,签订日期 FROM 订单 JOIN 客户 ; ON 订单.客户号=客户.客户号 WHERE 签订日期2005-1-14、显示没有签订任何订单的职员信息(职员号和姓名), SQL语句是:SELECT 职员号,姓名 FROM 职员 ; WHERE 职员号 NOT IN (SELECT 职员号 FROM 订单)5、从订单表中删除客户号为“1001”的订单记录, SQL语句是:DELETE FROM 订单 WHERE 客户号=10016、将订单号为“0060”的订单金额改为169元, SQL语句是:(UPDATE 订单 SET 金额=169 WHERE 订单号=0060 )(二)、
18、在学生表中的学号用6个字符表示,其中第1,2位表示学生哪一年入学,第3位是专业号,第4位是班级号,第5,6位表示学生在班级中的序号。学生表结构如下:学号数据类型:文本、姓名数据类型:文本、高考成绩数据类型:数字等完成如下的SQL查询语句:(1)、创建查询,将学生表中高考成绩分数最低的3位学生的学号、姓名和高考成绩显示出来。(2)、创建查询,将学生表中姓名的最后一个字是“生”的学生的学号、姓名显示出来。(3)、创建查询,显示学生表中每个年级学生的高考平均分(保留两位小数,少数民族学生的高考成绩除外),并按高考平均分的降序排列记录,显示学生的年级及高考平均分。(4)、创建查询,显示成绩表中都有哪些
19、学生的学号,查询结果要去掉重复的学号。(三)、有一个部门表字段分别是部门号数据类型:自动编号、部门名称数据类型:文本、负责人数据类型:数字、部门电话数据类型:文本,另外有一个职工表字段为职工ID数据类型:自动编号、姓名数据类型:文本、出生日期数据类型:日期/时间、职称数据类型:文本、部门号数据类型:数字、参加工作时间数据类型:日期/时间、调入日期数据类型:日期/时间、家庭地址数据类型:文本、基本工资数据类型:数字、职务津贴数据类型:数字、邮政编码数据类型:数字、联系电话数据类型:文本等,表中已输入若干条记录,根据以上两个表提供的资料完成下面的SQL查询语句:(1)、查询在1980年到1990年
20、之间调入的职工信息SELECT 职工.*, 职工.调入日期, 职工.调入日期FROM 职工WHERE (职工.调入日期)#1/1/1980#) AND (职工.调入日期)#12/31/1990#)(2)、查询每个职工的职工姓名和工资(基本工资+职务津贴)SELECT 姓名, 基本工资+职务津贴 AS 工资 FROM 职工(3)、查询职工表中姓“王”的职工信息SELECT 姓名 FROM 职工 where 姓名 like 王*(4)、查询姓名中含有“光”的职工信息SELECT 姓名 FROM 职工 where 姓名 like *光*(5)、查询职称高级工程师的职工姓名,职称和所在部门SELECT
21、 部门名称,姓名,职称 FROM 职工 inner join 部门 on 部门.部门号=职工.部门号WHERE 职称高级工程师(6)、显示工资最高的前十名职工的信息select top 10 * from 职工 order by 基本工资+职务津贴 desc(7)、查询年龄超过60岁的职工信息SELECT *,year(Date()-year(出生日期) as 年龄 FROM 职工WHERE (year(Date()-year(出生日期)+160 (8)、按部门号分组查询每个部门的工资总数SELECT 部门号, sum(基本工资+职务津贴) AS 工资总数 FROM 职工 group by 部
22、门号(9)、查询工资高于1500元的每个部门的职工人数SELECT 部门号, count(*) as 职工人数 FROM 职工 where (基本工资+职务津贴)1500 group by 部门号(10)、查询部门为”信息中心”的每种职称的职工人数SELECT 职称, count(*) as 职工人数 FROM 职工 inner join 部门 on 部门.部门号=职工.部门号 where 部门名称=人事部 group by 职称(11)、查询年龄最大的职工信息SELECT top 1 *,year(Date()-year(出生日期) as 年龄 FROM 职工 order by year(D
23、ate()-year(出生日期) desc(12)、查询“信息中心”负责人的信息SELECT * FROM 职工 inner join 部门 on 部门.负责人=职工.职工ID where 部门名称=信息中心(13)、查询每个部门每年调入的职工人数SELECT 部门号,year(调入日期) as 调入年,count(*) as 人数 FROM 职工 group by 部门号,year(调入日期)(14)、删除出生日期小于1955年的职工信息delete from 职工 where year(出生日期)1955(15)、将职称为“高级工程师”的所有职工的职务津贴增加200元UPDATE 职工 S
24、ET 职务津贴=职务津贴+200 WHERE 职称=高级工程师(16)、在“部门”表中增加一个“单位所在地”数据类型:文本,大小:20alter table 部门 add 单位所在地 text(20) (17)、在”部门”表中增加一条记录,部门号为5,部门名称:财务部,部门负责人:9,部门电话:(010),单位所在地:平江区。insert into 部门 values(5,财务部,9,(010),平江区)(18)、删除“部门”表中刚增加的字段“单位所在地”。alter table 部门 drop 单位所在地(19)、删除刚才增加的的记录。delete from 部门 where 部门号=5所有
25、上课的有关内容:声明:所有操作题的答案找上课的学生要,老师一律不提供.利用SQL标准化语言建立如下的表,要求所有标准SQL语言语句按题号存放在文本文件sql.txt(该文件自己建立在姓名文件夹下)中,所有表名、列名均使用括号中的英文。在ACCESS的查询中输入SQL标准语言,使用的查询文件名为查询加题号。1、学生表(student) ( 学号(sno) 字符类型,长度10,主码, 姓名(sname) 字符类型,长度8,非空, 性别(ssex) 字符类型,长度1, 年龄(sage) 整型, 所在系(sdept) 字符类型,长度20)2、课程表(course) ( 课程号(cno) 字符类型,长度
26、6,主码, 课程名(cname) 字符类型,长度10,非空, 学分(credit) 整型, 学期(semester) 整型)3、修课表(sc)( 学号(sno) 字符类型,长度10,主码 课程号(cno) 字符类型,长度6,主码 成绩(grade) 整型, 修课类别(type)字符类型,长度4)4、利用ACCESS表的导入功能,导入“学生数据库”ECXEL文件中的对应的三个表。5、修改学生表结构,在学生表中增加“出生日期”的列名,类型为日期型。6、将(1001,张小和,男,39,财经系)插入到“学生”表中。7、查询全体学生的姓名、学号、年龄和所在系。8、查询考试成绩有不及格的学生的学号、姓名
27、、成绩。9、查询不是信息系、数学系的学生姓名、系和性别。10、查询姓“张”的学生的详细信息。11、查询学生的总人数。12、查询选修了C01号课程的学生的最高分和最低分。13、统计每门课程的选课人数,列出课程号和选课人数。14、统计每个系的女生人数,列出系名及女生人数。15、查询每个系的学生的考试平均成绩,列出系名及平均成绩。16、查询成绩大于90分的学生的学号和姓名。第10章的有关代码如下:Option Compare DatabaseDim rst As DAO.RecordsetDim db As DAO.DatabasePrivate Sub Form_Load()Set db = DB
28、Engine.Workspaces(0).Databases(0)Set rst = db.OpenRecordset(读者注册表)txt1.Value = : txt2.Value = : txt3.Value = txt4.Value = Date: txt5.Value = End SubPrivate Sub txt1_LostFocus()If rst.BOF And rst.EOF ThenExit SubElserst.MoveFirstDo While Not rst.EOFIf Val(txt1.Value) = rst(读者ID) ThenMsgBox 读者ID重复,请重新
29、输入, vbOKOnly, 错误提示txt1.SetFocustxt1.Value = Exit DoElserst.MoveNextEnd IfLoopEnd IfEnd SubPrivate Sub cmd1_Click()If RTrim(txt1.Value) = Or RTrim(txt2.Value) = ThenMsgBox 读者ID和姓名不能为空,请重新输入, vbOKOnly, 错误提示txt1.SetFocusElserst.AddNewrst(读者ID) = txt1.Valuerst(姓名) = txt2.Valuerst(证件号码) = txt3.Valuerst(注
30、册日期) = txt4.Valuerst(联系方式) = txt5.Valueent = MsgBox(确认添加吗?, vbOKCancel, 确认提示)If ent = 1 Thenrst.UpdateElserst.CancelUpdateEnd Iftxt1.Value = : txt2.Value = : txt3.Value = txt4.Value = Date: txt5.Value = End IfEnd SubPrivate Sub cmd2_Click() Dim rst1 As DAO.Recordset Dim strinput As String, strsql As
31、 String strinput = InputBox(请输入需要查找的读者姓名, 查找输入) strsql = select * from 读者注册表 where 姓名 like & strinput & Set rst1 = db.OpenRecordset(strsql) If Not rst1.EOF Then Do While Not rst1.EOF txt1.Value = rst1(读者ID) txt2.Value = rst1(姓名) txt3.Value = rst1(证件号码) txt4.Value = rst1(注册日期) txt5.Value = rst1(联系方式)
32、 x = MsgBox(查找是否正确?, vbYesNo, 查找提示) If x = vbYes Then Exit Sub Else rst1.MoveNext End If Loop Else MsgBox 读者 & strinput & 不存在!, vbOKOnly, 查找提示 End If rst1.Close End Sub Private Sub cmd10_Click()rst.MoveFirsttxt1.Value = rst(读者ID)txt2.Value = rst(姓名)txt3.Value = rst(证件号码)txt4.Value = rst(注册日期)txt5.Va
33、lue = rst(联系方式)End SubPrivate Sub cmd11_Click()If rst.BOF ThenMsgBox 已经到第一条, vbOKOnly, 记录提示Elserst.MovePrevioustxt1.Value = rst(读者ID)txt2.Value = rst(姓名)txt3.Value = rst(证件号码)txt4.Value = rst(注册日期)txt5.Value = rst(联系方式)End IfEnd SubPrivate Sub cmd12_Click()If rst.EOF ThenMsgBox 已经到最后一条, vbOKOnly, 记录
34、提示Elserst.MoveNexttxt1.Value = rst(读者ID)txt2.Value = rst(姓名)txt3.Value = rst(证件号码)txt4.Value = rst(注册日期)txt5.Value = rst(联系方式)End IfEnd SubPrivate Sub cmd13_Click()If rst.EOF ThenMsgBox 已经到最后一条, vbOKOnly, 记录提示Elserst.MoveLasttxt1.Value = rst(读者ID)txt2.Value = rst(姓名)txt3.Value = rst(证件号码)txt4.Value = rst(注册日期)txt5.Value = rst(联系方式)End SubPrivate Sub cmd2_Click()If rst.BOF ThenMsgBox 已经到第一条, vbOKOnly, 记录提示Elserst.Movefirsttxt1.Value =