
《数据库程序员面试笔试通关宝典》通过深入解析企业面试与笔试真题,在解析过程中结合职业需求深入地融入并扩展了核心编程技术。《数据库程序员面试笔试通关宝典》是专门为数据库程序员求职和提升核心编程技能量身打造的编程技能学习与求职用书。
全书共11章。首先讲解了求职者在面试过程中的礼仪和技巧;接着带领读者学习数据库的基础知识,并深入讲解了MySQL数据库、SQL Server数据库、Oracle数据库、MongoDB数据库和Redis数据库等核心编程技术;同时还深入探讨了在数据库中的PL/SQL编程等高级应用技术;最后,对数据库中的安全机制进行了扩展性介绍。
《数据库程序员面试笔试通关宝典》多角度、全方位竭力帮助读者快速掌握数据库程序员的面试及笔试技巧,构建从高校到社会的就职桥梁,让有志于从事数据库程序员行业的读者轻松步入职场。另外,《数据库程序员面试笔试通关宝典》赠送资源比较多,在《数据库程序员面试笔试通关宝典》前言部分对资源包的具体内容、获取方式以及使用方法等做了详细说明。
《数据库程序员面试笔试通关宝典》适合想从事数据库程序员行业或即将参加数据库程序员面试求职的读者阅读,也可作为计算机相关专业毕业生的求职指导用书。
第1章 面试礼仪和技巧 001
1.1 面试前的准备 001
1.1.1 了解面试企业的基本情况以及企业文化 001
1.1.2 了解应聘职位的招聘要求以及自身的优势和劣势 003
1.1.3 简历的投递 003
1.1.4 礼貌答复面试或笔试通知 004
1.1.5 了解公司的面试流程 004
1.1.6 面试前的心理调节 006
1.1.7 仪容仪表 006
1.2 面试中的应对技巧 007
1.2.1 自我介绍 007
1.2.2 面试中的基本礼仪 007
1.2.3 如何巧妙地回答面试官的问题 008
1.2.4 如何回答技术性的问题 009
1.2.5 如何应对自己不会的问题 009
1.2.6 如何回答非技术性的问题 010
1.2.7 当与面试官对某个问题持有不同观点时,应如何应对 010
1.2.8 如何向面试官提问 011
1.2.9 明人“暗语” 011
1.3 面试结束 012
1.3.1 面试结束后是否会立即收到回复 013
1.3.2 面试没有通过是否可以再次申请 013
1.3.3 怎样处理录用与被拒 013
1.3.4 录用后的薪资谈判 014
1.3.5 入职准备 014
第2章 数据库基础 015
2.1 数据库概述 015
2.1.1 数据模型 015
2.1.2 数据库系统结构 016
2.1.3 完整性与安全性 017
2.2 数据库的分类 019
2.2.1 关系数据库 020
2.2.2 NoSQL非关系数据库 020
2.2.3 内存数据库 020
2.2.4 网状和层次数据库 021
2.3 数据库的定义和操作语言 023
2.3.1 数据定义 023
2.3.2 数据查询 024
2.3.3 数据更新 024
2.4 数据库对象 025
2.4.1 视图 025
2.4.2 触发器 026
2.4.3 存储过程 026
2.5 精选面试、笔试题解析 027
2.5.1 数据的物理独立性和逻辑独立性 027
2.5.2 数据库和数据库管理系统 027
2.5.3 数据库中表和视图有什么关系 028
2.5.4 数据库的查询有哪几种方式 028
2.5.5 存储过程 029
2.5.6 数据库的触发器是什么 030
2.5.7 数据库的完整性规则指什么 030
2.5.8 什么是关系数据库,有哪些特点 031
2.5.9 解释一下网状和层次数据库 032
2.5.10 存储过程与函数的区别 032
2.5.11 什么叫视图,游标是什么 033
2.5.12 范式有哪几种,有什么作用 033
2.5.13 使用索引查询一定能提高查询的性能吗,为什么 033
2.5.14 视图的优缺点 034
2.5.15 什么是事务,事务的特性是什么 034
2.6 名企真题解析 034
2.6.1 什么是三级模式和二级映像?有哪些优点 034
2.6.2 什么是视图,是否可以更改 035
2.6.3 关系数据库和文件系统有什么区别 035
第3章 数据库核心知识 037
3.1 范式和反范式 037
3.1.1 范式 037
3.1.2 反范式 038
3.2 数据库模型图 038
3.2.1 E-R模式 038
3.2.2 UML 039
3.3 SQL语言 041
3.4 优化 041
3.5 事务 042
3.5.1 事务特性 042
3.5.2 隔离级别 043
3.6 并发控制和死锁 043
3.6.1 并发控制 043
3.6.2 死锁和活锁 044
3.6.3 封锁协议和两段锁协议 044
3.7 索引 045
3.7.1 分类 045
3.7.2 索引原则 046
3.8 精选面试、笔试题解析 046
3.8.1 数据库事务的特性 046
3.8.2 关系模型的存取方法有哪些 047
3.8.3 数据库事务的隔离级别是什么 048
3.8.4 数据库中的SQL语句怎样优化 049
3.8.5 什么是封锁协议 050
3.8.6 SQL的约束有哪几种 050
3.8.7 产生死锁的原因有哪些 051
3.8.8 数据库中Order by与Group by 052
3.8.9 数据库中在哪里会使用Commit 052
3.8.10 数据库中的序列有什么作用 052
3.8.11 索引有什么作用,优缺点有哪些 053
3.8.12 概述HAVING和WHERE的区别 054
3.8.13 超键、候选键、主键、外键分别是什么 054
3.8.14 数据库的乐观锁和悲观锁是什么 054
3.8.15 数据库的主从复制 055
3.8.16 局部性原理与磁盘预读 055
3.9 名企真题解析 055
3.9.1 SQL语言可以分为哪几类 056
3.9.2 E-R图向关系模型的转换遵循什么原则 056
3.9.3 事务的并发、事务隔离级别引发什么问题 056
3.9.4 数据库中的索引什么情况下会失效 057
第4章 MySQL数据库 058
4.1 MySQL基本操作 058
4.1.1 启动和登录MySQL 058
4.1.2 连接数据库 060
4.1.3 创建数据库 061
4.1.4 数据类型 062
4.1.5 数据表的操作 063
4.2 运行与维护 064
4.2.1 数据查询 065
4.2.2 日志管理 065
4.2.3 备份与还原 066
4.3 精选面试、笔试题解析 066
4.3.1 MySQL的复制原理以及流程 066
4.3.2 MySQL中MyISAM与InnoDB的区别 067
4.3.3 MySQL的数据类型 069
4.3.4 MySQL日志文件类型和日志录入格式 071
4.3.5 MySQL中如何使用索引 072
4.3.6 怎样优化数据库的查询 074
4.3.7 InnoDB引擎有什么特性,在什么时候使用 074
4.3.8 MySQL是否支持事务 076
4.3.9 MySQL支持哪几种备份方式 077
4.3.10 在MySQL数据库中有哪几种约束类型 078
4.3.11 如何选择合适的存储引擎 079
4.3.12 各种不同MySQL版本改进InnoDB 079
4.3.13 缓解服务器压力 079
4.4 名企真题解析 080
4.4.1 MySQL服务 080
4.4.2 MySQL内存的处理 081
4.4.3 MySQL中左连接、右连接和内连接有什么区别 081
第5章 SQL Server数据库 082
5.1 SQL Server基本操作 082
5.1.1 启动与注册 082
5.1.2 创建数据库 084
5.1.3 数据表的操作 087
5.1.4 数据类型 088
5.1.5 SQL数据查询 089
5.2 运行与维护 091
5.2.1 视图 091
5.2.2 存储过程 091
5.2.3 触发器 095
5.2.4 事务与索引 096
5.2.5 数据库的维护 098
5.3 精选面试、笔试题解析 100
5.3.1 SQL Server中使用的数据库对象 100
5.3.2 SQL Server中有什么类型的索引 101
5.3.3 SQL Server中创建数据库的方式 102
5.3.4 SQL Server的触发器 105
5.3.5 SQL注入式攻击,如何防范 106
5.3.6 SQL Server中的视图怎样创建索引 108
5.3.7 介绍一下SQL Server的安全性 108
5.3.8 如何确保表格里的字段只接受特定范围里的值 109
5.3.9 SQL Server数据库的文件都有哪些 109
5.3.10 所有的视图是否都可以更新 109
5.3.11 简述UPDATE触发器的工作原理 110
5.4 名企真题解析 110
5.4.1 存储过程 110
5.4.2 为表建立索引时,SQL Server是否会禁止对表的访问 111
5.4.3 SQL Server提供了哪几种恢复模型 111
第6章 Oracle数据库 115
6.1 Oracle基本操作 115
6.1.1 启动和关闭 115
6.1.2 Oracle体系结构 117
6.1.3 Oracle常用命令 124
6.1.4 数据类型 127
6.1.5 数据表的操作 127
6.2 运行与维护 129
6.2.1 控制文件和日志文件 130
6.2.2 存储过程 131
6.2.3 触发器 135
6.2.4 索引、视图和序列 138
6.3 精选面试、笔试题解析 140
6.3.1 Oracle中经常使用的命令有哪些 140
6.3.2 Oracle的导入导出方式 141
6.3.3 Oracle语句有多少种类型 142
6.3.4 Oracle的分页查询怎样实现 142
6.3.5 Oracle如何获取系统时间 143
6.3.6 死锁问题 144
6.3.7 表连接的方式有哪几种 144
6.3.8 什么是游标,属性有哪些 145
6.3.9 如何建立一个备份控制文件 147
6.4 名企真题解析 147
6.4.1 冷备份和热备份 147
6.4.2 优化Oracle数据库 150
6.4.3 创建一个触发器 151
第7章 MongoDB数据库 152
7.1 MongoDB基本操作 152
7.1.1 MongoDB简介 152
7.1.2 MongoDB的启动 152
7.1.3 创建数据库 153
7.1.4 集合的操作 154
7.1.5 文档的操作 155
7.2 运行与维护 157
7.2.1 排序、索引与聚合 157
7.2.2 备份与还原 159
7.3 精选面试、笔试题解析 160
7.3.1 为什么使用MongoDB 160
7.3.2 MongoDB介绍 160
7.3.3 MongoDB由哪几部分构成 161
7.3.4 MongoDB常用的命令有哪些 162
7.3.5 MongoDB支持哪些数据类型 162
7.3.6 MongoDB有什么特性 163
7.3.7 MongoDB的备份与恢复 164
7.3.8 比较MongoDB和CouchDB有什么区别 167
7.3.9 MongoDB的存储过程 168
7.3.10 MongoDB怎样使用GridFS来存储文件 170
7.3.11 MongoDB的主要特点以及适用于哪些场合 171
7.3.12 MongoDB中的命名空间是什么意思 172
7.3.13 如何执行事务/加锁 173
7.3.14 MongoDB和Redis有什么区别 173
7.4 名企真题解析 173
7.4.1 MongoDB的查询优化怎样实现 173
7.4.2 MySQL与MongoDB有什么区别 175
7.4.3 MongoDB的分片 176
第8章 Redis数据库 178
8.1 Redis基础知识 178
8.1.1 认识Redis 178
8.1.2 Redis字符串 179
8.1.3 Redis哈希 182
8.1.4 Redis列表 184
8.1.5 Redis集合 187
8.1.6 Redis有序集合 190
8.2 Redis高级 194
8.2.1 Redis安全 194
8.2.2 Redis性能测试 195
8.2.3 Redis客户端连接 196
8.2.4 Redis管道技术 197
8.2.5 Redis分区 198
8.3 精选面试、笔试题解析 198
8.3.1 什么是Redis 198
8.3.2 Redis的数据类型有哪些 199
8.3.3 Redis的持久化机制是什么,各自的优缺点有哪些 199
8.3.4 Redis常见性能问题和解决方案 200
8.3.5 Redis的回收策略(淘汰策略) 200
8.3.6 为什么Redis需要把所有数据放到内存中 201
8.3.7 Jedis与Redisson对比有什么优缺点 201
8.3.8 说说Redis哈希槽的概念 201
8.3.9 怎么理解Redis事务 201
8.3.10 Redis如何做内存优化 202
8.3.11 Redis回收进程是如何工作的 202
8.3.12 数据存放问题 202
8.3.13 使用过Redis做异步队列吗,你是怎么用的 202
8.3.14 Redis相比Memcached有哪些优势 203
8.3.15 什么是缓存穿透,如何解决 203
8.3.16 旧版Redis复制过程是怎样的 203
8.3.17 Redis如何实现分布式锁 203
8.4 名企真题解析 204
8.4.1 Redis最适合什么场景 204
8.4.2 Redis数据处理 205
8.4.3 讲讲Redis Cluster的高可用与主备切换原理 205
第9章 PL/SQL编程 206
9.1 PL/SQL基础知识 206
9.1.1 PL/SQL数据类型 206
9.1.2 PL/SQL控制语句 207
9.2 异常处理 209
9.3 游标 210
9.4 存储过程 212
9.4.1 子程序 213
9.4.2 存储过程的用法 213
9.4.3 存储过程的规则 215
9.5 精选笔试、面试题解析 216
9.5.1 如何书写显式游标 216
9.5.2 存储过程在编写时有哪些规则 217
9.5.3 Oracle和PL/SQL的区别 217
9.5.4 自定义异常 218
9.5.5 NO_DATA_FOUND和%NOTFOUND的区别是什么 219
9.5.6 几种异常的区别 219
9.5.7 PL/SQL控制语句有哪些 220
9.5.8 SGA主要有哪些部分,主要作用是什么 222
9.5.9 RMAN是什么,有什么特点 223
9.5.10 求1~100的素数 223
9.5.11 使用代码解决员工薪资 223
9.5.12 员工工资排序 224
9.5.13 PL/SQL程序编写(1) 225
9.5.14 PL/SQL程序编写(2) 225
9.5.15 创建一个序列,第一次从5循环到10,以后再从0开始循环 225
9.5.16 检查薪水范围 226
9.5.17 调薪 227
9.5.18 显示EMP中的第四条记录 227
9.6 名企真题解析 228
9.6.1 使用预定义异常完善员工查询信息 228
9.6.2 存储过程 228
9.6.3 PL/SQL中表分区的类型有哪些 230
第10章 SQL语句面试、笔试题 231
10.1 MySQL的SQL语句面试、笔试题 231
10.1.1 创建student表和score表 232
10.1.2 为student表和score表增加记录 232
10.1.3 查询student表的所有记录 233
10.1.4 查询student表的第2条到第4条记录 233
10.1.5 查询多个字段 233
10.1.6 从student表中查询计算机系和英语系学生的信息 234
10.1.7 从student表中查询年龄18~22岁的学生信息 234
10.1.8 用连接的方式查询所有学生的信息和考试信息 234
10.2 SQL Server的SQL语句面试、笔试题 235
10.2.1 查出表中所有的id记录 235
10.2.2 表A和表B换值 235
10.2.3 SQL Server中的外连接查询 235
10.2.4 行列互换 236
10.2.5 删除重复记录 238
10.2.6 SQL Server中的锁 239
10.3 Oracle的SQL语句面试、笔试题 240
10.3.1 从数据库中随机取10条数据 240
10.3.2 表a的数据遍历赋值插入表b中 240
10.3.3 SQL语句查询学生姓名 241
10.3.4 SQL语句按要求查找 241
10.3.5 Oracle的表和视图 242
10.3.6 Oracle的异常处理 243
10.3.7 Oracle的分区表 245
10.4 MongoDB的SQL语句面试、笔试题 248
10.4.1 MongoDB的存储过程 248
10.4.2 MongoDB中关于查询的语句 249
10.4.3 根据要求删除索引 251
10.4.4 MongoDB中添加、删除和修改命令的使用 252
10.4.5 MongoDB的查询优化是怎样实现的 254
10.4.6 MongoDB的命名空间 255
第11章 数据库的安全性 256
11.1 安全机制 256
11.1.1 用户标识与鉴别 256
11.1.2 存取控制 257
11.1.3 视图机制 260
11.1.4 审计技术 260
11.1.5 数据加密 261
11.2 精选面试、笔试题解析 261
11.2.1 数据库系统的安全性控制方法 261
11.2.2 什么是数据库的安全性 262
11.2.3 SQL中提供了哪些自主存取控制语句 262
11.2.4 自主存取控制和强制存取控制 262
11.2.5 用户标识与鉴别 263
11.2.6 数据加密技术 264
11.2.7 如何创建角色和进行授权 264
11.2.8 视图的作用 266
11.2.9 存取控制过程 267
11.2.10 数据库的安全策略有哪些 268
11.2.11 索引的底层实现原理和优化 269
11.2.12 文件索引和数据库索引为什么使用B+树 269
11.2.13 如何避免SQL注入 270
11.2.14 一般数据库系统安全涉及几个层次 270
11.2.15 体系结构 271
11.3 名企真题解析 271
11.3.1 角色的概念 271
11.3.2 主体、客体和敏感度标记 272
11.3.3 权限的授予和回收应如何实现 273
读者对象
本书适合想从事数据库程序员行业或即将参加数据库程序员面试求职的读者阅读,也可作为计算机相关专业毕业生的求职指导用书。
★★精心甄选IT名企面试笔试、岗位测评、选拔晋升中涉及的经典编程题目(98%真题和真题演绎)。
★★精准涵盖编程基础、核心技术、框架涉及、数据结构及算法等编程核心主题(100%解析透彻)。
★★精心解析各类面试笔试中的高频考点及难点(100%场景模拟)。
★★超值赠送职业规划库、软件技术库、面试资源库、求职资源库、本书全部源代码、编程水平测试系统、软件学习必备工具及电子书资源库。
读者对象
★★准备从事数据库程序员工作的人员。
★★准备参加数据库程序员求职面试的人员。
★★正在学习软件开发等计算机相关专业的毕业生。
★★准备从事软件开发行业的计算机爱好者。