SQL内测试题

更新时间:2023-12-09 07:00:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、选择题(共40道)

1) (D )是SQLServer数据库的主数据文件的扩展名。(选择一项)

A、 .sql B、 .mdb C、 .ldf D、 .mdf

2) 在SQL Server 2005中,数据完整性是指( B)。(选择一项)

A、 数据库中所有数据格式一致 B、 数据库中数据的准确性 C、 所有的数据都存入了数据库中 D、 数据库中不存在数据冗余

3) 在SQL Server 2005中,假设表users包含主键列id,那么执行“Update users SET id=20

WHERE id=30”,执行的结果可能是(A )。 (选择一项)

A、 如果表中同时含有id 为20和id 为30的记录,则更新失败

B、 如果表中含有id为30的记录,但不包含id为20的记录,则更新失败 C、 执行出错,因为主键列不可以被更新

D、 如果表中不包含id 为20和id 为30的记录,则更新一行记录 4) 关于Sql Server的字符串函数,以下说法不正确的是( A)。(选择一项)

A、 select trim(? hello ?) 返回值为: hello (前后都无空格) B、 select ltrim(rtrim(? hello ?)) 返回值为: hello (前后都无空格) C、 select replace(?hello?,?e?,?o?) 返回值为: hollo D、 select right(?hello?,3) 返回值为: llo

5) 在SQLServer 2005中,查询score表中stuName字段数据。(C ) (选择一项)

A、 select * from score

B、 select * from score where stuName=”” C、 select stuName from score

D、 select stuName from score student=””

6) 在SQL Server 2005中,假定有studentCourse(学生选修课)表,其结构为:sID(学号),cID(课程.编号) ,score(成绩).那么列出所有选修课程超过5门的学生学号以及选修课数目的SQL 语句的是(C)。(选择一项)

a) select sID,count(cID) from studentcourse where count(cID)>5

b) select sID,count(cID) from studentcourse group by sID where count(cID)>5 c) select sID,count(cID) from studentcourse group by sID having count(cID)>5 d) select sID,count(cID) from studentcourse group by cID having count(cID)>5 7) 在SQL Server 2005中,现有客户代表customer(主键:客户编号cid),包含10行数据。订单表orders(外键:客户编号cid),包含6行数据。执行sql语句:select * from customers

inner join orders on customers.cid=orders.cid 返回5行记录,则执行sql语句:select * from customers inner join orders on customers.cid<>orders.cid将返回( B)行记录。(选择一项) A、 11 B、 55 C、 60 D、 5

8)在SQL Server 2005中,要查找eatables 表中item_desc 字段的值以“CHOCO”开头(如CHOCOLATE、CHOCOPIE)的所有记录。下列SQL语句正确的是( C )。(选择一项) A、select * from eatables where item_desc LIKE “CHOCO” B、select * from eatables where item_desc =“CHOCO_”

C、select * from eatables where item_desc LIKE “CHOCO%” D、select * from eatables where item_desc LIKE “%CHOCO?”

9)在SQL Server2005数据库中,有students(学生)表,包含字段:SID(学号),SName(姓名),Grade(成绩).现查找所有学员中成绩最高的前5名学员.下列SQL语句正确的是( D ). (选择一项)

A、SELECT TOP 5 FROM students ORDER BY Grade DESC B、SELECT TOP 5 FROM students ORDER BY Grade C、SELECT TOP 5 * FROM students ORDER BY Grade

D、SELECT TOP 5 * FROM students ORDER BY Grade DESC

10)在SQL Server2005数据库中,客户表customers包含字段:客户编号cid和名称cname,订单表orders包含字段:客户编号cid,如果需要通过查询获得有订单的客户的名称,下面查询语句中( B ) 可以实现该需求. (选择一项)

A、SELECT customers.cname from customers LEFT JOIN orders ON customers.cid = orders.cid B、SELECT customers.cname from customers INNER JOIN orders ON customers.cid = orders.cid C、SELECT customers.cname from customers RIGHT JOIN orders where customers.cid = orders.cid

