--- doc_type: weread-highlights-reviews bookId: "34336685" author: 仲平 cover: https://wfqqreader-1252317822.image.myqcloud.com/cover/685/34336685/t7_34336685.jpg reviewCount: 0 noteCount: 26 readingStatus: 读完 progress: 99% totalReadDay: 4 readingTime: 1小时36分钟 readingDate: 2023-08-14 finishedDate: 2023-08-17 title: SQL必知必会(第5版) description: SQL是使用最为广泛的数据库语言,几乎所有重要的DBMS都支持SQL。本书是麻省理工学院、伊利诺伊大学等众多大学的参考教材,由浅入深地讲解了SQL的基本概念和语法,涉及数据的排序、过滤和分组,以及表、视图、联结、子查询、游标、存储过程和触发器等内容,实例丰富,便于查阅。与其他同类图书不同,本书没有过多阐述数据库基础理论,而是专门针对一线软件开发人员,直接从SQLSELECT开始,讲述实际工作环境中最常用和最必需的SQL知识,实用性极强。新版对书中的案例进行了全面的更新,并增加了章后挑战题,便于读者巩固所学知识。 keywords: - SQL必知必会(第5版) - 本·福达 tags: - 阅读/计算机-数据库 - 阅读/笔记 date: 2024-04-29 --- ## 简介 - **书名**:《SQL必知必会(第5版)》 - **作者**: 本·福达 - **分类**: 计算机-数据库 - **ISBN**:9787115539168 - **出版社**:人民邮电出版社 ## 概述 SQL是使用最为广泛的数据库语言,几乎所有重要的DBMS都支持SQL。本书是麻省理工学院、伊利诺伊大学等众多大学的参考教材,由浅入深地讲解了SQL的基本概念和语法,涉及数据的排序、过滤和分组,以及表、视图、联结、子查询、游标、存储过程和触发器等内容,实例丰富,便于查阅。与其他同类图书不同,本书没有过多阐述数据库基础理论,而是专门针对一线软件开发人员,直接从SQLSELECT开始,讲述实际工作环境中最常用和最必需的SQL知识,实用性极强。新版对书中的案例进行了全面的更新,并增加了章后挑战题,便于读者巩固所学知识。 ## 划线 > SQL是使用最为广泛的数据库语言。 > 数据库(database)保存有组织的数据的容器(通常是一个文件或一组文件)。 > 数据库软件应称为数据库管理系统(DBMS)。数据库是通过DBMS创建和操纵的容器 > SQL(发音为字母S-Q-L或sequel)是Structured Query Language(结构化查询语言)的缩写 > Windows用户可以使用Microsoft SQL Server Express。这是强大的SQL Server的一个免费版本,它还包括一个用户友好的客户端叫SQL Server Management Studio。 > 办法就是使用DISTINCT关键字,顾名思义,它指示数据库只返回不同的值。 > LIMIT 5 OFFSET 5 > 重要的是理解在按多个列排序时,排序的顺序完全按规定进行。 > 如果prod_price列中所有的值都是唯一的,则不会按prod_name排序。 > 提示:按非选择列排序显然,当根据不出现在SELECT清单中的列进行排序时,不能采用这项技术。但是,如果有必要,可以混合使用实际列名和相对列位置。 > 在很多DBMS中,AS关键字是可选的,不过最好使用它,这被视为一条最佳实践。 > WHERE在数据分组前进行过滤,HAVING在数据分组后进行过滤 > 使用HAVING时应该结合GROUP BY子句,而WHERE子句用于标准的行级过滤。 > 在SELECT语句中,子查询总是从内向外处理。 > 关系表的设计就是要把信息分解成多个表,一类数据一个表。各表通过某些共同的值互相关联(所以才叫关系数据库)。 > 将数据分解为多个表能更有效地存储,更方便地处理,并且可伸缩性更好。但这些好处是有代价的。 > 由没有联结条件的表关系返回的结果为笛卡儿积。检索出的行的数目将是第一个表中的行数乘以第二个表中的行数。 > 目前为止使用的联结称为等值联结(equijoin),它基于两个表之间的相等测试。这种联结也称为内联结(inner join) > 不要联结不必要的表。联结的表越多,性能下降越厉害。 > 自联结(self-join)、自然联结(natural join)和外联结(outer join)。 > 联结包含了那些在相关表中没有关联行的行。这种联结称为外联结。 > UNION几乎总是完成与多个WHERE条件相同的工作。UNION ALL为UNION的一种形式,它完成WHERE子句完成不了的工作。如果确实需要每个条件的匹配行全部出现(包括重复行),就必须使用UNION ALL,而不是WHERE。 > 视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。 > 事务处理是一种机制,用来管理必须成批执行的SQL操作,保证数据库不包含不完整的操作结果。 > 管理事务的关键在于将SQL语句组分解为逻辑块,并明确规定数据何时应该回退,何时不应该回退。 > 一般的SQL语句都是针对数据库表直接执行和编写的。这就是所谓的隐式提交(implicit commit),即提交(写或保存)操作是自动进行的。 ## 笔记 ## 书评 ## 点评