《SQL-SERVER数据库基础》期终考试试卷(B卷)及答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

适用专业:
1、在SQL SERVER中建立自己的数据库TEST,该数据库属于()。

a) 用户数据库
b) 系统数据库
c) 数据库模板
d) 数据库管理系统
2、数据冗余是指()
a)数据和数据之间没有联系
b) 数据有丢失
c) 数据量太大
d) 存在重复的数据
3、通过数据库的选项可以设置数据库()。

a)是否是只读的
b) 物理文件是否允许被删除
c) 允许创建的表的数目
d)表中所允许的最大数据行的数目
4、数据库管理员为用户创建了一个存储市场有关信息的数据库,按要求创建了数据库之后就把这件事忘记了。

后来用户问数据库管理员为什么无法向数据库输入数据,这可能是因为()。

a)数据库太多
b) 数据库的约束不起作用
c) 用户输入数据行太多
d)还没有创建数据表,因此无法输入数据
5、主键用来实施()
a) 实体完整性约束
b) 引用完整性约束
c) 域完整性约束
d) 自定义完整性约束
6、表Course和Teachers建立了主外键关系,Course为主表,Teachers为子表,以下说法正确的选项是()。

a) Teachers表中存在Course表的外键
b) Course表中存在外键
c) Teachers表中存在外键
d) Course表中存在Teachers表的外键
7、假设原来做的一个管理系统使用的是SQL SERVER数据库,现在想把它简化为Access数据库,但是数据库的格式、数据项都不能变化,应当保持一样,此时可以采用()方法来实施。

a)把数据复制、粘贴到Access数据库中
b)Access数据库使用SQL Server的数据库文件
c)使用数据导入、导出操作
d)直接在Access中打开SQL Server的数据库文件
8、在Employee表中有一列为EmpName,执行删除语句:
DELETE FROM Employee WHERE EmpName LIKE ‘-[ae]%’
下列包含EmpName列的()值的数据可能被删除。

a)Whyte
b)Carson
c)Annet
d)Hunyer
9、假设正在设计一个数据库应用程序,在设计过程中,数据库进行了重新规划,对原来的数据库做了调整。

其中对一个很重要的表进行简化,选择原表
中的若干列组成了一个新的表结构。

由于原表中已经保存了大量数据,为了把原表中的数据移动到新表中,以下()方法是最好的。

a)重新在新的数据表中录入数据
b)使用数据转换服务的输出功能把原来的数据保存为文本文件,再把
文本文件复制到新的数据库中
c)使用一个‘Insert Into [新的表名] Select [旧的表名] ’的插入语句进
行数据添加
d)使用Union语句一次插入多个数据行
10、下列执行数据的删除语句在执行时不会产生错误信息的选项是()。

a)DELETE * FROM Employee WHERE SGrade =‘6’
b)DELETE FROM Employee WHERE SGrade =‘6’
c)DELETE Employee WHERE SGrade =‘6’
d)DELETE Employee SET SGrade =‘6’
11、假设Students表中的SEMail列的默认值为‘************’,同时还有SAddress列和SSex列,则执行T-SQL:
INSERT Students (SAddress,SSex)V ALUE (‘ACCP’,1)
下列说法正确的选项是()。

a)SEMail 列的值为‘ACCP’
b)SAddress列的值为空
c)SSex列的值为1
d)SEMail列的值为空
12、设Employee 表有三列EmpID、EmpGrade、EmpSalaryGrade,并且列值都是整数数据类型,则以下哪个查询语句能正确执行?()
a)SELECT EmpID FROM Employee ORDER BY EmpID WHERE EmpID=EmpGrade
b)SELECT EmpID FROM Employee WHERE
EmpID=EmpGrade=EmpSalaryGrade
c)SELECT EmpID FROM Employee ORDER BY
EmpGrade+EmpSalaryGrade
d)SELECT EmpID ,EmpGrade FROM Employee WHERE
EmpGrade+EmpSalaryGrade
13、假设Students表中已经存储了数据,Nation列的数据存储了学员的民族信息,默认值应该是“汉族”。

可是在设计表的时候这个默认的特征没有考虑,现在已经输入了大量的数据。

对于少数民族的学员,民族的信息已经输入。

对于是“汉族”的学员,数据值都是空值。

