100 lines
5.2 KiB
Markdown
100 lines
5.2 KiB
Markdown
---
|
||
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),即提交(写或保存)操作是自动进行的。
|
||
|
||
## 笔记
|
||
|
||
|
||
## 书评
|
||
|
||
|
||
## 点评
|