具体描述
SQL用于在数据库中插入和提取数据,是操纵数据库中数据的一种国际标准。本书涵盖了SQL的方方面面,包括基础知识、数据库设计、数据库的创建,以及SQL语言在各种数据库中的应用等内容。
本书提供了一些基本代码、理论、概念和技术,以及大量有用示例,使得您能够针对各种实际情况快速设计数据库并编写SQL代码。每章末的练习都有助于您巩固您所学的知识。阅读完本书后,您能够轻松处理有关SQL的多种难题
作者简介
目录信息
1.1 数据库简史 1
1.2 结构化查询语言 5
1.2.1 sql查询简介 5
1.2.2 sql与其他编程语言的比较 5
1.2.3 理解sql标准 6
1.3 创建数据库 7
1.4 创建、更改和删除表 16
1.4.1 创建表 17
1.4.2 更改现有表 18
1.4.3 删除现有表 18
1.5 优秀的数据库设计 19
1.5.1 获得并分析数据需求 19
1.5.2 逻辑地划分数据 20
1.5.3 选择正确的数据类型 22
1.5.4 使用主键 24
1.6 创建示例数据库 25
1.7 本章小结 29
1.8 练习 30
第2章 输入信息 31
2.1 插入新数据 31
2.2 将数据插入到案例分析数据库 34
2.3 更新数据 35
2.4 删除数据 39
2.5 本章小结 39
2.6 练习 40
第3章 提取信息 41
3.1 select语句 41
3.1.1 仅返回不同的行 42
3.1.2 使用别名 43
3.1.3 利用where子句过滤结果 44
3.2 逻辑运算符和运算符优先级 49
3.2.1 运算符优先级概述 49
3.2.2 使用逻辑运算符 52
3.3 利用order by排序结果 62
3.4 从多个表中选择数据 75
3.4.1 在ms access中使用圆括号括起内部联合 84
3.4.2 sql是基于集合的 86
3.5 null数据概述 95
3.6 本章小结 97
3.7 练习 97
第4章 数据库的高级设计 98
4.1 标准化 98
4.1.1 第一范式 98
4.1.2 第二范式 100
4.1.3 第三范式 101
4.2 利用约束确保数据的有效性 103
4.2.1 not null约束 104
4.2.2 unique约束 105
4.2.3 check约束 109
4.2.4 主键和primary key约束 111
4.2.5 外键 113
4.3 利用索引加速结果查询 118
4.3.1 改进film club数据库的设计 121
4.3.2 提高数据的有效性和效率 123
4.3.3 设计更好的数据库的一些技巧 131
4.4 本章小结 132
4.5 练习 132
第5章 操作数据 133
5.1 理解sql算术 133
5.1.1 基本的数学运算 133
5.1.2 常用数学函数 135
5.1.3 舍入数值 138
5.2 字符串函数 143
5.2.1 substring( )函数 143
5.2.2 大小写转换函数 145
5.2.3 reverse( )函数 145
5.2.4 trim( )函数 146
5.2.5 length( )函数 147
5.2.6 soundex( )函数和difference( )函数 149
5.2.7 日期函数 152
5.3 不同数据类型的转换 153
5.4 再论null 154
5.4.1 null和数学 154
5.4.2 null和字符串 155
5.4.3 coalesce( )函数 156
5.5 insert into和select语句的综合使用 158
5.6 本章小结 160
5.7 练习 161
第6章 分组和聚合数据 162
6.1 分组结果 162
6.2 汇总和聚合数据 164
6.2.1 统计结果的数目 164
6.2.2 累加结果 168
6.2.3 求结果的平均值 170
6.2.4 求结果的最大值和最小值 172
6.3 综合使用having子句和group by语句 174
6.4 本章小结 176
6.5 练习 177
第7章 从不同的表中选择数据 178
7.1 再论联合 178
7.1.1 深入介绍内部联合 179
7.1.2 外部联合 188
7.2 利用union运算符组合结果集 196
7.3 本章小结 201
7.4 练习 202
第8章 子查询 203
8.1 子查询术语 203
8.2 select列表中的子查询 204
8.3 where子句中的子查询 207
8.4 子查询中的运算符 210
8.4.1 再论in运算符 210
8.4.2 使用any、some和all运算符 213
8.4.3 使用exists运算符 216
8.4.4 在having子句中使用子查询 219
8.5 相关子查询 220
8.6 用于其他语句的子查询 222
8.6.1 在insert语句中使用子查询 222
8.6.2 在update语句中使用子查询 224
8.6.3 在delete from语句中使用子查询 225..
8.7 本章小结 227
8.8 练习 228
第9章 高级查询 229
9.1 更新数据库 229
9.2 处理复杂的查询 235
9.3 高效查询的一些技巧 248
9.4 本章小结 250
9.5 练习 250
第10章 视图 252
10.1 视图概述 252
10.1.1 创建视图 253
10.1.2 视图的类型 254
10.1.3 更新视图 258
10.1.4 删除视图 262
10.2 本章小结 262
10.3 练习 263
第11章 事务 264
11.1 事务简介 264
11.1.1 示例数据 265
11.1.2 ansi事务模型 268
11.1.3 transact-sql 270
11.2 事务日志 272
11.3 锁 273
11.3.1 锁的粒度 274
11.3.2 锁的级别 275
11.3.3 设置锁的参数 276
11.4 隔离级别 278
11.4.1 set transaction语句 278
11.4.2 serializable隔离级别 278
11.4.3 repeatable read隔离级别 279
11.4.4 read committed隔离级别 279
11.4.5 read uncommitted隔离级别 279
11.4.6 版本控制 280
11.5 问题示例 280
11.5.1 更新丢失 280
11.5.2 未确认的数据 281
11.5.3 不一致的数据 281
11.5.4 幻影插入 281
11.6 重新编写示例代码 282
11.7 本章小结 284
11.8 练习 285
第12章 sql安全 286
12.1 安全的概念 286
12.1.1 用户id 287
12.1.2 组id(角色) 290
12.1.3 对象 292
12.1.4 许可权 293
12.1.5 视图和安全 294
12.1.6 授予许可权 296
12.1.7 废除许可权 299
12.2 本章小结 303
12.3 练习 303
第13章 数据库的调整 304
13.1 调整硬件 304
13.1.1 工作站 305
13.1.2 数据库文件 305
13.1.3 处理器 306
13.1.4 ghz网络或划分网络 306
13.1.5 cache 306
13.2 调整sql 309
13.2.1 sql调整意味着什么 309
13.2.2 sql调整的原因 309
13.2.3 sql调整的方法 310
13.3 一些调整技巧 314
13.4 本章小结 316
13.5 练习 316
附录a 练习题答案 317
附录b 建立并使用五个数据库系统 338
b.1 安装并使用mysql 4.1 338
b.2 安装mysql的工具 346
b.3 安装并使用ibm db2 353
b.4 使用command center工具 360
b.5 安装并使用microsoft access xp 365
b.6 安装并使用microsoft sql server 2000 369
b.7 使用sql server工具 375
b.8 安装并使用oracle 10g 381
b.9 使用oracle的sql*plus工具 383
附录c 初始数据设置 386
c.1 category表 386
c.2 memberdetails表 387
c.2.1 非oracle数据库 387
c.2.2 oracle数据库 390
c.3 location表 393
c.4 favcategory表 394
c.5 films表 397
c.6 attendence表 401
c.6.1 非oracle数据库 402
c.6.2 oracle数据库 405
· · · · · · (收起)
读后感
看到这本书寥寥无几的读者,作为曾经仔细研读本书的我 有点为他打抱不平了。 这本书不像国内的SQL或数据库教材,上来一大堆数学公式硬塞给你,而是 如同讲故事班 一句一句地从最简单的 sql 语句入手,一点一点提升 查询的复杂度,比如:单表中查询所有->单表中满足某个条件->再...
看到这本书寥寥无几的读者,作为曾经仔细研读本书的我 有点为他打抱不平了。 这本书不像国内的SQL或数据库教材,上来一大堆数学公式硬塞给你,而是 如同讲故事班 一句一句地从最简单的 sql 语句入手,一点一点提升 查询的复杂度,比如:单表中查询所有->单表中满足某个条件->再...
看到这本书寥寥无几的读者,作为曾经仔细研读本书的我 有点为他打抱不平了。 这本书不像国内的SQL或数据库教材,上来一大堆数学公式硬塞给你,而是 如同讲故事班 一句一句地从最简单的 sql 语句入手,一点一点提升 查询的复杂度,比如:单表中查询所有->单表中满足某个条件->再...
看到这本书寥寥无几的读者,作为曾经仔细研读本书的我 有点为他打抱不平了。 这本书不像国内的SQL或数据库教材,上来一大堆数学公式硬塞给你,而是 如同讲故事班 一句一句地从最简单的 sql 语句入手,一点一点提升 查询的复杂度,比如:单表中查询所有->单表中满足某个条件->再...
看到这本书寥寥无几的读者,作为曾经仔细研读本书的我 有点为他打抱不平了。 这本书不像国内的SQL或数据库教材,上来一大堆数学公式硬塞给你,而是 如同讲故事班 一句一句地从最简单的 sql 语句入手,一点一点提升 查询的复杂度,比如:单表中查询所有->单表中满足某个条件->再...
用户评价
这本书简直是我数据库学习的启蒙!我之前对SQL完全是门外汉,看到那些复杂的查询语句就头疼。但《SQL入门经典》真的做到了“入门”二字。它没有上来就丢给我一堆专业术语和晦涩的理论,而是用非常接地气的方式,一点点地讲解。最让我惊喜的是,它不是那种干巴巴的教科书,里面有很多实际的例子,比如如何管理一个小型商店的库存,如何查询客户的订单信息等等。这些例子贴近生活,让我能立刻理解SQL语句的实际应用场景。作者的讲解思路非常清晰,每一步都循序渐进,即使是像JOIN、GROUP BY这样对我来说曾经是天书一样的概念,通过书中的图示和分解说明,我也能慢慢理解其原理和用法。而且,书中提供的练习题也非常有价值,做完之后我感觉自己真的掌握了一些基本的SQL操作,能够独立写出一些简单的查询了。这本书给了我学习SQL的信心,让我觉得这个领域并不是高不可攀的。
《SQL入门经典》的附录和资源部分也极具价值。在完成主要的章节学习后,我发现书中提供了一些实用的SQL函数列表和常用命令速查表,这对我日后的工作非常有帮助。我甚至还利用书里提到的资源,找到了更多进阶的学习材料和社区,这让我感觉自己不再是一个人在孤军奋战。这本书不仅仅是一本技术书籍,更像是一个学习的起点,它激发了我继续探索数据库领域的热情。我之前对SQL的学习总是断断续续,缺乏系统性,但这本书的结构化设计,让我能够有条不紊地进行学习,并且保持了学习的动力。它真正做到了“经典”二字,值得每一个想要学习SQL的人拥有。
《SQL入门经典》在讲解SQL语句的语法和逻辑方面做得非常出色。我最喜欢的部分是它对各种查询语句的细致剖析。比如,在讲解SELECT语句时,它不仅介绍了基础的列选择,还深入讲解了WHERE子句的各种条件组合,以及ORDER BY和LIMIT的应用。更重要的是,它并没有停留在单个语句的讲解,而是将SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY等语句有机地结合起来,演示了如何构建复杂的查询来满足不同的业务需求。书中提供了大量的示例代码,并且对每一行代码都做了详细的解释,让我能理解代码的意图以及它最终会产生什么样的结果。这种“知其然,更知其所以然”的学习方式,让我能够举一反三,而不是死记硬背。
读完《SQL入门经典》,我最大的感受就是它对数据库概念的梳理非常到位。在学习SQL之前,我对数据库的理解仅仅停留在“数据存起来的地方”,但这本书让我对关系型数据库有了更深入的认识。它详细解释了表、字段、记录、主键、外键等基本概念,并且非常巧妙地将这些概念融入到了实际的操作讲解中。举个例子,它在讲解如何创建表的时候,会详细说明为什么需要设置主键,主键的作用是什么,以及如何通过外键来建立表与表之间的联系。这种由概念到实践的无缝衔接,让我对数据库的结构有了更清晰的认识,也为后续学习更复杂的SQL语句打下了坚实的基础。我之前尝试过一些其他的入门教程,但总觉得跳跃性太大,概念不清。这本书则不同,它循循善诱,让我在不知不觉中就建立起了完整的数据库思维。
这本书对于新手来说,简直是福音!我之前对编程的了解非常有限,对数据处理更是感到茫然。《SQL入门经典》完全没有技术门槛,它从最基础的安装配置讲起,一步步引导我搭建起自己的数据库环境。即使是我这样对命令行操作感到陌生的人,也能在书的指导下顺利完成。它不像很多书籍那样,上来就假设你已经具备了某种程度的专业知识。相反,它就像一位耐心的老师,会提醒你每一步可能遇到的问题,并给出解决方案。我尤其欣赏它在讲解数据类型和约束时,会结合实际应用来解释其重要性,而不是枯燥地罗列。这让我明白,为什么在设计数据库时,选择正确的数据类型和设置合理的约束是如此关键。
最后作者说具有GUI的访问数据库工具很多,不必理解SQL。还是很实在的。
书写的比较简单
最后作者说具有GUI的访问数据库工具很多,不必理解SQL。还是很实在的。
最后作者说具有GUI的访问数据库工具很多,不必理解SQL。还是很实在的。
我的第一本真正意义上的技术入门书。感谢它,让我仍然有钻研下去的兴趣。相比之下国内的教材的语言太机械化太无聊了,不结合实例讲真不知道学了怎么去用。