最新《SQL-Server数据库技术及应用》试卷A答案.doc
精品资料SQL-Server数据库技术及应用试卷A答案.吉林省经济管理干部学院 吉林经济职业技术学院2007-2008学年第二学期期末试题系部: 班级: 姓名: 学号:-装-订-线-SQL Server数据库技术及应用试题A系部国际商务适用专业软件技术使用班级2007软件学时85出题教师郭伟业考试方式闭卷卷面总分80分考试时间120分钟一、选择题(共计12 分,每题2分)1创建数据库的命令是以下哪个选项?( D )ACREATE PROCEDUREBALTER DATABASECDROP DATABASEDCREATE DATABASE2修改数据库的语句是以下哪个选项?( C )ACREATE TABLEBCREATE DATABASECALTER DATABASE DDROP TABLE3在数据库设计的时候,选择以下哪种数据类型能提供全局唯一标识符代码?( A )AuniqueidentifierBImageCBitDSmallMoney4创建规则的Transact-SQL语句是( A )ACREATE RULEBCREATE INDEXCCREATE DEFAULTDALTER RULE5以下哪个Transact-SQL语句能够创建表?( B )ACREATE DATABASEBCREATE TABLECALTER TABLEDDROP DATABASE6执行语句,“DELETE FROM 学生表 WHERE 姓名列 LIKE '_nnet '”时,下列选项中哪些数据行可能被删除(C )。AWhyteBCarsonCAnnetDHunyer二、简答题(共计36分,每题2分)1使用Transact-SQL语句为学生基本信息表创建名为“CX_学号”的CHECK约束,该约束限制学号字段的数据只能由9位数字组成。alter table 学生基本信息add constraint cx_学号check(学号like'0-90-90-90-90-90-90-90-90-9')2查询商品小类表中前五条记录的小类编号和小类名称。select top 5 小类编号,小类名称from 商品小类3查询商品小类表中的小类编号为00001的数据。select * from 商品小类where 小类编号='00001'4在SELECT语句中应用BETWEEN关键字完成下面功能:显示商品信息表中零售价介于8元至12元的商品数据。select * from 商品信息where 零售价between 8 and 125查询商品信息表,把商品名称中前两个字是“电子”的商品信息显示出来select * from 商品信息where 商品名称like'电子%'6应用SELECT语句完成下面功能:查询商品信息表中条形码及商品名称,要求结果显示形式如图1所示。图1 练习在查询中使用常量select '条形码为:'+条形码+'的商品名称为:'+商品名称from 商品信息7从销售明细表中查询已被销售过的商品,要求结果消除表中重复数据。select distinct 条形码from 销售明细8使用SELECT语句从生产厂家表中查询所有生产厂家的信息,并按厂家编号进行降序排列。select * from 生产厂家order by 厂家编号desc9应用SELECT语句完成下面功能:列出商品信息表中每种商品的当前进货价及将进货价压低15%之后的新进货价格,并按条形码降序排列,要求结果如图2所示。图2 应用算术运算符计算值的练习select 条形码,商品名称,进货价, 进货价*0.85 as 现进货价格为 from 商品信息 order by 条形码 desc10在SELECT语句中应用DATEADD及CONVERT函数,显示操作员表中所有人员的操作员编号、姓名、出生日期及出生日期100日后的日期,结果如图3所示。图3查询结果select 操作员编号,姓名,出生日期,convert(varchar(10),dateadd(day,100,出生日期),102) as 一百天后的日期from 操作员表11在SELECT语句中应用COUNT完成下面功能:从销售明细表中查询条形码为“6922365800092”商品的销售次数。(提示:该语句中除使用COUNT外,还应使用WHERE条件语句)select count(条形码) from 销售明细where 条形码='6922365800092'12使用COMPUTE BY子句查询商品信息表:查询零售价低于20元的商品的商品大类、零售价总计及各类商品中的最高零售价,结果如图4所示。图4 计算每类商品零售价总计及最高零售价select 大类编号,条形码,商品名称,进货价,零售价,from 商品信息where 零售价<=20order by 大类编号,条形码compute sum(零售价),max(零售价) by 大类编号14查询所有学生的各科成绩。SELECT 课程.课程名称,学生基本信息.姓名,成绩.成绩FROM 课程,学生基本信息,成绩WHERE 课程.课程编码=成绩.课程编码AND 成绩.学号=学生基本信息.学号15查询某学号学生的成绩。SELECT 课程.课程名称,学生基本信息.姓名,成绩.成绩FROM 课程,学生基本信息,成绩WHERE 课程.课程编码=成绩.课程编码AND 成绩.学号=学生基本信息.学号AND 成绩.学号='200601001'16查询某一姓氏的学生基本信息。SELECT * FROM 学生基本信息WHERE 姓名like '刘%'说明:14.15.16题涉及到的表及字段如下所示:(1)成绩表中的字段有:课程编码、学号、成绩、状态等信息(2)课程表中的字段有:课程编码、课程名称(3)学生基本信息表中的字段有:学号、姓名、性别、出生日期、籍贯、系部编码、入学年份等信息17编写将两个字符串相连的程序,结果如图5所示。图5 习题17运行结果DECLARE str1 varchar(10),str2 varchar(30),sc varchar(50)SET str1='举例说明' SET str2=':局部变量的使用'SELECT SC=str1+str2PRINT SC18删除函数SearchProducts。drop function SearchProducts三、写出程序运行结果(共计5分,每题5分)1 SELECT getdate() as 当前日期,convert(varchar(12),getdate(),101) as 转换后的日期四、编程题(共计27分,每题9分)1定义一变量并使用该变量查询销售明细表中条形码为“6926557302159”的商品销售数量的和。declare salenum floatselect salenum =sum(销售数量) from 销售明细where 条形码='6926557302159'2创建一标量函数,根据条形码及操作员代码获取该员工某商品的销售金额合计,结果如图6所示。图6 调用标量值函数的查询结果CREATE FUNCTION fn_select(code varchar(13),op_code varchar(5)RETURNS moneyASBEGINDECLARE XSMONEY moneySELECT XSMONEY=SUM(数量*单价)FROM 销售明细WHERE 条形码=codeAND操作员代码=op_codeRETURN XSMONEYENDGOSELECT dbo.fn_select('6926557302159','01001') AS 金额合计3触发器在学生成绩管理系统中的应用(1)创建触发器t_stu1,若学生基本信息表中学号被修改时,学生成绩表中对应的数据也相应发生变化。create trigger t_stu1on 学生基本信息after updateasbegindeclare a float,b floatselect a=学号 from deletedselect b=学号 from insertedprint aprint bif(a!=b)update 成绩 set 学号=b where 学号=aend(2)创建触发器t_stu2,若删除学生基本信息表中的学生数据,则删除成绩表中相应的记录。create trigger t_stu2on 学生基本信息after deleteasbegindeclare a floatselect a=学号 from deleteddelete from 成绩 where 学号=aend