数据库程序员面试笔试宝典
作者:猿媛之家组编
出版时间: 2018年版
内容简介
《数据库程序员面试笔试宝典》针对当前各大 IT 企业面试笔试的特性与侧重点,精心挑选了近3年以来近百家 IT 企业的数据库面试笔试真题,这些企业涉及的业务包括系统软件、搜索引擎、电子商务、手机App、安全关键软件等,面试笔试真题非常具有代表性与参考性。同时,《数据库程序员面试笔试宝典》对这些题目进行了合理的划分与归类,并且对其进行了庖丁解牛式的分析与讲解。针对试题中涉及的部分重难点问题,本书都进行了适当地扩展与延伸,力求对知识点的讲解清晰而不紊乱,全面而不啰嗦,不仅如此,《数据库程序员面试笔试宝典》除了对数据库的基础知识进行深度剖析以外,还针对Oracle、MySQL、SQL Server等常见数据库的笔试面试做了非常详细的介绍。 《数据库程序员面试笔试宝典》是一本计算机相关专业毕业生面试、笔试的求职用书,同时也适合期望在计算机软、硬件行业大显身手的计算机爱好者阅读。
目录
前言
上篇 面试笔试经验技巧篇
第1章 求职经验分享2
1.1 踩别人没有踩过的坑,走别人没有走过的路2
1.2 一只小白成长为DBA的心路历程3
1.3 一个热衷于SQL优化的DBA成长经历3
第2章 数据库程序员的求职现状5
2.1 当前市场对于数据库程序员的需求如何?待遇如何?5
2.2 数据库程序员有哪些可供选择的职业发展道路?5
2.3 当企业在招聘时,对数据库程序员通常有何要求?5
2.4 数据库程序员的日常工作是什么?7
2.5 要想成为一名出色的数据库程序员,需要掌握哪些必备的知识?8
2.6 各类数据库求职及市场使用情况9
第3章 如何应对程序员面试笔试?12
3.1 如何巧妙地回答面试官的问题?12
3.2 如何回答技术性问题?12
3.3 如何回答非技术性问题?14
3.4 在被企业拒绝后是否可以再申请?15
3.5 如何应对自己不会回答的问题?15
3.6 如何应对面试官的“激将法”语言?15
3.7 如何处理与面试官持不同观点这个问题?16
3.8 什么是职场暗语?16
下篇 面试笔试技术攻克篇
第4章 数据库基础21
4.1 为什么使用数据库?21
4.2 数据库系统有哪几类数据模型结构?21
4.3 关系型数据库系统与文件系统有什么区别?22
4.4 数据库系统的组成与结构有哪些?23
4.5 数据库系统的主要特点有哪些?24
4.6 试述数据模型的概念、数据模型的作用、常用数据模型的分类和数据模型的三个要素25
4.7 数据库设计过程包括哪几个主要阶段?数据库结构的设计在生存期中的地位如何?26
4.8 范式27
4.8.1 第一、二、三、BC范式28
4.8.2 反范式31
4.9 关系型数据库完整性规则31
4.10 数据库的约束都有哪些?32
4.11 事务34
4.11.1 事务的概念及其4个特性是什么?34
4.11.2 事务的分类35
4.11.3 什么是XA事务?36
4.11.4 事务的4种隔离级别(Isolation Level)分别是什么?36
4.11.5 Oracle、MySQL和SQL Server中的事务隔离级别37
4.12 什么是CAP定理?38
4.13 什么是数据库系统的三级模式结构和二级映像?39
4.14 什么是数据库三级封锁协议?40
4.15 什么是两段锁协议?41
4.16 锁41
4.16.1 基础知识41
4.16.2 更新丢失41
4.16.3 悲观锁和乐观锁42
4.16.4 锁的分类42
4.16.5 Oracle中的锁43
4.16.6 死锁50
4.16.7 什么是MVCC?52
4.17 存储过程53
4.17.1 什么是存储过程?它有什么优点?53
4.17.2 存储过程和函数的区别是什么?54
4.18 触发器的作用、优缺点有哪些?54
4.19 什么是游标?如何知道游标已经到了最后?55
4.20 视图56
4.20.1 什么是视图?视图的作用是什么?56
4.20.2 在什么情况下可以对视图执行增加、删除、修改操作?56
4.20.3 Oracle中的视图57
4.21 SQL语句有哪些常见的分类?58
4.22 SQL语言的数据查询60
4.22.1 多表连接查询61
4.22.2 笛卡儿积是什么?62
4.22.3 Top?N分析62
4.22.4 子查询63
4.22.5 合并查询(集合查询)66
4.22.6 SQL:1999语法对SQL的支持69
4.22.7 WITH语法74
4.22.8 SQL部分练习题75
4.23 什么是SQL注入?79
4.24 索引79
4.24.1 索引的优缺点80
4.24.2 索引的分类81
4.24.3 聚集索引是什么?在哪些列上适合创建聚集索引?82
4.24.4 单列索引和复合索引83
4.24.5 函数索引84
4.24.6 位图索引84
4.24.7 分区索引85
4.24.8 什么是覆盖索引?87
4.24.9 虚拟索引88
4.24.10 不可见索引90
4.24.11 Oracle中的其他索引92
4.25 E?R模型96
4.26 热备份和冷备份的区别是什么?99
4.27 数据字典的定义及作用有哪些?99
4.28 统一建模语言100
4.29 分布式数据库与并行数据库有何异同点?102
4.30 什么是OLAP和OLTP?102
4.31 数据库连接池是什么?103
4.32 数据库安全104
4.33 数据库系统设计题106
4.34 数据库基础部分其他真题解析112
第5章 Oracle数据库119
5.1 开发类常考知识点119
5.1.1 PL/SQL程序119
5.1.2 行列互换有哪些方法?121
5.1.3 如何删除表中重复的记录123
5.1.4 DELETE、DROP和TRUNCATE的区别是什么?123
5.1.5 NULL的注意事项124
5.1.6 如何判断一个存储过程是否正在运行?125
5.1.7 AUTHID CURRENT_USER的作用是什么?125
5.1.8 Oracle用户密码含特殊字符时如何登录?126
5.1.9 当DML语句中有一条数据报错时,如何让该DML语句继续执行?127
5.1.10 真题128
5.2 维护类常考知识点133
5.2.1 Oracle对象133
5.2.2 体系结构135
5.2.3 SQL优化相关147
5.2.4 Oracle性能相关157
5.2.5 会话168
5.2.6 高可用169
5.2.7 备份恢复177
5.2.8 建库、删库、网络184
第6章 MySQL数据库190
6.1 基础部分190
6.1.1 MySQL数据库有什么特点?190
6.1.2 MySQL的企业版和社区版的区别有哪些?191
6.1.3 在Linux下安装MySQL有哪几种方式?它们的优缺点各有哪些?191
6.1.4 如何确定MySQL是否处于运行状态?如何开启MySQL服务?191
6.1.5 如何创建和删除表?192
6.1.6 如何创建和删除数据库?195
6.1.7 如何查看数据库的版本、当前登录用户和当前的数据库名称?195
6.1.8 MySQL有哪些常用日期和时间函数?196
6.1.9 MySQL有哪些数据类型?197
6.1.10 真题200
6.2 维护部分203
6.2.1 MySQL中limit的作用是什么?203
6.2.2 如何查看和修改系统参数?203
6.2.3 MySQL有哪几类日志文件?205
6.2.4 MySQL支持事务吗?211
6.2.5 MySQL有几种存储引擎(表类型)?各自有什么区别?212
6.2.6 MySQL InnoDB引擎类型的表有哪两类表空间模式?它们各有什么优缺点?220
6.2.7 如何批量更改MySQL引擎?221
6.2.8 什么是间隙锁?222
6.2.9 MySQL有哪些命令可以查看锁?223
6.2.10 MySQL如何查看执行计划?执行计划中每列的含义分别是什么?227
6.2.11 MySQL原生支持的备份方式及种类有哪些?232
6.2.12 MySQL有哪几个默认数据库?235
6.2.13 MySQL区分大小写吗?236
6.2.14 MySQL中的字符集236
6.2.15 如何解决MySQL中文乱码问题?238
6.2.16 如何提高MySQL的安全性?239
6.2.17 如何对MySQL进行优化?240
6.2.18 什么是MySQL的复制(Replication)?244
6.2.19 profile的意义及使用场景245
6.2.20 Oracle和MySQL中的分组(GROUP BY)问题246
6.2.21 MySQL的分区表248
6.2.22 MySQL中的索引250
6.2.23 MySQL的CHECK、OPTIMIZE和ANALYZE的作用分别是什么?253
6.2.24 真题254
第7章 SQL Server数据库260
7.1 SQL Server有Linux版本吗?260
7.2 SQL Server如何查看版本?260
7.3 SQL Server 数据库如何启动?261
7.4 SQL Server有哪些默认的系统数据库?262
7.5 SQL Server物理文件有哪3种类型?263
7.6 SQL Serverr的哪类视图是可以更新的?263
7.7 SQL Server标准的SQL与T?SQL的区别是什么?264
7.8 SQL Server采用什么方法可以保证数据的完整性?266
7.9 登录名、服务器角色、用户名和数据库角色266
7.10 SQL Server中的完全备份、差异备份和日志备份的区别是什么?267
7.10 SQL Server提供的3种恢复模型分别是什么?它们有什么区别?267
7.12 SQL Server数据库有哪3类触发器?268
7.13 真题269
7.13.1 简答题269
7.13.2 选择题270
第8章 其他数据库272
8.1 网状数据库与层次数据库273
8.2 关系型数据库274
8.2.1 RDBMS274
8.2.2 PostgreSQL275
8.2.3 DB2275
8.2.4 Microsoft Access276
8.2.5 Sybase276
8.2.6 内存数据库277
8.3 非关系型数据库(NoSQL)285
8.3.1 键值(Key?Value)数据库Redis286
8.3.2 键值(Key?Value)数据库Memcached287
8.3.3 文档型数据库MongoDB287
8.3.4 行存储和列存储289
8.4 时间序列数据库290
8.5 NewSQL291
8.6 区块链292
第9章 操作系统、网络和存储294
9.1 进程管理294
9.1.1 进程与线程有什么区别?294
9.1.2 内核线程和用户线程的区别295
9.2 内存管理295
9.2.1 内存管理有哪几种方式?295
9.2.2 什么是虚拟内存?296
9.2.3 什么是内存碎片?什么是内碎片?什么是外碎片296
9.2.4 虚拟地址、逻辑地址、线性地址、物理地址有什么区别?296
9.3 存储297
9.3.1 Linux下逻辑卷管理(LVM)是什么?其常用命令有哪些?297
9.3.2 AIX下管理LV的常用命令有哪些?299
9.3.3 什么是GPFS?302
9.3.4 什么是RAID?各种级别的RAID的区别是什么?303
9.4 OS304
9.4.1 接触过哪些OS系统?常用命令有哪些?304
9.4.2 会写SHELL脚本吗?305
9.4.3 AIX系统下的LPar、逻辑CPU、虚拟CPU、物理CPU的含义分别是什么?306
9.4.4 NMON的作用是什么?312
9.4.5 Linux环境下/dev/shm目录的作用是什么?313
9.4.6 Linux下的常用设备有哪些?314
9.4.7 什么是YUM?如何配置本地YUM源?318
9.4.8 Linux下如何设置定时任务(crontab)?320
9.4.9 Linux文件的3种时间(mtime、atime、ctime)的区别是什么?322
9.5 网络323
9.5.1 TCP和UDP的区别有哪些?323
9.5.2 Ping命令是什么?323
9.5.3 常用的网络安全防护措施有哪些?324
9.5.4 交换机与路由器有什么区别?325
9.5.5 DNS的作用是什么?325
9.6 真题326
第10章 数据库程序员面试笔试真题库330
10.1 真题一330
10.2 真题二331
10.3 真题三332
10.4 真题一答案334
10.5 真题二答案334
10.6 真题三答案335
附录 336
推荐资料336