SQL测试题目

更新时间:2024-01-09 09:26:01 阅读量: 教育文库 文档下载

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

一) 有关数据冗余说法错误的是(C)。(选择一项)

a)数据库中,数据存在副本的现象,就是数据冗余

b)通过分类存储,可以有效减少数据冗余,但是会增加数据查找的复杂性 c)在数据库设计阶段,一定要尽最大可能避免数据冗余,最好 做到无数据冗余。 d)数据冗余通常是由于数据库设计引起的。

2)假定有一个用户表,表中包含字段:userid (int)、username (varchar)、 password(varchar)、等,该表需要设置主键,以下说法正确的是(BC)。(选择两项)

a)如果不能有同时重复的username和password,那么username和password可以组合在一起作为主键。 b)此表设计主键时,根据选择主键的最小性原则,最好采用userid作为主键。

c)此表设计主键时,根据选择主键的最小性原则,最好采用username和password作为组合键。 d)如果采用userid作为主键,那么在userid列输入的数值,允许为空。

3)关于数据完整性,以下说法正确的是(AD)。(选择两项) a)引用完整性通过主键和外键之间的引用关系实现。 b)引用完整性通过限制数据类型、检查约束等实现。 c)数据完整性是通过数据操纵者自身对数据的控制来实现的。

d)如果两个表中存储的信息相互关联,那么只要修改了一个表,另外一个表也要做出相应的修改,则称该这两个表中的数据具备完整性。

4)关于标识列,以下说法正确的是(B)。(选择一项) a)使用sql语句插入数据时,可以为标识列指定要插入的值。 b)设定标识时,必须同时指定标识种子和标识递增量。

c)若设定标识时,未指定标识递增量,那么使用sql语句插入数据时,可以为标识列指定递增值。d)只能把主键设定为标识列。

5)现有表user,字段:userid,username, salary, deptid,email; 表department,字段:deptid, deptname;下面(C)应采用检查约束来实现。(选择一项)

a)若department中不存在deptid为2的纪录,则不允许在user表中插入deptid为2的数据行。 b)若user表中已经存在userid为10的记录,则不允许在user表中再次插入userid为10的数据行。 c)User表中的salary(薪水)值必须在1000元以上。

d)若User表的email列允许为空,则向user表中插入数据时, 可以不输入email值。

6) 现有表book,主键bookid设为标识列。若执行语句:select * into book2 from book, 以下说法正确的是(AD)。(选择两项)

a) 若数据库中已存在表book2, 则会提示错误。

b) 若数据库中已存在表book2, 则语句执行成功,并且表book2中的bookid自动设为标识。 c) 若数据库中不存在表book2, 则语句执行成功,并且表book2中的bookid自动设为主键。

d) 若数据库中不存在表book2, 则语句执行成功,并且表book2中的bookid自动设为标识。

7)Microsoft SQL Server 2000 在安装的时候就创建的示例用户数据库包括(AC)。(选择两项) a)Pubs b)Master c)Northwind d)Msdb

8)以下(B)语句从表TABLE_NAME中提取前10条记录。(选择一项) a)select * from TABLE_NAME where rowcount=10 b)select TOP 10 * from TABLE_NAME c)select TOP of 10 * from TABLE_NAME

d)select * from TABLE_NAME where rowcount<=10

9)从“产品”表里查询出价格高于产品名称为“一次性纸杯”的产品的记录,此SQL语句为(A)。(选择一项) a)SELECT * FROM 产品WHERE 价格>‘一次性纸杯’;

b)SELECT * FROM 产品WHERE 价格>(SELECT * FROM 产品WHERE 产品名称>’ 一次性纸杯’); c)SELECT * FROM 产品WHERE EXISTS 产品名称=’ 一次性纸杯’);

d)SELECT * FROM 产品WHERE 价格>(SELECT 价格FROM 产品WHERE 产品名称=’ 一次性纸杯’);