D、SELECT customers.cname from customers JOIN orders WHERE customers.cid = orders.cid 11)在SQL Server2005数据库中,使用update语句更新数据库表中的数据,以下说法正确的是( B ) (选择一项)

A、每次只能更新一行数据 B、每次可以更新多行数据

C、如果没有数据项被更新,将提示错误信息 D、更新数据时,必须带有WHERE条件子句

12)在SQL Server2005数据库中,有一个book(图书)表 ,包含字段:bookId(图书编号),title(书名),pDate(出版日期),author(作者)等字段,其中( )字段作为该表的主键是最适当的.(选择一项)

A、bookID B、title C、pDate D、author

13)在SQL Server 2005中,有系统数据库和用户数据库,下列不属于系统数据库的是(B )。(选择一项)

A、 master B、 pubs C、 model D、 msdb

14)在SQL Server2005中,(D )约束表示字段的NOT NULL属性。(选择一项)

A、主键 B、检查 C、默认值 D、非空

15)在SQL Server 中创建一个名为Customers的新表,同时要求该表与clients表的表结构相同,但不包括clients表的记录,sql语句是(B )。 (选择一项)

A、Select * into customers from clients where false B、Select * into customers from clients where 1<>1 C、Insert into customers select * from clients where false D、Insert into customers select * from clients where 1<>1

16)在SQL Server2005中,有时候需要显示的列名为中文,下列哪项代码具有此功能(C )。(选择一项)

A、 select stuName=?学员姓名? from score B、 select * ?学员姓名? from score C、 select stuName ?学员姓名? from score D、 以上都不正确

17) 取当前时间转换成10位字符串正确的是( C)(选择一项)

A、 select convert(getdate()) B、 select convert(char(10)) C、 select convert(char(10),getdate()) D、 以上都不正确

18)在SQL Server 2005中,学生表student中包含字段:学生编号sid (主键),学生姓名sName, 现在查询所有姓名重复的记录,以下语句正确的是(D )。(选择一项)

A、 select * from student group by sName where count(sid)>1 B、 select * from student where count(sid)>1

C、 select a.* from student a,student b where a. sname=b.sname

D、 select a.* from student a,student b where a. sname=b.sname and a.sid!=b.sid

19)在SQL Server 2005新建查询后,执行以下查询语句,将产生( D )结果.SELECT A INTO T1 FROM T2(选择一项)

A、把T1表和T2表的A列合并输出

B、把T2表中的A列数据行全部插入到T1表的A列中 C、把T1表中的A列数据行全部插入到已经存在的表T2中 D、创建新表T1,并且把T2表中的A列数据行全部插入到T1

20)在SQL Server2005中,下面关于数据完整性的描述正确的是(BD )(选择二项) A、如果数据库中没有重复的数据,即没有数据冗余的时候,数据就是完整的 B、维护数据完整性就是保证数据库中数据的准确性

C、数据库中数据越详细则越符合数据完整性

D、维护数据完整性可以保证数据的一致性,避免出现没有意义的数据 21)在SQL Server2005中,主键用来实施( B )(选择一项)

A、引用完整性约束 B、实体完整性约束 C、域完整性约束 D、自定义完整性约束 22)在SQL server 2005数据库中,标识列本身没有实际意义,而是为了区分表中不同的记录。下列关于标识列的说法中错误的是( C )。(选择一项)

A、一个表中只能有一格标识列 B、不能对标识列加上默认约束 C、标识列可以使任意数据类型 D、不能更新或输入标识列的值

23)要在SQL Server 2005数据库中创建一个网站用户信息表,其中用户的Email地址用一个字段来存储,规定Email地址中要含有“@”和“.”字符。这一规定可以采用( )来实现。(选择一项)

A、主键约束 B、外键约束 C、检查约束 D、默认约束

24)在SQL Server 2005中,删除表sample中的所有数据,可以使用如下( B )语句。(选择一项)

