数据库----错题整理

本文深入讲解数据库管理系统的基础知识,涵盖数据库语言、视图、查询、关系数据库、实体联系模型、SQL函数、事务特性、权限分配、索引优化、数据完整性约束及数据库系统的设计原则。

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

1、数据库管理系统是( C )

A.一个完整的数据库应用系统.

B. 一组硬件

C. 一组软件

D. 既有硬件,也有软件

数据库管理系统是位于用户和OS之间的一层管理 软 件 ,数据库系统是由数据库,硬件,软件,数据库管理员组成。

2、负责数据库中查询操作的数据库语言是( C )。

A 数据定义语言

B 数据管理语言

C 数据操纵语言

D 数据控制语言

【解析】
数据库语言包括:
①数据定义语言(DDL)及其翻译程序,主要负责数据的模式定义与数据的物理存取构建;
②数据操纵语言(DML)及其编译(或解释)程序,主要负责数据的基本操作,包括查询、增加、删除、修改等操作;
③数据控制语言,主要负责解释每个控制命令的含义,决定如何去执行控制命令。

3、下列关于视图的说法错误的是()。

A.视图是从一个或多个基本表导出的表,它是虚表

B.某一用户可以定义若干个视图

C.视图一经定义就可以和基本表一样被查询、删除和更新

D.视图可以用来定义新的视图

视图一经定义就无法修改

4、在sql数据库中,哪个语句能校验整数列i的值不小于1不大于10 ?(A)

A. i BETWEEN 1 AND 10

B. i BETWEEN 0 AND 11

C. i IN INTERVAL(0, 11)

D. i IN INTERVAL(1, 10)

【 between and 】
查询数字是包含左右边界,查询日期时不包含右边界;
【interval】
interval(n,n1,n2)是比较函数,返回比n大的位置
interval也可以用来处理时间
now ()- interval 24 hour 返回前一天

5、一个关系数据库文件中的各条记录(B)。

A.前后顺序不能任意颠倒,一定要按照输入的顺序排列

B.前后顺序可以任意颠倒,不影响库中的数据关系

C.前后顺序可以任意颠倒,但排列顺序不同,统计处理的结果就可能不同

D.前后顺序不能任意颠倒,一定要按照关键字字段值的顺序排列

一个关系表中的数据就是数据集,集合,是无序的!

6、将实体-联系模型转换为关系模型时,实体之间多对多联系在关系模型中的实现方式是( A )

A.建立新的关系

B.建立新的属性

C.增加新的关键字

D.建立新的实体.

将实体-联系模型转换为关系模型时,一个m:n的联系可以转换为一个独立的关系模式,与该联系相连的各实体的码及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。故本题答案为A选项。