10)查找 student表中所有电话号码(列名:telephone)的第一位为8或6,第三位为0的电话号码(C)。(选择一项)

a)SELECT telephone FROM student WHERE telephone LIKE '[8,6]%0*' b)SELECT telephone FROM student WHERE telephone LIKE '(8,6)*0%' c)SELECT telephone FROM student WHERE telephone LIKE '[8,6]_0%' d)SELECT telephone FROM student WHERE telephone LIKE '[8,6]_0*'

11)现有表book,字段:id (int),title (varchar), price (float); 其中id字段设为标识, 使用insert语句向book表中插入数据,以下语句错误的是(B)。(选择一项) a)insert into book (id,title,price) values(1,'java',100) b)insert into book (title,price) values('java',100) c)insert into book values ('java',100) d)insert book values('java',100)

12)不可以启动和停止SQL Server 2000服务的工具是(D )。(选择一项)

二) a)SQL Server企业管理器

b)SQL Server服务管理器 c)Windows服务 d)SQL Server查询分析器

13)现有表Employee,字段:id (int),firstname(varchar), lastname(varchar); 以下sql语句错误的是(B)。(选择一项)

a)select firstname+'.'+lastname as 'name' from employee b)select firstname+'.'+lastname='name' from employee c)select 'name'=firstname+'.'+lastname from employee d)select firstname,lastname from employee

14)在sql server 2000中,关于数据库说法错误的是(C)。(选择一项)

a)数据库在磁盘上默认的存储位置是:SQL Server安装路径\\Microsoft SQL Server\\MSSQL\\Data b)一个数据库至少应包含一个数据库文件(*.mdf)和一个事务日志文件(*.ldf) c)只有当数据库中不存在数据的情况下,才可以进行数据库的收缩操作。

d)可以通过从A机器拷贝数据库文件和事务日志文件至B机器,然后通过在B机器上执行相应的附加数

据库操作,实现数据库从A机器到B机器的复制。

15)若要删除book表中所有数据,以下语句错误的是(C)。(选择两项) a)truncate table book b)delete * from book c)drop table book d)delete from book

16)学生成绩表grade中有字段score(float),现在要把所有在55分至60之间的分数提高5分,以下语句正确的是(BC)。(选择两项) a)Update grade set score=score+5

b)Update grade set score=score+5 where score>=55 or score <=60 c)Update grade set score=score+5 where score between 55 and 60

sql

d)Update grade set score=score+5 where score >=55 and score <=60

17)现有书目表book,包含字段:price (float); 现在查询一条书价最高的书目的详细信息,以下语句正确的是(BC)。(选择两项)

a)select top 1 * from book order by price asc b)select top 1 * from book order by price desc

c)select top 1 * from book where price= (select max (price)from book) d)select top 1 * from book where price= max(price)

18)Sql server提供了一些字符串函数,以下说法错误的是(B)。(选择一项) a)select right('hello',3) 返回值为:hel

b)select ltrim(rtrim(' hello ')) 返回值为:hello(前后都无空格) c)select replace('hello','e','o') 返回值为:hollo

d)select len('hello') 返回值为:5

19)现有书目表book,包含字段:价格price (float),类别type(char); 现在查询各个类别的平均价格、类别名称,以下语句正确的是(C)。(选择一项) a)select avg(price),type from book group by type b)select count(price),type from book group by price c)select avg(price),type from book group by price d)select count (price),type from book group by type

20)若student表中包含主键sudentid,则执行语句:update student set studentid=100 where studentid=101, 结果可能是(DC)。(选择两项) a)错误提示:主键列不能更新。 b)更新了一条数据。

c)错误提示:违反主键约束。 d)既不提示错误,也不更新数据。

三) 26)

a) Sum b) Avg c) Max d) Count

27)

a) b)

关于聚合函数,以下说法错误的是(C)。(选择一项)

