0
数据库工程师常见面试题
642
4页
100次
墨值0
数据库工程师常见面试题
数据库工程师常见面试题
问题 1为什么 group by order by 会使查询变慢?
答:group by order by 操作通常需要创建一个临时表来处理查询的结果,所以如果查询结果很多的
话会严重影响性能。
问题 2deletetruncate drop ?
答:Delete 令用来删除表的部或者一部分数据行, delete 后,用户需要(commmit)
回滚(rollback) transaction 来执行删除或者撤销删除delete 令会触发这个表上所有 delete 触发器
Truncate 除表中的所有数据,这个操作不能回滚,也不会触发这个表上的触发器,truncate delete
更快,占用的空间更小
Drop 命令从数据库中删除表,所有的数据行,索引和权限也会被删除,所有 DML 触发器也不会被
触发,这个命令也不能回滚。
问题 3
答:数据库设计分为以下五个阶段: 需求分析:主要是准确收集用户信息需求和处理需求,并对收
的结果进行整理和分析,形成需求
明。
概念结构设计:对户需求进综合、归纳、象,形成个与与具体的 DBMS 无关概念模型一般
ER 模型)
逻辑结构设计:将概念结构设计的概念模型转化为某个特定DBMS 支持的数据模型,建立数
库 逻辑模式,并对其进行优化,同时为各种用户和应用设计外模式。
物理结构设计:为设计好的逻辑模型选择物理结构,包括存储结构和存取方法等,建立数据库物理模
式。
实施和维护:实施就是使DLL 语言建立数据库模式,将实际数据载入数据库,建立真正的数据库。
维护阶段是对运行中的数据库进行评价、调整和修改。
问题 4:插入记录时可以不指定字段名称吗?
答:不管使用哪种 INSERT 语法,都必须给出 VALUES 正确数目。如果不提供字段名,则必须给
每个字段提供一个值,否则将产生一条错误消息。如果要在 INSERT 操作中省略某些字段,这些字段需要
满足一定条件:该列定义为允许空值;或者表定义时给出默认值,如果不给出值,将使用默认值。
问题 5:本地索引与全局索引的差别与适用情况。
答:对于本地索引,每一个表分区对应一个索引分区,当表的分区发生变化时,索引的维护由数据库
自动进行。对于全局索引,可以选择是否分区,而且索引的分区可以不与表分区相对应。当对分区进行维
护操作时,通常会导致全局索引的 INVALDED,必须在执行完操作后 REBUILD
问题 6:事务和锁有什么关系
答:可以使用多种机制来确保数据的完整性,例如约束、触发器以及本章介绍的事务和锁等。事务和
锁的关系非常紧密。事务包含一系列的操作,这些操作要么全部成功,要么全部失败,通过事务机制管理
多个事务,保证事务的一致性,事务中使用锁保护指定的资源,防止其他用户修改另外一个还没有完成的
事务中的数据
问题 7:谈谈你对索引的理解
答:索引是若干数据行的关键字的列表,查询数据时,通过索引中的关键字可以快速定位到要访问的
记录所在的数据块,从而大大减少读取数据块 I/O 次数,因此可以显著提高性能。
问题 8谈谈你对事务的理解?
答: COMMITROLLBACK连接到数库或开始一条可执行的 SQL 语句时开,到一条
COMMITROLLBACK 语句或退出数据库时结束。如果在一个事务中包含 DDL 语句,则在 DDL 语句的
前后都会隐含地执行 COMMIT 语句,从而开始或结束一个事务。如果一个事务由于某些故障或者由于用
ROLLBACK 句可以在 COMMIT 命令前随时撤消或回退一个事务。可以回退整个事务,也可以会退部
事务 能回退经被提交务。退 ROLLBACK 为:ROLLBACK to
savepoint 存储点 ,退
SAVEPOINT SAVEPOINT ,
ROLLBACK 语句中没有给 出存储点名,则整个事务被回退。
问题 9:如何设网络据包的大
答:一情况网络数据包的参考下方法。如果应用程常执行大容量复制操作或者
是发、接 text image 数据的话,可以将此值大一点。如果应用程和发信息量
么可以将 512
问题 10:你对标的理解,的分
答:标是据中,作是为储每记录的结为显
和隐式游
问题 11:触发器中能否用 COMMIT,为什么?
答:在触发器中不能使用 COMMIT 等事务制语句。因为触发器是事务触发的如果有事务制语句
会影响到触发它的事务。发它的语句之前的已经完成的没有提交的语句都要到影响。这是会
影响到数据的一致性的
问题 12归档模式归档模式?什么档模可以恢复?
答:归档是在做日志文覆盖前,将该重日志文通过复制操作统文件的,保存到指
定的位置。保存来的重做日志文集合归档做日志文件,复制的过程被
ARCHIVELOG
NOARCHIVELOG)模件进
存, 样就数据库在一定时之前的重日志失,也能恢复到被前。而归档模式
意时上都有日志文件,故可以恢复到意时
问题 13:如换频
答:通过 ARCHIVE_LAG_TARGET 可以日志切换的时间间隔,以位。通过减少时
间隔从而日志换频率。例如代码
SQL> ALTER SYSTEM SET ARCHIVE_LAG_TARGET=50 SCOPE=both;
通过上的命令,可以现日 50 秒切次。
问题 14:表中有 A B C SQL 语句:当 A 列大于 B 列时选 A 列否则选择 B B 列大
C 列时选择 B 列否则选择 C 列。
答:可以用 SQL 语句实现
select (case when a>b then a else b end ), (case when b>c then b esle c end)
from table_name
问题 15:一个日期判断 sql 语句,取出 tb_send 表中日期(SendTime 字段)为当的所有记录?(SendTime
字段为 datetime ,包日期)
答:select * from tb where datediff(dd,SendTime,getdate())=0
问题 16:有一表,里面 3 个字段:,数。其中有 3 条记录分别表示语 70 分,数
80 分, 58 分,用一条 sql 语句查询出这条记录并按件显示出来(并写思路
大于或等于 80 表示优秀大于或等于 60 示及 60 分表示不及
显示格式
优秀
不及
答:可以用 SQL 语句实现
select
(case when >=80 then '优秀'
of 4
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜
近期活动
全部
暂无活动,敬请期待...
相关课程
全部