8、定义学生、教师和课程的关系模式
S(S#,Sn,Sd,Dc,Sa)(其属性分别为学号、姓名、所在系、所在系的系主任、年龄);
C(C#,Cn,P#)(其属性分别为课程号、课程名、先修课);
SC(S#,C#,G)(其属性分别为学号、课程号和成绩),则该关系为( A)。

A.第二范式

B.第一范式

C.第三范式

D. BCNF范式

范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求,满足不同程度要求的为不同范式。
①第一范式:数据库中每一个属性都不可再分(不可以用多重值)。
②第二范式:关系模式是第一范式,并且必须要有主键,同时每个非主属性完全依赖于主键,不存在部分依赖。
③第三范式:关系模式是第二范式,并且不存在非主属性对主键的传递依赖(在关系模式中,如果X→Y,Y→Z,且Y不决定X和Z不属于X,那么X→Z是传递依赖)。
④BCNF范式:所有属性都不传递依赖于关系的任何候选键。
本题中,关系模式满足第二范式,但在关系模式S中,学生学号本身确定了所在系(S#→Sd),但系本身确定了系主任(Sd→Dc),存在传递依赖,不满足第三范式,故本题答案为D。

9、关于求和函数,以下说法正确的是(A)

A. sum返回表达式中所有数的总和,因此只能用于数字类型的列

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

C. Max和Min可以用于字符型的列

D. Count可以用于字符型的列

【注意题目说的是求和函数】
①SQL中的求和函数SUM( )用于对数据求和,返回选取结果集中所有值的总和。
说明:
SUM()函数只能作用于数值型数据, 当对某列数据进行求和时,如果该列存在NULL值,则SUM函数会忽略该值。
②avg这个是数值函数 , 不能 用于 日期

10、在一个含有group by的查询sql中,同时存在having和where,sql在解析执行的时候,先执行的是哪一个?

答案:where

执行顺序:from,where,group by,having,select,order by

执行顺序:FROM>ON>JOIN>WHERE>GROUP BY>WITH CUBE or WITH
ROLLUP>HAVING>SELECT>DISTINCT>ORDER BY>TOP

where过滤from所指定的数据源,但对于group by所产生的分组无效;having过滤分组,它依附于group by存在。

11、语句SELECT IF(-1,5,2)的返回值是(D)

A.2

B.6

C. -1

D.5

if(条件,表达式1,表达式2)
如果条件为真(即不为0),执行表达式1,否则,执行表达式2.

12、给出数据表
score(stu_ id, name, math, english, chinese),
下列语句正确的是(D)

A. select *, sum(english) from score

B. delete * from score

C. select stu_ id, sum (math) from score

D. select sum (math) , avg (chinese) from score

【A答案】
select sum(english)得到的是所有english列的总和,应该得到的是一行一列的元组。而select *显然得到的是多行多列;
【B答案】
delete 这个 * 的使用是不合法的,因为delete是以元组为单位进行删除的。select用是为了代表所有的列,delete这样使用会造成使用的歧异。
【C答案】
由于没有显示指明where,也没有进行group by,导致stu_id投影后是一个多行一列的表,而sum(math)则是一个一行一列的表,导致连接操作无法使用,而之后select投影就无从做起。
【D答案】
两个一行一列的数据拼一起,没有问题。

13、数据库 做join操作时,至少要涉及到几张表?(B)

A.3

B.1

C.2.

D.4

解析: 自连接只有一张表

13、如果事务T获得了数据项Q上的排它锁,则T对Q(C)
A.只能读不能写

B.只能写不能读

C.既可读又可写

D.不能读不能写

【共享锁】
又称读锁(S锁),若事务T对数据对象A加上S锁,则其它事务只能再对A加S锁,但不能加X锁,直到T释放A上的S锁。
【排它锁】
又称写锁(X锁),若事务T对数据对象加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。它防止任何其它事务获取资源上的锁,直到在事务的末尾将资源上的原始锁释放为止。
【 更新锁(U)】
用来预定要对此页施加X锁,他允许其他事务读,但不允许再施加U锁或X锁;当被读取的页将要被更新时,则升级为X锁;U锁一直 到事务结束时才被释放;

【数据库的约束】

NOT NULL : 用于控制字段的内容一定不能为空(NULL)。

UNIQUE : 控制字段内容不能重复,一个表允许有多个 Unique 约束。

PRIMARY KEY: 也是用于控制字段内容不能重复,但它在一个表只允许出现一个。

FOREIGN KEY: FOREIGN KEY 约束用于预防破坏表之间连接的动作,FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。

CHECK: 用于控制字段的值范围。

DEFAULT: 用于设置新记录的默认值。

14、以下哪个不是与Mysq|服务器相互作用的通讯协议(B)

A. TCP/ IP

B. UDP

C.共享内存

D. Socket

与Mysql服务器相互作用的通讯协议包括TCP/IP,Socket,共享内存,命名管道

15、下列哪个特性与此事相关:已落实的事務会保证所有操作均已完成,并且在事务回滚中,所有操作产生的
影响均已得到恢复?(B)

A.隔离性

B.原子性

C.一致性

D.持久性

【原子性】
即当数据修改时,要么全执行,要么全不执行,即不允许事务部分的完成,避免了只执行这些操作的一部分而带来的错误。原子性要求失误必须被完整执行。
【一致性】
一个事务执行之前和之后,数据库数据必须要保持一致性状态。数据库的一致性状态应该满足模式锁指定的约束,那么在完整执行该事务后数据库仍然处于一致性的状态。为了维护所有数据的完整性,在关系型数据库中,所有规则必须应用到事务的修改上。
【隔离性】
也被成为独立性,当两个或多个事务并发执行时,为了保证数据的安全性,将一个事物内部的操作与事务的操作隔离起来,不被其他正在执行的事务看到。
【持久性】
持久性也被成为永久性,事务完成之后,DBMS保证它对数据库中的数据的修改是永久性的,当系统或介质发生故障时,该修改也永久保持。持久性一般通过数据库备份与恢复来保证。

16、下列sq|语句中哪条语句可为用户zhangsan分配数据库userdb表userinfo的查询和插入数据权限(A)。

A. grant select, insert on userdb.userinfo to’ zhangsan’@ ’ localhost '

B. grant ’ zhangsan’@'localhost’to select, insert for userdb .userinfo

C. grant select, insert on userdb. userinfo for ’ zhangsan’ @ 'localhost

D. grant’ zhangsan’@’ localhost’to userdb.userinfo on select, insert

格式应该是:
grant [权限] on [table] to ‘username’@‘localhost’;

17、有订单表orders,包含字段用户信息userid,段产品信息productid,以下语句能够返回至少被订购过两回的productid?

A. select productid from orders where count (productid) > 1

B. select productid from orders where max ( productid) > 1

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

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

① 顺序为:select, from, where, group by, having, order by, limit
②group by
通常和集合函SUM(),AVG().MAX(),MIN(),COUNT()等结合在一起,后接限制条件语句 having,不可用where语句!

18、在手机开发中常用的数据库是(A)

A. sqlLite

B. Oracle

C. Sql Server

D. Db23

【SQLite】
是一款轻型的 关系型 数据库, 它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是 嵌入式 的,而且目前已经在很多 嵌入式产品 中使用了它,占用资源非常的低,在 嵌入式设备 中,可能只需要几百K的内存

19、下列关于数据库特点的说法中正确的是( )。

A.数据能共享且独立性高

B.数据能共享但数据冗余很高

C.能保证数据完整性但降低了安全性

D.数据独立性高但不能实现共享.

【解析】
数据库管理系统的特点:共享性高,冗余度小;具有高度的物理独立性和逻辑独立性;整体 结构化,用数据模型描述;由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力。故本 题答案为A选项。

20、电话号码表t _phonebook中含有 100万条数据,中号码字段PhoneNo.上创建了唯一引,电话号码全部由数字组成,要统计号码头为321的电话号码的数量,下面写法执行速度 最慢的是(C)

A.select count (*) from t_ phonebook where phoneno >= 1321’ and phoneno < ‘321A’

B. select count(*) from t phonebook where phoneno like 321%’

C. select count(*) from t_ phonebook where substr (phoneno,1,3) = '321’

D.都一样快

A:使用<>、not in 、not exist,对于这三种情况大多数情况下认为结果集很大,一般大于5%-15%就不走索引而走FTS(全表扫描)。所以A可能索引失效也可能不失效。
C: 在索引列上使用函数。如SUBSTR,DECODE,INSTR等,对索引列进行运算,索引失效。
需要建立函数索引就便可以解决。

【容易引起oracle索引失效的原因很多】
1、在索引列上使用函数。如SUBSTR,DECODE,INSTR等,对索引列进行运算.需要建立函数索引就可以解决了。
2、新建的表还没来得及生成统计信息,分析一下就好了 3、基于cost的成本分析,访问的表过小,使用全表扫描的消耗小于使用索引。
4、使用<>、not in 、not exist,对于这三种情况大多数情况下认为结果集很大,一般大于5%-15%就不走索引而走FTS。
5、单独的>、<。 6、like “%_” 百分号在前。 7、单独引用复合索引里非第一位置的索引列。
8、字符型字段为数字时在where条件里不添加引号。 9、当变量采用的是times变量,而表的字段采用的是date变量时.或相反情况。
10、索引失效,可以考虑重建索引,rebuild online。 11、B-tree索引 is null不会走,is not
null会走,位图索引 is null,is not null 都会走、联合索引 is not null
只要在建立的索引列(不分先后)都会走。

21、以吓哪一句从表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

①Sql server: select TOP N * from table_name. ②MySQL: select * from table_name limit 0,10;
③Oracle: select * from table_name where rownum<=10

22、以下不是RDBMS的是(D)

A. mysql

B. postgreSql

C. oracle

D. hadoop

hadoop是分布式文件系统,不是关系型数据库管理系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值