| 书[0名0]: | SQL应用及误区分析|7991374 |
| 图书定价: | 59元 |
| 图书作者: | 张振磊 |
| 出版社: | 机械工业出版社 |
| 出版日期: | 2018/5/1 0:00:00 |
| ISBN号: | 9787111597308 |
| 开本: | 16开 |
| 页数: | 0 |
| 版次: | 1-1 |
| 内容简介 |
| 共分为十四章,由易到难,逐步讲解SQL语句的应用。其中,第<一>章介绍了SQL概述,第二章简单介绍了SCOTT模式,第三章到第六章,分别介绍了SQL常用的增删改查知识。第七章到第十二章分别介绍了常用的数据库对象,包含了视图、索引、约束、触发器、存储过程和函数。第十三章介绍了非常重要的事务知识。第十四章对SQL SERVER数据库和ORACLE数据库中存在的一些差异进行了举例比较。本书既适合SQL的初学者,又可帮助中高级读者对SQL有一个崭新的理解。 |
| 编辑推荐 |
| 随着社会的进步及信息技术的革新,“大数据时代”企业内部的业务数据量逐年呈指数增长。SQL一方面是信息管理系统重要的利器,另一方面系统性能问题也影响着众多的企业。因此,要求程序员不仅会用SQL,更要用好SQL。 基于数百次一线项目开发与实施的经验沉淀,案例丰富 对实际项目中常见的使用误区进行了深入的分析解读 兼容SQL Server数据库和Oracle数据库 比较了SQL Server数据库与Oracle数据库的差异 深入剖析了索引及事务 |
| 目录 |
推荐序 前言 [第]1章 SQL概述1 1.1 DML1 1.2 DDL1 1.3 TCL2 1.4 DCL2 1.5 总结2 第2章 SCOTT模式4 2.1 DEPT5 2.2 EMP7 2.3 SALGRADE10 2.4 BONUS11 2.5 总结12 第3章 新增语句13 3.1 单行新增13 3.1.1 values单行新增14 3.1.2 select单行新增16 3.2 建表新增18 3.3 查询结果新增20 3.4 常见误区分析21 3.4.1 历史数据转移引起的问题21 3.4.2 values单行新增不要省略列名24 3.5 总结25 第4章 删除语句26 4.1 delete语法26 4.1.1 直接删除表中记录26 4.1.2 基于其他表删除表中记录27 4.2 truncate语法28 4.3 误删数据恢复29 4.4 误删对象恢复30 4.5 常见误区分析31 4.5.1 慎用delete31 4.5.2 画蛇添足32 4.6 总结32 第5章 更新语句33 5.1 update语法33 5.2 单表更新33 5.3 表关联更新35 5.4 常见误区分析36 5.4.1 注意表关联更新36 5.4.2 注意数据类型38 5.5 总结39 第6章 查询语句40 6.1 查询语句的语法40 6.2 where子句中常用的运算符41 6.2.1 算术运算符42 6.2.2 逻辑运算符43 6.2.3 比较运算符44 6.2.4 优先级50 6.3 分组51 6.3.1 分组函数51 6.3.2 创建组52 6.4 排序52 6.5 空值56 6.6 多表连接56 6.6.1 交叉连接57 6.6.2 非等值连接58 6.6.3 等值连接之内连接59 6.6.4 等值连接之外连接60 6.6.5 等值连接之自连接64 6.6.6 等值连接之自然连接66 6.7 集合运算67 6.7.1 并集67 6.7.2 交集68 6.7.3 差集69 6.8 子查询70 6.8.1 多行单列子查询70 6.8.2 多行多列子查询72 6.8.3 单行单列子查询72 6.8.4 单行多列子查询73 6.8.5 内联视图74 6.8.6 关联子查询74 6.9 别名76 6.9.1 表别名77 6.9.2 列别名77 6.10 常见误区分析79 6.10.1 count争议79 6.10.2 null的比较80 6.10.3 单行子查询返回多行82 6.10.4 分组函数的嵌套83 6.10.5 not in84 6.10.6 with(nolock)86 6.10.7 with(readpast)88 6.10.8 max用于字符型属性89 6.11 总结91 第7章 视图92 7.1 视图语法92 7.1.1 创建语法92 7.1.2 修改语法93 7.1.3 删除语法93 7.2 视图举例94 7.3 视图的作用95 7.3.1 定制用户数据95 7.3.2 复杂查询简单化96 7.4 简单视图97 7.5 复杂视图97 7.6 键值保存表97 7.7 只读视图98 7.8 with check option98 7.9 物化视图101 7.9.1 创建时生成数据选项101 7.9.2 刷新方式102 7.9.3 数据刷新的时间102 7.9.4 物化视图索引103 7.9.5 物化视图举例103 7.10 索引视图106 7.11 常见误区分析107 7.11.1 单张表组成的视图可以更新107 7.11.2 多张表组成的视图不能更新109 7.12 总结111 第8章 索引112 8.1 索引语法113 8.1.1 创建语法113 8.1.2 删除语法113 8.2 B-Tree索引113 8.3 聚集索引122 8.4 索引122 8.5 非索引124 8.6 组合索引124 8.7 反向键索引125 8.8 函数索引125 8.9 索引组织表127 8.10 常见误区128 8.10.1 null全表扫描128 8.10.2 比较符引起全表扫描129 8.10.3 引起全表扫描131 8.10.4 函数造成全表扫描131 8.10.5 慎用全表扫描132 8.10.6 组合索引如何进行索引133 8.11 总结135 第9章 约束136 9.1 约束语法136 9.1.1 创建语法136 9.1.2 删除语法137 9.2 主键约束137 9.3 外键约束138 9.4 性约束141 9.5 非空约束142 9.6 check约束143 9.7 默认值约束144 9.8 常见误区分析146 9.8.1 是否有必要使用外键146 9.8.2 程序校验代替检查约束146 9.9 总结148 第10章 触发器149 10.1 触发器语法149 10.1.1 创建语法149 10.1.2 修改语法150 10.1.3 删除语法151 10.2 变异表151 10.3 触发器内置对象151 10.4 行级触发器151 10.5 语句级触发器153 10.6 触发时间156 10.7 instead of触发器160 10.8 常见误区分析162 10.8.1 读变异表162 10.8.2 触发器死循环162 10.9 总结164 第11章 存储过程165 11.1 存储过程语法165 11.1.1 创建语法166 11.1.2 修改语法166 11.1.3 删除语法167 11.2 IN模式参数167 11.3 OUT模式参数169 11.4 删除存储过程171 11.5 常见误区分析171 11.5.1 存储过程事务控制171 11.5.2 参数名称引发的事故179 11.6 总结181 第12章 函数183 12.1 系统函数183 12.1.1 字符函数183 12.1.2 数值函数186 12.1.3 日期函数186 12.1.4 null相关的函数189 12.1.5 聚合函数190 12.1.6 其他常用函数190 12.2 自定义函数191 12.2.1 自定义函数语[0法0]191 12.2.2 SQL Server标量值函数193 12.2.3 SQL Server内联表值函数193 12.2.4 SQL Server多语句表值函数194 12.2.5 Oracle标量值函数194 12.2.6 Oracle表值函数195 12.3 常见误区分析196 12.3.1 SQL函数必须有返回值196 12.3.2 SQL函数中不能进行DML操作198 12.4 总结200 第13章 事务201 13.1 银行转账案例201 13.2 事务的4个属性204 13.2.1 原子性205 13.2.2 一致性205 13.2.3 隔离性205 13.2.4 持久性206 13.3 并发引起的问题207 13.3.1 脏读207 13.3.2 不可重复读207 13.3.3 幻读207 13.4 事务隔离级别208 13.4.1 读未提交208 13.4.2 读提交208 13.4.3 重复读208 13.4.4 序列化209 13.5 事务保存点209 13.6 自治事务210 13.6.1 自治事务用于存储过程210 13.6.2 自治事务用于触发器212 13.7 常见误区分析214 13.7.1 自治事务死锁214 13.7.2 自治事务获取主事务的信息214 13.7.3 主事务获取自治事务的信息216 13.8 总结217 第14章 SQL Server与Oracle的差异219 14.1 前N行219 14.2 字符串拼接220 14.3 获取系统时间221 14.4 空字符串221 14.5 表别[0名0]223 14.6 null值排序224 14.7 update引起 select阻塞225 14.8 SQL、T-SQL和PL/SQL227 14.9 视图定义中出现排序227 14.10 对视图非键值保存表的更新229 14.11 分组函数嵌套231 14.12 内联视图232 14.13 关联表删除233 14.14 关联表更新234 14.15 自增列235 14.16 总结238 |
| 前言 |
| 在信息管理系统中,SQL语句是非常重要的组成部分。虽然用户不会直接使用SQL语句操作信息管理系统,但是,信息管理系统必须使用SQL语句去响应用户的请求。作为信息管理系统的创造者和维护者,每一位相关IT人员都应该能熟练使用SQL。随着社会的进步以及信息技术的革新,新的信息管理系统业务逻辑变得越来越复杂,业务数据量变得越来越庞大,SQL语句应该引起信息技术从业者的足够重视。好的SQL语句能够帮助信息管理系统更稳健地运行,相反,差的SQL语句则将极大地降低信息管理系统运行的效率,从而影响用户的体验。 编者自2008年从江南大学计算机科学与技术专业毕业后,一直从事医院信息管理系统(HIS)的研发与技术支持工作。在近10年的项目实战中,遇到了无数次由于不合理地使用SQL语句而造成的各种问题。有些性能问题甚至直到系统运行数年,数据量达到一定程度,已经影响用户日常使用了才被发现。项目组中很多技术支持人员及工程人员对SQL语句没有足够的重视,以至于很多不合理的SQL语句年复一年地出现在软件产品中,降低了产品的质量。一个好的程序员不是熟练使用开发语言就可以了,还要对SQL语句乃至数据库知识有深入的了解。编者凭借多年的项目实战经验,并结合扎实的理论知识编写了此书,希望能够帮助更多的读者学会SQL语句,并能正确、高效地使用它,从而保障信息管理系统高质量、高效率地运行。 不同于一些纯理论书,本书在编写过程中一直秉承理论结合实践的原则来介绍SQL语句的应用。并且,用切身体会来分析平常遇到的一些SQL语句的使用误区,以便读者更好地理解SQL语句,也希望能够帮助读者在以后的工作中避免陷入误区。本书所讲的知识完全来自于编者近年来数百次的项目实战。由于本书是一本介绍SQL语句的书籍,一些举例尽量使用标准SQL。标准SQL以外的SQL相关知识,分别以SQL Server数据库的T-SQL和Oracle数据库的PL/SQL来讲解。之所以选择SQL Server数据库和Oracle数据库来讲解,是因为在信息管理系统领域,SQL Server数据库和Oracle数据库具有非常高的市场占有率,而且很多读者平时接触最多的也是SQL Server数据库和Oracle数据库。 本书讲解过程中用到的是Oracle数据库管理系统中SCOTT模式下的关系模型。该关系模型主要包含4张表,分别是EMP(员工表)、DEPT(部门表)、SALGRADE(月薪等级表)以及BONUS(奖金表)。SCOTT模型是Oracle数据库安装过程中默认安装的一个非常精简并且容易理解的关系模型,非常适合SQL语句的学习。本书分别给出了这4张表在SQL Server数据库与Oracle数据库中的建表语句,以及基础数据导入的SQL脚本,后续SQL语句的举例也基本围绕这4张表展开。 本书共分为14章,由易到难,逐步讲解SQL语句的应用。其中,第1章是SQL概述;第2章简单介绍SCOTT模式;第3~6章分别介绍SQL常用的增删改查功能;第7~12章分别介绍常用的数据库对象,包含视图、索引、约束、触发器、存储过程和函数;第13章介绍非常重要的事务知识;第14章通过示例比较SQL Server数据库和Oracle数据库的差异。 本书在编写过程中得到了创业软件股份有限公司多位领导和同事的支持和帮助,感谢高级副总裁沈建苗、人力资源总经理于瑶以及研发中心各位同事。 由于编者的精力和水平有限,书中错误和疏漏之处在所难免,敬请广大读者批评指正。也可将问题以邮件形式发送到编者邮箱:zhangzl@bsoft.com.cn。 |
我一直对计算机科学的底层原理和技术架构非常感兴趣,尤其是涉及到数据存储和处理的部分。最近我的工作重心逐渐转向了数据分析和挖掘,这让我更加意识到掌握扎实的SQL基础是多么重要。市面上关于SQL的书籍很多,但很多要么过于基础,要么就过于理论化,很难找到一本既能讲透SQL的精髓,又能结合实际应用场景的书。《SQL应用及误区分析》这个书名引起了我的注意,我猜想它可能不仅仅是教你如何写SQL,更会深入剖析SQL在实际应用中容易遇到的问题和误区,帮助读者规避一些潜在的错误,提升SQL的使用效率和准确性。我特别希望能在这本书里找到关于SQL性能调优的深入讲解,比如如何分析查询执行计划,如何选择合适的索引策略,以及如何优化复杂查询的写法。同时,我也对书中可能涉及到的数据建模、数据库设计等方面的知识很期待,毕竟良好的数据结构是高效SQL应用的基础。我希望这本书能成为我学习SQL过程中一个不可或缺的指导者,让我能够更自信地处理各种数据相关的任务。
评分作为一个技术爱好者,我对互联网的演进和各种技术的底层原理总是充满好奇。最近在学习一些数据相关的技术,尤其是SQL,发现它在数据处理和管理方面的重要性不言而喻。然而,我总觉得市面上很多SQL教程都流于表面,讲的都是一些基础的语法,很少能触及到SQL在实际复杂场景下的应用以及一些深层次的优化技巧。《SQL应用及误区分析》这个名字听起来非常吸引我,我期待它能提供一些不同于传统教程的视角。我希望能在这本书中深入了解SQL在大型项目中的实际应用案例,例如如何设计高效的数据库 schema,如何编写能够应对高并发场景的SQL语句,以及如何利用SQL进行复杂的数据分析和报表生成。更重要的是,我非常关注“误区分析”这个部分,希望能够通过这本书认识到SQL使用过程中容易踩到的“坑”,比如常见的性能瓶颈、数据安全隐患、以及一些容易被忽视的边界条件。我希望能学习到如何避免这些误区,从而写出更可靠、更高效的SQL代码,并且对数据库的整体性能有更深刻的理解。
评分话说回来,我一直觉得自己对SQL的理解有点“雾里看花”的感觉。学了SQL一段时间,也写了不少SQL语句,但总觉得在某些方面不够深入,总感觉有些“悬而未决”的知识点。尤其是涉及到一些高级特性,比如事务的隔离级别、锁的机制,还有一些复杂查询的优化技巧,我总觉得理解得不够透彻,在实际工作中也常常因为这些问题而吃亏。这本书的名字,《SQL应用及误区分析》,听起来就很有针对性。我希望这本书能帮我拨开迷雾,清晰地认识到SQL使用中容易出现的各种“坑”。比如,很多时候我写的SQL看似能跑,但性能却不尽如人意,我希望能在这本书里找到一些关于SQL性能优化的“秘籍”,知道如何判断SQL语句的效率,如何通过调整查询或数据库结构来提升性能。另外,我也很好奇书中会分析哪些“误区”,比如数据一致性问题、并发访问问题等等,这些都是我在实际开发中经常会遇到的难题。我希望这本书能给我提供一些实实在在的解决方案,让我能够写出更健壮、更高效的SQL。
评分最近迷上了数据库,尤其是SQL,但总觉得有些地方理解得不够透彻,常常在实际操作中遇到一些奇怪的问题,甚至怀疑是不是自己哪里理解错了。在网上搜寻相关书籍时,无意间看到了这本书的推荐,虽然我对“误区分析”这个词有点好奇,但更吸引我的是它“SQL应用”这个部分。我希望这本书能帮我深入理解SQL的各种应用场景,不只是简单的增删改查,而是能够运用SQL解决更复杂的数据分析和管理问题。比如,我一直对窗口函数在实际项目中的应用感到困惑,不知道在什么样的情况下使用最合适,以及如何写出高效的窗口函数语句。另外,对于SQL的性能优化,我也想有更深入的了解,比如如何通过索引、查询重写等方式来提升SQL的执行效率,尤其是在面对海量数据时。这本书能否提供一些实用的技巧和方法,让我能够写出既正确又高效的SQL语句,避免一些常见的性能陷阱,这对我来说非常重要。我期待这本书能够提供一些“干货”,而不是泛泛而谈的理论,能让我学到一些真正能够解决实际问题的知识。
评分最近在折腾一些关于大数据和数据治理的东西,自然而然就接触到了SQL。不过,老实说,SQL这东西虽然看起来简单,但要用好、用精,感觉还是有挺多门道。很多时候,我写的SQL能查出数据,但总觉得效率不高,或者在处理一些特殊情况时会出现意想不到的问题。我尤其希望找到一本能够深入讲解SQL应用场景,并且能够点明常见误区的书籍。《SQL应用及误区分析》这个名字正是我所寻找的。我希望它能详细介绍SQL在各种实际应用中的最佳实践,例如如何设计更优化的查询语句,如何利用SQL实现复杂的数据分析和挖掘,以及在分布式数据库环境中SQL的特殊用法。同时,“误区分析”这个主题让我非常有兴趣,我希望能了解在SQL开发过程中,有哪些是大家普遍会犯的错误,以及如何去规避这些错误,比如在数据一致性、事务处理、索引使用等方面可能存在的陷阱。我期待这本书能成为我提升SQL技能的“点睛之笔”,让我能够更自信、更高效地驾驭SQL。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有