内容简介
《Effective SQL:编写高质量SQL语句的61个有效方法》结合SQL实践与实际案例,整合了实用的解决方案与洞见,可帮助大家解决复杂的问题,设计出能简化数据管理的数据库。作者拥有担任世界数据库顾问与讲师的丰富经验,在《Effective SQL:编写高质量SQL语句的61个有效方法》中归纳了编写高质量SQL语句的61个具体方法,并提供不同SQL版本的差异详情,无论你使用何种SQL版本都能从中获益。书中提供了大量清晰、务实的解释,以及专家的建议与大量实用的代码。《Effective SQL:编写高质量SQL语句的61个有效方法》除了介绍语法之外,还会讨论数据库设计的佳实践、层次结构管理与元数据等议题。若你对SQL已经有基本的认识,《Effective SQL:编写高质量SQL语句的61个有效方法》将能帮助你成为解决SQL问题的专家。书中内容涵盖各种SQL版本:IBMDB2、MicrosoftAccess、MicrosoftSQLServer、MySQL、OracleDatabase与PostgreSQL。
目录
目 录Contents
《Effective SQL:编写高质量SQL语句的61个有效方法》赞誉
译者序
序
前言
致谢
关于作者
关于技术编辑
第1章 数据模型设计1
第1条:确保所有表都有主键1
第2条:避免存储冗余数据4
第3条:消除重复数据组7
第4条:每列只存储一个属性9
第5条:理解为什么存储计算列通常有害无益13
第6条:定义外键以确保引用完整性16
第7条:确保表间关系的合理性19
第8条:当第三范式不够时,采用更多范式22
第9条:非规范化数据仓库27
第2章 可编程性与索引设计30
第10条:创建索引时空值的影响30
第11条:创建索引时谨慎考虑以最小化索引和数据扫描35
第12条:索引不只是过滤37
第13条:不要过度使用触发器41
第14条:使用过滤索引包含或排除数据子集45
第15条:使用声明式约束替代编码校验47
第16条:了解数据库使用的SQL方言并编写相应的代码48
第17条:了解何时在索引中使用计算结果51
第3章 当你不能改变设计时55
第18条:使用视图来简化不能更改的内容55
第19条:使用ETL将非关系数据转换为有用的信息60
第20条:创建汇总表并维护64
第21条:使用UNION语句将非规范化数据列转行66
第4章 过滤与查找数据72
第22条:了解关系代数及其如何在SQL中实现72
第23条:查找不匹配或缺失的记录78
第24条:了解何时使用CASE解决问题79
第25条:了解解决多条件查询的技术83
第26条:如需完美匹配,先对数据进行除操作88
第27条:如何按时间范围正确地过滤日期和时间的列91
第28条:书写可参数化搜索的查询以确保引擎使用索引94
第29条:正确地定义“左”连接的“右”侧97
第5章 聚合100
第30条:理解GROUPBY的工作原理100
第31条:简化GROUPBY子句106
第32条:利用GROUPBY或HAVING解决复杂的问题109
第33条:避免使用GROUPBY来查找最大值或最小值113
第34条:使用OUTERJOIN时避免获取错误的COUNT()117
第35条:测试HAVINGCOUNT(x)