1
0
wiki/Personal/Book/计算机/SQL必知必会(第5版).md
2024-10-14 16:48:38 +08:00

100 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
doc_type: weread-highlights-reviews
bookId: "34336685"
reviewCount: 0
noteCount: 26
author: 仲平
cover: https://wfqqreader-1252317822.image.myqcloud.com/cover/685/34336685/t7_34336685.jpg
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:
- Personal/Book
- Read/计算机-数据库
date: 2024-10-14
---
## 简介
- **书名**《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即提交写或保存操作是自动进行的。
## 笔记
## 书评
## 点评