A、Drop table sample B、delete from sample C、delete*from sample D、drop*from sample

25)在SQLServer 2005中,下列查询条件(AD)可以查询出员工表中的列hometown不是“北京”的纪录。(选择二项)

A、Where hometown!='北京' B、Where hometown not '北京' C、Where hometown is not ‘北京’ D、Where hometown<>‘北京’ 26)在SQLServer2005中,要防止大于100的数据被保存到int类型的列,可以使用( D )。(选择一项)

A、主键约束 B、限制约束 C、外键约束 D、检查约束

27)在SQL Server2005数据库中,系统提供聚合函数对列中的数据进行计算。以下聚合函数中,( A )用于返回表达式中所有值的总和(选择一项)

A、SUM B、MAX C、AVG D、COUNT 28)在SQL Server 2005数据库中,以下关于主键的说法正确的是( B )(选择一项) A、表创建后,一旦设定了主键,主键就不能更改 B、表中可以没有主键 C、主键列的值可以重复 D、主键列允许插入空值 29)在SQL Server 2005数据库中,学生成绩表score中包含字段:学生编号sid,课程编号cid,分数score,现在查询各个课程的平均得分,以下语句正确的是(BD )(选择二项) A、select sum(score)/count(score)from score

B、select sum(score)/count(score)from score group by cid C、select avg(score)from score order by cid D、select avg(score)from score group by cid

30)在SQLSerever2005数据库中,字符串函数可以用于控制返回给用户的字符串,以下( A )函数用于将传递给它的字符串转变为大写(选择一项)

A、UPPER B、LOWER C、RTRIM D、STUFF

31)在使用SQL Server2005数据库时,有时需要将本机的数据库移动到其他机器上,恢复成对应的数据库使用。移动数据库分两步进行,应包括( A )和附加数据库(选择一项) A、分离数据库 B、删除数据库 C、新建数据库 D、合并数据库 32)在SQL Server2005中,学生表student中包含字段:学生编号sid(主键),学生姓名sName。成绩表score包含字段:课程编号cid,学生编号sid(外键),学生成绩score;其中学生表包含10行数据,成绩表包含6行记录(且sid列没有重复值),那么执行sql语句:select*from

srudent left outer join score on srudent.sid=score.sid,将返回( C )条记录(选择一项) A、0 B、6 C、10 D、16

33)Sql server提供了一些字符串函数,以下说法中正确的是( AC )(选择二项) A、select len(‘hello’)(hello前后都无空格) 返回值为:5 B、select len(‘hello’)(hello前后都有一个空格) 返回值为:5 C、select len(‘hello’)(hello前后都有一个空格) 返回值为:6 D、select len(‘hello’)(hello前后都有一个空格) 返回值为:7 34)在SQL Server2005中,附加数据库操作是指( B )(选择一项) A、把SQL Server 数据库文件保存为其他数据文件

B、根据数据库物理文件中的信息,把数据库在SQL Server 2005中恢复 C、把所有该数据库表的数据清空 D、把数据库删除掉

35)在SQL Server 2005中,假定grade(成绩)表中包含字段:cID(班级编号)、lang(语文课成绩)、math(数学课成绩)、eng(英语课成绩),那么计算不同班级每门课程的平均成绩的SQL语句是( D )(选择一项)

A、SELECT cid,AVG((lang,math,eng) FROM grade GROUP BY lang,math,eng

B、SELECT cID,AVG(lang),AVG(math),AVG(eng) FROM grade GROUP BY lang,math,eng C、SELECT cID,AVG(lang,math,eng) FROM grade GROUP BY cID

D、SELECT cID,AVG(lang),AVG(math),AVG(eng) FROM grade GROUP BY cID

36)数据库系统发展到今天,占统治地位的乃然是关系数据库。关系数据库中所谓的数据冗余指的是( B )(选择一项)

A、数据不准确 B、存在重复数据 C、数据之间不存在关系 D、数据量太大

