SQL 测试题

这是一份关于SQL的多项选择题测试,涵盖了数据冗余、主键设计、数据完整性、标识列、检查约束、数据库操作等多个方面。题目涉及如何避免数据冗余、主键的设置和作用、数据完整性的维护、标识列的特性、检查约束的实施、SQL语句的正确使用等。通过这些题目,可以检验和提升对SQL及数据库管理的理解和应用能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

针对以下题目请选择正确答案(每道题目有一个或多个正确的答案)。针对每一道题目,所有答案都选对,则该题得分,所选答案错误或不能选出所有正确答案,则该题不得分,以下每题2分。

 

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

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

b) 通过分类存储,可以有效减少数据冗余,但是会增加数据查找的复杂性

c) 在数据库设计阶段,一定要尽最大可能避免数据冗余,最好做到无数据冗余。

d) 数据冗余通常是由于数据库设计引起的。

 

2)

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

a) 如果不能有同时重复的username和password,那么username和password可以组合在一起作为主键。

b) 此表设计主键时,根据选择主键的最小性原则,最好采用userid作为主键。

c) 此表设计主键时,根据选择主键的最小性原则,最好采用username和password作为组合键。

d) 如果采用userid作为主键,那么在userid列输入的数值,允许为空。

 

3)

AD 关于数据完整性,以下说法正确的是(AD)。(选择两项)

a) 引用完整性通过主键和外键之间的引用关系实现。

b) 引用完整性通过限制数据类型、检查约束等实现。

c) 数据完整性是通过数据操纵者自身对数据的控制来实现的。

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

 

4)B 关于标识列,以下说法正确的是(B)。(选择一项)

a) 使用sql语句插入数据时,可以为标识列指定要插入的值。

b) 设定标识时,必须同时指定标识种子和标识递增量。

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

d) 只能把主键设定为标识列。

 

5)C 现有表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)

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

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

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

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

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

 

7)

AC Microsoft SQL Server 2000 在安装的时候就创建的示例用户数据库包括(AC)。(选择两项)

a) Pubs

b) Master

c) Northwind

d) Msdb 

 

8)B 以下(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)

D Sql server中,学生表student中包含字段: 学生编号sid(主键,标识列),学生姓名sName,现在向该表中插入数据,以下语句正确的是(C)。(选择一项)

a) insert into student (sid,sName) values (1,’jack’)

b) insert into student values (1,’jack’)

c) insert into student (sid,sName) values (’jack’)

d) insert into student values (’jack’)

 

10)

C 查找 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)

A 现有表book,字段:id (int),title (varchar), price (float); 其中id字段设为标识, 使用insert语句向book表中插入数据,以下语句错误的是(D)。(选择一项)

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)D 不可以启动和停止SQL Server 2000服务的工具是(D )。(选择一项)

a) SQL Server企业管理器

b) SQL Server服务管理器

c) Windows服务

d) SQL Server查询分析器

 

13)

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

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)C 在sql server 2000中,关于数据库说法错误的是(C)。(选择一项)

a) 数据库在磁盘上默认的存储位置是:SQL Server安装路径/Microsoft SQL Server/MSSQL/Data

b) 一个数据库至少应包含一个数据库文件(*.mdf)和一个事务日志文件(*.ldf)

c) 只有当数据库中不存在数据的情况下,才可以进行数据库的收缩操作。

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

 

15)

BC 若要删除book表中所有数据,以下语句错误的是(B)。(选择两项)

a) truncate table book

b) delete * from book

c) drop table book

d) delete  from book

 

16)

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

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

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

 

17)

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

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

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

c) select  *  from book where price= max(price)

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

 

18)A Sql server提供了一些字符串函数,以下说法错误的是(A)。(选择一项)

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)

A 现有书目表book,包含字段:价格price (float),类别type(char); 现在查询各个类别的平均价格、类别名称,以下语句正确的是(A)。(选择一项)

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)

BC 若student表中包含主键sudentid,并且其中有一条studentid为100的记录,则执行语句:update student set studentid=101 where studentid=100, 结果可能是(B)。(选择两项)

a) 错误提示:主键列不能更新。

b) 更新了一条数据。

c) 错误提示:违反主键约束。

d) 既不提示错误,也不更新数据。

 

21)D 查询student表中的所有非空email信息, 以下语句正确的是()C。(选择一项)

a) Select email from student where email !=null

b) Select email from student where email not is null

c) Select email from student where email <> null

d) Select email from student where email is not null

 

22)D 以下不属于企业管理器功能的是(D)。(选择一项)

a) 创建并管理所有数据库、登陆、用户、权限等。

b) 管理和执行数据导入导出、数据库备份等多项辅助功能。

c) 定义 sql server组。

d) 调试、执行sql语句, 批处理和脚本。

 

23)

C 以下(C)语句的返回值不是22。(选择一项)

a) Select abs(-22)

b) Select abs(22)

c) Select ceiling(22.1)

d) Select floor(22.9)

 

24)

BC 成绩表grade中字段score代表分数,以下(B)语句返回成绩表中的最低分。(选择两项)

a) select max(score) from grade

b) select top 1 score from grade order by score asc

c) Select min(score) from grade

d) select top 1 score from grade order by score desc

 

25)

D 现有订单表orders,包含用户信息userid, 产品信息 productid, 以下(C)语句能够返回至少被订购过两回的productid。 (选择一项)