返回表达式中所有数的总合,因此只能用于数字类型的列。 返回表达式中所有数的平均值,可以用于数字型和日期型的列。和Min可以用于字符型的列。 可以用于字符型的列。 使用Sql server提供的(B),可以创建数据库。(选择一项) 查询分析器 企业管理器

c) 服务管理器 d) 事件探查器

28) 现有顾客表customers, 包含数据如下表,若执行sql语句:select count(distinct(city)) from customers,以下(c)是输出结果。(选择一项)0 cid cname city 1 jack null 2 lee beijing 3 tom 4 chen beijing

a) 1 b) 2

c) 3 d) 4

29) 现有顾客表customers, 包含数据如下表,若执行sql语句:customers,以下(D)是输出结果。(选择一项) cid cname discount 1 jack null 2 lee 8 3 tom 7 4 chen 1

select avg(discount) from

a) 错误提示:不能对null进行avg操作 b) 16 c) 8 d) 4

30) Sql server

a) b) select datediff(mm,'03/06/2003','03/09/2003') c) select datepart(day,'03/06/2003') d) select datename(dw,'03/06/2003')

提供了一些日期函数,以下说法错误的是(d)。(选择两项)select dateadd(mm,4,’01/01/99’) 返回值为:05/01/99 返回值为:3 返回值为:6 返回值为:6

31) 现有书目表book,数据见下表。 现在执行sql语句:update book set title=replace(replace(title,'j','a'),'servlet','csharp'),执行结果是(A)。(选择一项) bookid title 1 jsp&servlet 2 jsp

3 Professional servlet 4 asp

a) 更新了3条记录 b) 更新了2条记录 c) 更新了1条记录

d) 该sql语句有错误,无法执行

32) 现有订单表orders, 包含数据如下表。若查询既订购了产品P01,又订购了产品P02的顾客编号,可以执行以下(cd)sql语句。(选择两项) cid (顾客编号) Pid (产品编号) C01 P01 C01 P02 C02 P01 C03 P02

a) select distinct(cid) from orders o1 where o1.pid in ('p01','p02') b) select distinct(cid) from orders o1,orders o2 where o1.pid='p01' and o2.pid='p02' and o1.cid=o2.cid

c) select distinct(cid) from orders o1 where pid='p01' and cid in (select cid from orders where pid ='p02')

d) select distinct(cid) from orders o1,orders o2 where o1.pid='p01' and o2.pid='p02'

33) a) OR

b) Not between c) Not IN d) Like

34)

a) 使用以下(A)不可以进行模糊查询。(选择一项) 关于分组查询,以下(bd)描述是错误的。(选择两项) 使用group by 进行分组查询

b) 对分组后的条件的筛选必须使用Having子句

c) Having子句不能与where子句同时出现在一个select语句中

d) 在使用分组查询时,在select列表中只能出现被分组的列。如:select courseid from grade group by courseid.

35) 关于多表联接查询,以下(b)描述是错误的。(选择一项)

a) 外联接查询返回的结果集行数可能大于所有符合联接条件的结果集行数。 b) 多表联接查询必须使用到JOIN关键字

c) 内联接查询返回的结果是:所有符合联接条件的数据。 d) 在where子句中指定联接条件可以实现内联接查询。

36) Sql语句:select * from students where SNO like ‘010[^0]%[A,B,C]%’,可能会查询

出的SNO是(ad)。(选择两项)

a) 01053090A b) 01003090A01 c) 01053090D09 d) 0101A01

37)

a) Truncate table b) Truncate table c) d) delete 关于Truncate table, 以下(ad)描述是错误的。(选择两项)可跟Where从句,根据条件进行删除。用来删除表中所有数据。 触发器对Truncate table无效。 比Truncate table速度快。

38) 以下(c)说明了代码:not (付款方式=’信用卡’) or (信用卡<>’阳光卡’) 的含义。(选择一项)

a) 付款方式不能是信用卡。

b) 付款方式不能是信用卡,或者信用卡是阳光卡。 c) 如果付款方式是信用卡,那么信用卡不能是阳光卡。 d) 付款方式是信用卡,并且信用卡不能是阳光卡。