37)在SQL Server2005数据库中,可以使用( B )关键字来限制返回的数据行数(选择一项)

A、limit B、top C、count D、sum

38)在SQL server 2005数据库中,雇员信息表的结构如下所示,则选项中的语句能够正确查询出薪水低于2000元的性别为男性的雇员信息的是( A )(选择一项) 表名 列名 Employee 主键 Employee 数据类型 长度 是否容许为空 默认值 描述 4 不允许 Employee int Name Age Sex 0 男 标识列 雇员姓名 雇员年龄 雇员性别 雇员学历 雇员职位 雇员薪水 varchar 50 不允许 int char 4 2 不允许 不允许 Education varchar 50 不允许 Job Salary varchar 50 不允许 money 8 不允许

A、select * from Employee where (not(Salary>=2000))and(Sex='男') B、select * from Employee where (not(Salary>=2000))&&(Sex='男') C、select * from Employee where (not(Salary<2000))and(Sex='女') D、select * from Employee where ((Salary<2000))&&(Sex='男')

39)在SQL Server2005数据库中,有一个course(课程)表,包含字段;cName(课程名称),

grade(学分)。要从此表中查询所有学分不在1-4之间的课程名称,以下语句正确的是( BD )(选择二项)

A、select cName from course where grade in(1,4)

B、select cName from course where grade not between 1 and 4 C、select cName from course where grade not between 4 and 1 D、select cName from course where not (grade>=1 and grade<=4)

40)在SQL Server2005数据库系统中,表Students的主键SCode为表Score的外键StudentID,表Students含有5条数据,表Score含有10条数据,当对表Students和表Score进行如下查询时,将查询出( A )条记录(选择一项)

Select s.Scode from Students as s left join Score as c on (s.Scode=c.StudentID) A、5 B、10 C、15 D、0

二、代码编写题

1、用SQL语句输出显示系统当前日期。格式如下:“2010-6-17”;

Select datename(yy,getdate())+”-”+datename(month,getdate())+”-”+datename(day,getdate())

2、有一张图书信息表bookinfo,其中有一个价格price字段。要求写一个查询语句:查询出价格为15.6元、18元和25元的图书信息

Select * from bookinfo where price in(15.6,18,25)

3、有两种表,一个是图书信息表,一个是借阅表。 图书信息表 列名 Bookid Words Bookname Author Press Price remark 图书借阅表 列名 Borrowid Borrowname Bookid BorrowBook 数据类型 Int Varchar(20) Int 是否为空 否 否 是 备注 借阅编号(主键,标识列) 借用人姓名 图书编号(外键,参照图书信息表的bookid) 借阅时间 备注 Books 数据类型 Int Varchar(50) Varchar(50) Varchar(20) Varchar(50) Float Varchar(150) 是否为空 否 否 否 否 否 否 是 备注 图书编号(主键,标识列) 书架名 图书名称 作者 出版社 价格 备注 Borrowtime remark Datetime Varchar(150) 否 是

问题:

(1)向图书表中插入如下数据:

?TP3/12?,?数据库导论?,?王强?,?科学出版社?,17.9,?这本书不错?

?TP3/15?,?计算机基础?,?张小兵?,?电子工业出版社?,27,null

向借阅表中插入如下数据: ?张三?,1,?2010-6-17?,?三天后归还? ?李四?,2,?2010-6-17?,?五天后归还?

(2)修改《数据库导论》这本书的出版社为“高等教育出版社”。 (3)删除单价是20元以下的图书。

(4)查询每本书的作者、出版社和价格。 (5)查询Books表中所有书的价格总和。 (6)查询价格在15元到20元之间的所有图书 (7)查询以TP开头的书架下的所有书。 (8)查询每个出版社出版书的数量。

(9)查询每个人所借书的书名、价格、以及出版社。 (10)查询每本书的借阅人。

本文来源:https://www.bwwdw.com/article/rdy5.html

Top