| 
 新書推薦:
 
  《 
			植梦花园:从游走世界到回归故乡的园艺旅程
			》
 售價:HK$ 
			449
 
  《 
			鲍鹏山新批水浒传(全三册)
			》
 售價:HK$ 
			1520
 
  《 
			中国石窟音乐图像大典
			》
 售價:HK$ 
			1367
 
  《 
			希波战争
			》
 售價:HK$ 
			449
 
  《 
			泥土之美——探寻泥咕咕的手工艺与生活文化
			》
 售價:HK$ 
			500
 
  《 
			商业盈利模式一本通 可复制的生意经 让每一分钱聪明盈利
			》
 售價:HK$ 
			265
 
  《 
			新加坡环境发展史(1965-2015):迈向环境可持续发展之旅
			》
 售價:HK$ 
			500
 
  《 
			山水并野形图研究
			》
 售價:HK$ 
			398
 
 
 | 
         
          | 編輯推薦: |   
          | ★以讲故事、打比方的方式呈现SQL原理,通俗易懂。 ★涵盖MySQL所有的必会知识点,全面、细致、丰富。
 ★全书提供上百个示例,代码讲解清楚,提供源数据表。
 ★专业手绘人物形象及插图,图文并茂,样式美观。
 |  
         
          | 內容簡介: |   
          | 在当今社会,高效管理数据是一种思维方式,也是一种能力。越来越多的公司和岗位看重这一点。本书的核心理念是基于MySQL将学习数据管理的过程自然融入日常生活,使学习变得轻松,而不再是一项艰巨的任务。本书采用引入故事场景的方式来呈现SQL语句的适用情景,并以此来解释其使用原理,帮助读者更好地理解SQL语言的本质。本书不仅是一本技术入门指南,也是一次走进SQL世界的探索之旅,旨在为初学者提供全面、易于理解、实用的学习体验。 |  
         
          | 關於作者: |   
          | 彭宇奇,资深数据分析师,新派技术书作者,擅长用打比方、讲故事的形式来构建技术框架,并解释内在原理。创作主旨是——尽量让学习变得有趣和活泼,学习一项技术的最好方式,就是忘记我们正在学习它。技术之外,热爱运动和音乐,离不开游泳、hiphop和摩托车。其实很多图书创作灵感都源于看似与之毫不相干的事物和经历。 施雯,90后插画师,喜欢通过图像与文字进行表达,享受沉浸其中的很安心、很有趣的感觉,希望以这种方式将更好的内容传递给广大读者。
 |  
         
          | 目錄: |   
          | 第1章 七嘴八舌聊SQL / 1 1.1 什么是SQL / 2
 1.2 什么是数据库 / 6
 第2章 简单检索 / 16
 2.1 基础查询:姻缘介绍所的联络清单 / 17
 2.1.1 检索整张表(通配符“*”) / 17
 2.1.2 检索整张表的限制 / 18
 2.1.3 检索特定列 / 19
 2.1.4 理解表中的“列”与“行” / 20
 2.1.5 关于SQL语句的书写规范 / 21
 2.2 对查询结果排序:鱼儿的大小和颜色 / 24
 2.2.1 根据单列内容排序 / 25
 2.2.2 升序和降序 / 26
 2.2.3 排序的必要性和原理 / 27
 2.2.4 根据多列内容排序 / 27
 2.2.5 使用列别名排序 / 31
 2.2.6 使用列编号排序 / 32
 2.2.7 ORDER BY的其他使用事项 / 33
 2.3 LIMIT分页语句:跳跃的青蛙 / 35
 2.3.1 限制结果的输出行数 / 35
 2.3.2 LIMIT的用法分析 / 36
 2.3.3 浅谈SQL语法 / 37
 2.3.4 搭配LIMIT进行数据更新 / 38
 2.4 去掉重复的输出行:唯一的组合值 / 39
 2.4.1 使用DISTINCT / 39
 2.4.2 对整张表去重没有意义:初识主键 / 41
 2.4.3 另一种去重的办法:使用GROUP BY / 42
 2.4.4 MySQL中列别名的特殊用法 / 43
 2.4.5 如何在SQL语句中添加注释 / 44
 第3章 数据过滤与模糊查询 / 46
 3.1 基础的数据过滤:酷似“苏菲·玛索”的女孩 / 47
 3.1.1 初识WHERE从句 / 47
 3.1.2 比较运算符 / 49
 3.1.3 理解空值 / 52
 3.1.4 利用空值进行过滤 / 53
 3.1.5 使用BINARY区分过滤条件中的大小写 / 53
 3.2 使用逻辑操作符:挑选优质的巴尔干甜豆 / 55
 3.2.1 操作符AND和OR / 55
 3.2.2 AND和OR的执行原理 / 58
 3.2.3 组合查询:UNION ALL与UNION / 59
 3.2.4 再次理解AND和OR / 60
 3.2.5 使用小括号改变连接对象 / 61
 3.2.6 操作符IN和NOT / 65
 3.2.7 课后阅读:《胶囊时报》专栏采访 / 66
 3.3 模糊查询:谓词LIKE和正则表达式REGEXP / 67
 3.3.1 模糊查询的适用场景 / 67
 3.3.2 得心应手的百分号(%) / 69
 3.3.3 专一的下画线(_) / 71
 3.3.4 让特殊符号回归符号本身(\\\\) / 72
 3.3.5 正则表达式的一般使用场景 / 72
 3.3.6 正则表达式的更多使用场景 / 73
 第4章 显示栏、CASE表达式与常用函数 / 78
 4.1 创建显示栏:卡路奇欧的“贪婪美德” / 79
 4.1.1 使用算术运算符创建显示栏 / 79
 4.1.2 将MySQL当作计算器 / 82
 4.1.3 算术运算符与空值:COALESCE函数 / 83
 4.1.4 创建拼接栏:“猫牌胶水”CONCAT函数 / 84
 4.2 神奇的变形咒语:CASE表达式 / 86
 4.2.1 初识CASE表达式 / 87
 4.2.2 CASE表达式的一般使用原理 / 89
 4.2.3 不同的输出形式和对应效果 / 91
 4.2.4 CASE表达式的规律总结 / 95
 4.3 千奇百怪的函数:MySQL的生物多样性 / 99
 4.3.1 函数多样性的原因 / 99
 4.3.2 处理时间的函数 / 100
 4.3.3 处理字符串的函数 / 104
 4.3.4 处理数值的函数 / 110
 第5章 聚集函数、窗口函数与数据分组 / 115
 5.1 使用聚集函数:返回一组数据的各项指标 / 117
 5.1.1 什么是聚集函数 / 117
 5.1.2 统计个数和统计行数:COUNT函数 / 117
 5.1.3 COUNT(*)与COUNT(列名)的原理解释 / 118
 5.1.4 求和:SUM函数 / 121
 5.1.5 求均值:AVG函数 / 122
 5.1.6 求最大值与最小值:MAX函数和MIN函数 / 123
 5.2 GROUP BY数据分组:对数据进行打包处理 / 123
 5.2.1 数据分组的重要性 / 124
 5.2.2 分组计算的产物与分组的原理 / 126
 5.2.3 分组前的数据过滤:使用WHERE过滤行 / 129
 5.2.4 指定多个分组依据 / 130
 5.2.5 配合使用WITH ROLLUP:贴心的小计与总计 / 133
 5.2.6 对空值分组:验证COUNT(列名)与COUNT(*) / 135
 5.3 使用HAVING从句进行过滤:“韦尔集团”的大麻烦 / 137
 5.3.1 分组后的数据过滤:使用HAVING过滤组 / 137
 5.3.2 WHERE的不完美替代品 / 140
 5.3.3 “三巨头”的会面:同时使用WHERE、GROUP BY和HAVING / 141
 5.4 窗口函数:等级、累计与拆分 / 143
 5.4.1 初识窗口函数语法 / 144
 5.4.2 不一样的ORDER BY / 146
 5.4.3 非必要的PARTITION BY / 147
 5.4.4 RANK、DENSE_RANK和ROW_NUMBER / 148
 5.4.5 累计计算:将聚集函数用作窗口函数 / 150
 5.4.6 平移变动的窗口:累计计算的拆分 / 154
 第6章 复合查询 / 158
 6.1 利用子查询进行过滤:忧郁的萨茉莉公主 / 160
 6.1.1 利用子查询进行过滤 / 160
 6.1.2 利用子查询过滤的关键思路及关联的基础 / 162
 6.1.3 普遍存在的“中间人” / 164
 6.1.4 正序子查询的书写思路 / 166
 6.1.5 完全限定列名 / 168
 6.2 初识联结的建立:拆分表的逆向操作 / 170
 6.2.1 理解主键和外键 / 170
 6.2.2 关联的设定机制 / 173
 6.2.3 使用WHERE建立联结 / 174
 6.2.4 什么是笛卡儿积 / 175
 6.2.5 等值行与不等值行 / 176
 6.2.6 内部联结的语法 / 178
 6.2.7 子查询和联结的区别 / 180
 6.3 自联结与自然联结:巧妙的复制 / 184
 6.3.1 建立自联结:巧妙的复制 / 184
 6.3.2 建立自然联结:不走寻常路的简洁 / 192
 6.4 外部联结:向左走,还是向右走 / 193
 6.4.1 不同于以往的关联大表 / 193
 6.4.2 不同联结方式的比较 / 198
 6.5 关联子查询的建立:另一只看不见的手 / 201
 6.5.1 标量子查询 / 202
 6.5.2 利用关联子查询进行过滤 / 203
 6.5.3 关联子查询与一般子查询的共性与区别 / 205
 6.5.4 在检索中使用子查询 / 206
 6.6 使用视图:飘逸灵动的胶片机 / 208
 6.6.1 利用子查询进行过滤的限制 / 208
 6.6.2 从子查询到视图:在FROM语句中建立子查询 / 210
 6.6.3 创建视图 / 211
 6.6.4 更新视图 / 213
 6.6.5 灵活创建的数据集 / 215
 6.6.6 删除视图 / 216
 第7章 表的创建与数据更新 / 219
 7.1 创建表:非凡药剂师协会 / 220
 7.1.1 考查数据源 / 220
 7.1.2 进行合理的数据拆分 / 221
 7.1.3 表与列的命名规则 / 223
 7.1.4 常用的数据类型 / 224
 7.1.5 空值的指定 / 226
 7.1.6 定义主键 / 227
 7.1.7 选择引擎 / 229
 7.2 调整表及外键约束:先有鸡,还是先有蛋 / 230
 7.2.1 重命名表和删除表 / 230
 7.2.2 增加列、重命名列与删除列 / 231
 7.2.3 外键约束和定义外键 / 231
 7.2.4 数据的完整性:合理的信息记录 / 232
 7.2.5 外键约束的后果 / 235
 7.2.6 关联表的层次关系:上游表和下游表 / 237
 7.3 数据的插入:INSERT语句的使用 / 239
 7.3.1 插入行的两种方式 / 239
 7.3.2 提供列清单的重要性 / 240
 7.3.3 空值、默认值和AUTO_INCREMENT的插入方式 / 240
 7.3.4 同时插入多行数据 / 242
 7.3.5 在INSERT语句中使用子查询:数据导入 / 243
 7.4 数据的删除:DELETE语句的使用 / 245
 7.4.1 使用DELETE删除特定行 / 245
 7.4.2 删除表中的所有行:MySQL中的安全模式 / 246
 7.4.3 外键约束的开启和关闭 / 247
 7.4.4 在DELETE语句中使用子查询 / 248
 7.5 数据的替换:UPDATE语句的使用 / 249
 7.5.1 修改数据:替换已有数据 / 250
 7.5.2 增加数据:替换空值 / 251
 7.5.3 删除数据:用空值替换已有数据 / 252
 7.5.4 同时更新多列数据 / 253
 7.5.5 数据删除方式汇总 / 254
 7.6 使用事务处理:数据更新前服下的“后悔药” / 256
 7.6.1 初识事务处理:START TRANSACTION / 256
 7.6.2 事务处理的本质 / 258
 7.6.3 关闭事务处理的休止符:ROLLBACK和COMMIT / 258
 7.6.4 使用保留点:恰到好处的回滚方式 / 259
 7.6.5 保留点的使用规范和释放 / 263
 第8章 触发器与存储过程 / 265
 8.1 触发器(上):“扣动扳机”的正确姿势 / 266
 8.1.1 初识触发器的安装和使用 / 266
 8.1.2 理解触发器的触发机制和执行时机 / 269
 8.1.3 触发器的应用场景、类型与数量限制 / 269
 8.1.4 初识触发器中的“NEW”:目前没有,但即将有 / 270
 8.2 触发器(下):忙碌的火车站送车员 / 274
 8.2.1 初识触发器中的“OLD”:目前有,但即将没有 / 274
 8.2.2 触发器的功能限制 / 277
 8.2.3 再谈“NEW”和“OLD” / 278
 8.2.4 触发器的执行失败 / 281
 8.3 存储过程(上):麦克里尼的心病 / 284
 8.3.1 初识存储过程 / 284
 8.3.2 初识参数:关键词IN / 288
 8.3.3 再探参数:关键词OUT / 291
 8.4 存储过程(下):走出低谷 / 293
 8.4.1 不一样的调用形式 / 294
 8.4.2 更加智能的存储过程 / 297
 8.4.3 什么是局部变量 / 301
 第9章 不断翻新的数据集 / 304
 9.1 不等值行的妙用 / 305
 9.2 关联分析 / 312
 9.3 在CASE表达式中使用聚集函数 / 320
 9.4 在聚集函数中使用CASE表达式 / 323
 9.5 行列转换:创建数据透视表 / 328
 9.6 寻找中位数 / 344
 第10章 思考与练习 / 354
 |  
         
          | 內容試閱: |   
          | 你有因数据管理方法蹩脚而吃力不讨好的经历吗?你难道不想试着学几条简单的SQL“咒语”,成为掌控数据的“魔法师”吗?你是否还在为没有找到一种有效的SQL学习方法而发愁呢? 别急,这些问题都将被解决!
 《快速念咒:MySQL入门指南与进阶实战》是一本循序渐进、注重实操,并且活泼有趣的技术书,相信你将从中获益匪浅!在系统编写本书之前,我曾试着在网上以课程的形式讲解MySQL,并将其命名为“快速念咒”。因为我希望大家可以充分理解SQL语言的本质,让SQL语句像一条条咒语一样,在实际使用中快速显现神奇的效果。在这个过程中,我也收获了一些网友的反馈。
 一位上了年纪的仓库管理员在我们的留言板中这样写道:“我以前总习惯用本子来记录货物信息,可上面涂得乱七八糟的,就像一团乱麻。主管曾不止一次地暗示,我可能会被裁掉。但自从学会了用SQL来管理货物信息,我的工作效率提升了好几倍,同事们都对我变戏法般的操作刮目相看!这让我在主管面前尽显从容!”
 一位网名叫“对不起,青春!”的应届毕业生这样说:“我很庆幸自己利用在校时间掌握了SQL,虽然它和我的本专业格格不入,可我还是抱着试一试的心态开始了学习。你知道的,这可以给简历上增添一些亮点。事实证明,掌握SQL确实对求职有很大帮助。因为我学会的不仅仅是操作,还是一种与数据打交道的思路。这一点在当今社会非常关键!”
 还有一位不愿透露姓名的职场白领,坚持要我们这样传播他的学习经验:“其实我一直都对SQL挺好奇的,所以想要了解这种神奇的沟通方式。可每当我向公司的IT人员询问这些操作究竟是怎么一回事时,他们都会露出一副‘反正说了你也听不懂’的表情。后来学习了‘快速念咒’,我才发现,原来SQL根本就没那么深奥,它真的很简单!”
 没错,即便你目前对SQL语言没有任何了解也不用担心,因为SQL语句很容易掌握,它非常贴近生活。相信你一定会有以下某种(某几种)类似的生活经历——
 1. 当你手忙脚乱地在储藏室里寻找某样东西时,心里想着,要是能念一个“飞来咒”让苦苦寻找的东西一下子蹦到自己眼前就好了。(SELECT语句)
 2. 临近午夜,而你还躺在床上辗转反侧,心里想着,要是能把头脑中的烦恼全部删掉就好了,这会令你的思想重新获得解放。(DELETE语句)
 3. 当你苦苦追求心爱的姑娘,可她却对你不理不睬时,你会想着,要是能修改她对你的印象就好了。(UPDATE语句)
 4. 当你想买一辆摩托车渴望做追风少年,却得不到父母的支持时,你会想着,要是能给他们植入“骑摩托车有助于身心健康”的观念就好了。(INSERT语句)
 5. 当你觉得生活无聊乏味,想要来点儿新花样时,你可能会尝试着去搞点儿创作,这也许会实现你的人生价值。(CREATE语句)
 要我说,学习SQL语言只要有这些类似的生活经验就足够了,它们对应的正是其主要功能——查找数据、删除数据、修改数据、插入数据、创建内容,甚至可以实现部分自动操作。而我们的这本书,也是围绕这些内容展开的。
 |    |