39) 执行Sql语句:select *, score*0.5+20 as 加权成绩 from grade where (score*0.5+20)<60 order by score*0.5+20,以下(c)描述是正确的。(选择一项)

a) 错误提示:order by 子句中不能出现表达式。

b) 正确执行,显示grade表中各列值,按照score由低到高排序。

c) 正确执行,显示grade表中各列值,以及加权成绩列,按照score由低到高排序。 d) 错误提示:where 子句中不能出现表达式。

40) 创建一个名为‘Customers’的新表,同时要求新表中包含表‘clients’的所有记录,sql语句是(a)。(选择一项)

a) Select * into customers from clients b) Select into customers from clients c) Insert into customers select * from clients d) Insert customers select * from clients

41) 关于主键,以下(bd)说法是错误的。(选择两项)

a) 主键可以用来确保表中不存在重复的数据行。 b) 一个表必须有一个主键。 c) 一个表只能有一个主键。 d) 只能对整数型列设置主键。

42) 表book中包含三个字段:title(varchar), author(varchar), price(float)默认值是’UNKNOW’,执行sql语句:insert book (title,price) values (‘jsp’, 50)。以下结果正确的是(b)。(选择一项)

a) 插入失败,sql语句有错

b) 插入成功,author列的数据是UNKNOW

。Author的

c) 插入成功,author列的数据是NULL d) 插入成功,author列的数据是50

43) 关于sql server常用的数据类型,以下(c)说法是错误的。(选择一项)

a) Image数据类型可以用来存储图像。 b) 使用字符数据类型时,可以改变长度信息。 c) 使用数字数据类型时,可以改变长度信息。

d) Bit数据类型为1位长度,可以存储表示是/否的数据。

44) 现有学生表student(主键:学生编号sid),成绩表score(外键:学生编号sid), 两表中的数据如下。执行sql语句:select * from student st left outer join score sc on st.sid=sc.sid。正确的返回结果是()条记录。(选择一项)

student sid sname 1 Lee 2 Chen 3 Jack 4 rose score

sid score 1 80 2 75

a) 0

b) 2 c) 4 d) 6

45) 定义列中可以接受的数据值或格式,称为()。(选择一项)

a) 唯一性约束 b) 检查约束 c) 主键约束 d) 默认约束

46) 假设订单表orders用来存储订单信息,cid代表客户编号,money代表单次订购额,现要查询每个客户的订购次数和每个客户的订购总金额,下面()sql语句可以返回正确结果。(选择一项)

a) select cid,count(distinct(cid)),sum(money) from orders group by cid b) select cid,count(distinct(cid)),sum(money) from orders order by cid c) select cid,count(cid),sum(money) from orders order by cid d) select cid,count(cid),sum(money) from orders group by cid

47) Sql server

a) b) select convert(char(3),12345) c) d) select convert(char(5),12345)

提供了一些系统函数,以下说法错误的是()。(选择两项) select datalength(‘ab cde’) 返回值为:5 返回值为:123 select datalength(‘abcde’) 返回值为:5 返回值为:12345

48) 家庭住址最好采用()数据类型进行存储。

a) Char/Nchar b) text/Ntext c) Varchar/Nvarchar d) Char2/Nchar2

49) 现有客户表customers(主键:客户编号cid),包含10行数据,订单表orders(外键:客户编号cid),包含6条数据。执行sql语句:select * from customers right outer join orders on customers.cid=orders.cid。最多返回()条记录。(选择一项) a) 10 b) 6

c) 4 d) 0

50) 假设一系统原来使用Access数据库,现要使用sql server数据库,采用()方法可以完成两个数据库之间的数据转换工作。(选择一项)

a) Sql server的附加数据库功能 b) Sql server的还原数据库功能

c) 在Sql server中可直接打开Access数据库,另存即可。 d) Sql server的导入导出功能

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

Top