a) select productid from orders where count(productid)>1

b) select productid from orders where max(productid)>1

c) select productid from orders where having count(productid)>1 group by productid

d) select productid from orders group by productid having count(productid)>1

 

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

a) Sum返回表达式中所有数的总合,因此只能用于数字类型的列。

b) Avg返回表达式中所有数的平均值,可以用于数字型和日期型的列。

c) Max和Min可以用于字符型的列。

d) Count可以用于字符型的列。

 

27)

B 使用Sql server提供的(D),可以在不使用sql语句的情况下创建数据库。(选择一项)

a) 查询分析器

b) 企业管理器

c) 服务管理器

d) 事件探查器

 

28)

C 现有顾客表customers, 包含数据如下表,若执行sql语句:select count(city) from customers,以下(C)是输出结果。(选择一项)

cid cname city

1 jack null

2 lee beijing

3 tom

4 chen beijing

 

a) 1

b) 2

c) 3

d) 4

 

 

 

 

29)

D 现有顾客表customers, 包含数据如下表,若执行sql语句:select avg(discount) from customers,以下(C)是输出结果。(选择一项)

cid cname discount

1 jack null

2 lee 8

3 tom 7

4 chen 1

 

a) 错误提示:不能对null进行avg操作

b) 16

c) 8

d) 4

 

30)

BD Sql server提供了一些日期函数,以下说法错误的是(C)。(选择两项)

a) select dateadd(mm,4,’01/01/99’) 返回值为:05/01/99

b) select datediff(mm,'03/06/2003','03/09/2003') 返回值为:3

c) select datepart(day,'03/06/2003') 返回值为:6

d) select datename(dw,'03/06/2003') 返回值为:6

 

31)

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

bookid title

1 jsp&servlet

2 jsp

3 Professional servlet

4 asp

 

a) 更新了3条记录

b) 更新了2条记录

c) 更新了1条记录

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

 

32)

A Sql server中,学生成绩表grade中包含字段: 学生编号sid,课程编号cid, 分数score,要把所有的学生分数提高5分,以下语句正确的是(A)。

a) update grade set score=score+5

b) update grade values (score=score+5)

c) modify grade values (score=score+5)

d) modify grade set score=score+5

 

33)A 使用以下(B)不可以进行模糊查询。(选择一项)

a) OR

b) Not between

c) Not IN

d) Like

 

34)CD 关于分组查询,以下(CD)描述是错误的。(选择两项)

a) 使用group by 进行分组查询

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

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

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

 

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

a) 外联接查询返回的结果集行数可能大于所有符合联接条件的结果集行数。

b) 多表联接查询必须使用到JOIN关键字

c) 内联接查询返回的结果是:所有符合联接条件的数据。

d) 在where子句中指定联接条件可以实现内联接查询。

 

36)

AD Sql语句:select * from students where SNO like ‘010[^0]%[A,B,C]%’,可能会查询出的SNO是(A)。(选择两项)

a) 01053090A

b) 01003090A01

c) 01053090D09

d) 0101A01

 

37)AD 关于Truncate table, 以下(AD)描述是错误的。(选择两项)

a) Truncate table 可跟Where从句,根据条件进行删除。

b) Truncate table 用来删除表中所有数据。

c) 触发器对Truncate table无效。

d) delete 比Truncate table速度快。

 

38)

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

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

b) 付款方式不能是信用卡,或者信用卡是阳光卡。

c) 如果付款方式是信用卡,那么信用卡不能是阳光卡。

d) 付款方式是信用卡,并且信用卡不能是阳光卡。

 

 

39)

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

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

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

c) 正确执行,显示grade表中各列值,以及加权成绩列,按照score由低到高排序。

d) 错误提示:where 子句中不能出现表达式。

 

40)

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

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 关于主键,以下(AB)说法是错误的。(选择两项)

a) 主键可以用来确保表中不存在重复的数据行。

b) 一个表必须有一个主键。

c) 一个表只能有一个主键。

d) 只能对整数型列设置主键。

 

42)

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

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

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

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

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

 

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

a) Image数据类型可以用来存储图像。

b) 使用字符数据类型时,可以改变长度信息。

c) 使用数字数据类型时,可以改变长度信息。

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

 

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

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)B 定义列中可以接受的数据值或格式,称为(B)。(选择一项)

a) 唯一性约束

b) 检查约束

c) 主键约束

d) 默认约束

 

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

a) select cid,count(money),sum(cid) from orders group by cid

b) select cid,count(money),sum(cid) 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)

AB Sql server提供了一些系统函数,以下说法错误的是(AD)。(选择两项)

a) select datalength(‘ab cde’) 返回值为:5

b) select convert(char(3),12345) 返回值为:123

c) select datalength(‘abcde’) 返回值为:5

d) select convert(char(5),12345) 返回值为:12345

 

48)

C Sql server中,设计用户表时,家庭住址字段最好采用(B)数据类型进行存储。(选择一项)

a) Char/Nchar

b) text/Ntext

c) Varchar/Nvarchar

d) Char2/Nchar2

 

49)

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

a) 10

b) 6

c) 4

d) 0

 

50)

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

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

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

c) 在Sql server中可直接打开Access数据库,另存即可。

d) Sql server的导入/导出功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值