网络数据库试题第1页(共7页)网络数据库试题一、选择题:本大题共13小题;每小题2分,共26分。在每小题给出的四个选择中,只有一项是符合题目要求的,把所选择项前的字母填在下表中对应的题号下。1.(B)是位于用户和操作系统之间的一层数据管理软件。数据库在建立、使用和维护时由其统一管理、统一控制。A.DBB.DBMSC.DBSD.DBA2.SQL语言允许使用通配符进行字符串匹配的操作,其中‘%’可以表示(D)A、零个字符B、1个字符C、多个字符D、以上都可以3.下列哪一个数据库不是SQLServer2000的系统数据库(C)A.master数据库B.msdb数据库C.pubs数据库D.model数据库4.下列四项中,可以直接用于表示概念模型的是(D)。A.网状模型B.关系模型C.层次模型D.实体-联系(E-R)模型5.下列四项中说法不正确的是(A)A.数据库避免了一切数据的重复B.数据库中的数据可以共享C.数据库减少了数据冗余D.数据库具有较高的数据独立性6.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是(c)A.多对多B.一对一C.多对一D.一对多7.关系数据库中空值(NULL)相当于(d)A.零(0)B.空白C.零长度的字符串D.没有输入8.事务有多个性质,其中不包括(B)A.隔离性B.不可撤消C.原子性D.一致性9.一个电视经销商在表Tvtype中维护库存的Tvs信息,下述哪条语句能显示价格最昂贵的三种电视机的信息?(C)A.selecttop3cDiscriptionfromTvtypeorderbyipriceascB.selectcDiscriptionfromTvtypewheremax(iprice)3C.selecttop3cDiscriptionfromTvtypeorderbyipricedescD.selectcDiscriptionmax(iprice)fromTvtypeorderbyiprice10.假如采用关系数据库系统来实现应用,在数据库设计的(d)阶段,需要将E-R模型转换为关系数据模型。A.概念设计B.物理设计C.运行阶段D.逻辑设计11.取出关系中的某些列,并消去重复的元组的关系运算称为(b)A.取列运算B.投影运算C.连接运算D.选择运算网络数据库试题第2页(共7页)12.一家航空公司把一年中飞行距离(idistancetravelled)超过10000里的客户信息转移到一张称为flyersclub的表中,他们的详细情况被记录在表flyers(d)A.insertintoflyersclubfromflyerswhereidistancetravelled=10000B.insertflyersclub(idistancetravelled)valuesfromflyerswhereidistancetravelled=10000C.insertintoflyersclubfromflyerswhere(idistancetravelled)values=10000D.select*intoflyersclubfromflyerswhereidistancetravelled=1000013.系统死锁属于(A)A.事务故障B.程序故障C.系统故障D.介质故障二.填空题:本大题共9小题,14个填空;每空1分,共14分。答案请写在试题中的横线上。1.数据库系统中常用的三种数据模型有层次模型、_概念模型_________和__________。2.SQL语言由数据定义语言、和组成。3.使用命令可以增加数据库和事务日志的容量。4.关系模式的三类完整性约束条件分别是___实体完整性约束_______、参照完整性约束和__自定义约束________。5.如果一个关系不满足2NF,则该关系一定也不满足__________(在1NF、2NF、3NF范围内)。6.关键字是能唯一标识每一行的列或列的组合。一个表可能有多个关键字,选定其中一个作为主关键字,其余的称为。7.索引有两种类型:和。8.当在一个已经存放了数据的表上增加主键时,SQLServer会自动对表中的数据进行检查,以确保这些数据能够满足主键约束的要求。问:主键约束满足唯一和两个要求。9.将视图v_Course重命名为v_newCourse的SQL语句是:。三.操作题:本大题共13小题;各小题分值不等,共60分,请按要求上机操作。销售数据库Sales中存在这样的三张表:1.客户表(Customer)客户编号(CusNo)姓名(CusName)地址(Address)电话(Tel)C001杨婷北京010-5328953C002李和平上海021-62359651C003叶新成都024-3222781网络数据库试题第3页(共7页)C004冯辰诚上海021-872359652.产品表(Product)产品编号(ProNo)品名(ProName)单价(price)库存数量(Stocks)P0001液晶电视5600.00800P0002空调2390.00460P0003洗衣机3700.00600P0004电热水器890.001203.销售表(ProOut)销售日期(SaleDate)客户编号(CusNo)产品编号(ProNo)销售数量(Quantity)2007-10-27C001P000132007-11-06C004P0003402007-12-27C001P000352008-3-15C002P0002122008-05-02C003P0002212008-05-02C003P000192008-09-21C004P0001302008-11-21C004P000173按要求完成下列题目:(1)建立销售数据库Sales的以上三个表。(3分)(2)实现各表的实体完整性要求。(3分)(3)在Customer上基于CusName列创建非惟一索引;在Product上基于ProName列创建惟一索引;在ProOut上基于SaleDate列创建聚集的、惟一索引。(3分)(4)在ProOut表上设置外键,保证录入时的产品代码都在产品表中存在的。(3分)(5)创建一规则限定只能录入大于0的值,然后将其绑定到ProOut表上Quantity列。(3分)(6)查询销售数量超过100的产品号。(3分)(7)创建一自定义函数sumMoney,要求能够利用该函数计算出销售金额,并进行测试,利用该函数计算出每种产品(ProNo)的销售金额。(5分)(8)查询购买了产品号“P0002”的客户编号、客户名和电话,查询结果按客户名降序排列。(5分)(9)在查询的基础上创建一张新表Cus,要求显示客户“C004”在2008年购买网络数据库试题第4页(共7页)的产品号、数量。(6分)(10)创建视图viewPro,要求显示每种产品的销售量和销售金额(6分)(11)创建存储过程p_Pro,要求能够根据指定的客户编号,统计该客户购买每种产品的产品号、数量。(8分)(12)创建一个触发器t_Stocks,要求当插入、更新、删除销售表(ProOut)的销售记录时,根据销售数量(Quantity)的变化,能更新产品表(Product)中相应的库存数量(Stocks)(8分)(13)备份该数据库Stu_info。(4分)createtablecustomer(cusnochar(10)primarykey,cusnamechar(20),addresschar(20),telchar(20))createtableproduct(pronochar(10)primarykey,pronamechar(20),pricechar(20),stocksint)createtableproout(saledatedatetime,cusnochar(10),pronochar(10),quantityint,foreignkey(cusno)referencescustomer(cusno),foreignkey(prono)referencesproduct(prono),)网络数据库试题第5页(共7页)《网络数据库》试卷参考答案一.选择题二.填空题1关系模型,网状模型6候选关键字2数据操作语言,数据控制语言7聚集索引,非聚集索引3ALTERDATABASE8主键值要唯一,不允许为NULL值4域完整性约束,实体(表)完整性约束9Execsp_renamev_Course,v_newCourse53NF三.操作题1.(1)建立数据库Sales的三个表客户表(Customer)、产品表(Product)、销售表(ProOut)(2)客户表(Customer)的主键为:客户编号(CusNo)产品表(Product)的主键为:产品编号(ProNo)销售表(ProOut)的主键为:销售日期(SaleDate)、客户编号(CusNo)、产品编号(ProNo)(3)CREATEINDEXIX_CustomerONCustomer(CusName)CREATEUNIQUEINDEXIX_ProductONProduct(ProName)CREATEUNIQUECLUSTEREDINDEXIX_ProOutONProOut(SaleDate)(4)USESalesGOALTERTABLEProOutADDCONSTRAINTFK_ProOut_ProNoFOREIGNKEY(ProNo)REFERENCESProduct(ProNo)GO12345678910111213BDCDACDBCDBDA网络数据库试题第6页(共7页)(5)CREATERULERU_ProOutas@x0EXECsp_bindruleRU_ProOut,'ProOut.Quantity’(6)SelectProNofromProOutgroupbyProNohavingsum(Quantity)100(7)createfunctionsumMoney(@xDecimal,@yDecimal)returnsDecimalasbeginreturn(@x*@y)endgo--测试selectPO.ProNo,ProName,dbo.sumMoney(price,sum(Quantity))as'销售金额'fromProductasP,ProOutasPOwhereP.ProNo=PO.ProNogroupbyPO.ProNo,ProName,price(8)selectP.CusNo,CusName,TelfromProOutasp,CustomerasCwhereP.ProNo=’P0002’andP.CusNo=C.CusNoorderbyCusNamedesc(9)selectCusNo,sum(Quantity)fromProOutwhereCusNo=’C004’andSaleDate'2007-12-31'(10)createviewviewProasselectPO.ProNo,sum(Quantity)as'销售量',sum(Quantity*price)as'销售金额'fromProductasP,ProOutasPOwhereP.ProNo=PO.ProNogroupbyPO.ProNo,price网络数据库试题第7页(共7页)(11)CREATEPROCEDUREp_Pro@CusNoVARCHAR(8)ASSelectCusNo,ProNo,sum(Quantity)fromProOutwhereCusNo=@CusNogroupbyCusNo,ProNo(12)createtriggert_StocksonProductforinsert,delete,updateasupdateProductsetStocks=Stocks-QuantitywhereProNo=(selectProNofromINSERTED)updateProducts