此时要解决这个问题的比较好的办法是()。

a)在表中为该列添加NOT NULL 约束
b)使用“UPDATE Students SET Nation =‘汉族’WHERE Nation IS NULL”进行数据更新
c)使用“UPDATE Students SET Default=‘汉族’”进行数据更新
d)手动输入所用的“汉族”信息
14、执行下列语句
SELECT TOP 40 PERCENT SName,SAddress FROM Students 结果返回了20行数据,则()。

a)在Students表中只有40行数据
b)在Students表中只有20行数据
c)在Students表中大约有50行数据
d)在Students表中大约有100行数据
15、表Mash中有Ori 和Dest两列,要把Ori列的平方根写到Dest列,正确的SQL语句为()。

a)UPDATE Mash SET Dest=Sqrt(Ori)
b)UPDATE Mash SET Ori=Ori/2
c)SELECT Dest FROM Mash SET Dest =Ori.Sqrt
d)SELECT Dest FROM Mash SET Dest =Ori/2
16、以下()能够在查询输出中创建一个新列“查询用户”,并且使用SQL Server中的当前用户名来填充列值。

a)SELECT SName,‘USER’As 查询用户FROM Students
b)SELECT SName,SYSTEM_USER As 查询用户FROM Students
c)SELECT SName,查询用户FROM Students
d)SELECT SName,SYSTEM_USER =查询用户FROM Students
17、假设Sales表用于存储销售信息,SName列销售人员姓名,SMoney 为销售额度,现在要查询每个销售人员的销售次数、销售总金额,则下列()查询语句的执行结果能得到这些信息。

a)SELECT SName,SUM(SMoney),COUNT(SName)FROM Sales GROUP BY SName
b)SELECT SName,SUM(SMoney)FROM Sales
c)SELECT SName,SUM(SMoney)FROM Sales GROUP BY SName ORDER BY SName
d)SELECT SUM(SMoney)FROM Sales GROUP BY SName ORDER BY SName
18、假设Users表中的TelNumber列存储电话号码信息,则查询的不是以7开头的电话号码的查询语句是()。

a)SELECT TelNumber FROM Users WHERE TelNumber IS NOT LIKE ‘7%’
b)SELECT TelNumber FROM Users WHERE TelNumber LIKE ‘%7%’c)SELECT TelNumber FROM Users WHERE TelNumber NOT LIKE ‘7%’
d)SELECT TelNumber FROM Users WHERE TelNumber LIKE ‘[1-6]%’
19、假设Users表中有4行数据,Score表中有3行数据,执行交叉联接查询(无限制条件)将返回()行数据。

a)1
b)3
c)4
d)12
20、以下()不属于聚合函数
a)Max
b)Count
c)Not
d)Min
二、问答题(每小题5分,共20分) 设有网吧计费数据库NetBar 中有三个数据表,如下所示:
请根据要求写出SQL语句:
1、一位家长想看看他儿子这个月的上机次数,已知他儿子的卡号为“0023_ABC”,请编写SQL查询:
2、查询24小时之内上机人员姓名;
3、查询本周上机人员的姓名、计算机名、总费用,并按姓名进行分组
4、查询卡号第6位和第7位是“AB”的人员的消费情况,并显示其姓名和费用汇总。

参考答案B:
一、单项选择题(每小题4分,共80分)
二、问答题(每题5分,共20分)
1、SELECT COUNT(*)FROM Record
WHERE CardID=‘0023_ABC’AND
DatePart(Month,BeginTime)=DatePart(Month,GetDate( ) )
2、SELECT erName From Card AS C
INNER JOIN Record as R
On C.ID =R.CardID
WHERE R.BeginTime Between DateAdd(day,-1,GetDatea( )) AND GetDate( )
3、SELECT erName,SUM(R.Fee) From Card As C
INNER JOIN Record As R
ON C.ID =R.ID
WHERE DatePart(week,BeginTime)=DatePart(week,GetDate( ))
GROUP BY erName
4、SELECT erName,SUM(R.Fee) From Card AS C
INNER JOIN Record AS R
ON C.ID =R.ID
WHERE SubString(R.CardID,6,1)=’A’ AND SubString(R.CardID,7,1)=’B’GROUP BY UserName。

相关文档
最新文档