----------------------------在职场上的价值取决于别人依赖我们的程度,而不是我们依赖别人的程度---------------------------

学习路径

要想写出高性能的 SQL,首先要了解它的原理,其次就是做大量的练习。

  1. 先掌握基本的 DDL、DML、DCL 和 DQL 语法
  2. 再了解不同的 DBMS 中的 SQL 语法差异,
  3. 然后再来看如何优化,提升 SQL 的效率。

SQL简介

DDL,英文叫做 Data Definition Language 也就是数据定义语言,它用来定义我们的数据库对象,包括数据库、数据表和列 通过使用 DDL,我们可以创建,删除和修改数据库和表结构
DML 英文叫做 Data Manipulation Language,数据操作语言 增加、删除、修改数据表中的记录
DCL,英文叫做 Data Control Languag 数据控制语言 我们用它来定义访问权限和安全级别
QL,英文叫做 Data Query Language,数据查询语言 在实际的业务中,我们绝大多数情况下都是在和查询打交道,因此学会编写正确且高效的查询语句,是学习的重点。 我们用它查询想要的记录

DBMS 的排名(2019 年 5 月 DB-Engines 公布)

SQL学习笔记

SQL学习笔记

NoSQL 的分类很多,刚才提到的键值型、文档型、搜索引擎、列式存储和图形数据库等都属于 NoSQL 阵营。也只有用 NoSQL 一词才能将这些技术囊括进来。即便如此,在 DBMS 排名中,还是 SQL 阵营的比重更大,影响力前 5 的 DBMS 中有 4 个是关系型数据库,而排名前 20 的 DBMS 中也有 12 个是关系型数据库。所以说,掌握 SQL 是非常有必要的。

ER 图(Entity Relationship Diagram)

即实体 - 关系图的方式进行设计。实体 - 关系图有什么用呢?它是我们用来描述现实世界的概念模型,在这个模型中有 3 个要素:实体、属性、关系。

大小写

不影响SQL的运行,但是有规范:

  • 表名、表别名、字段名、字段别名等都小写;
  • SQL 保留字、函数名、绑定变量等都大写。

SQL学习笔记

SQL是如何执行的

Oracle 中的 SQL 是如何执行的

SQL学习笔记

MySQL 中的 SQL 是如何执行的

SQL学习笔记

  • 连接层:客户端和服务器端建立连接,客户端发送 SQL 至服务器端;
  • SQL 层:对 SQL 语句进行查询处理;
  • 存储引擎层:与数据库文件打交道,负责数据的存储和读取。

相同的地方在于 Oracle 和 MySQL 都是通过解析器→优化器→执行器这样的流程来执行 SQL 的。

但 Oracle 和 MySQL 在进行 SQL 的查询上面有软件实现层面的差异。

Oracle 提出了共享池的概念,通过共享池来判断是进行软解析,还是硬解析。而在 MySQL 中,8.0 以后的版本不再支持查询缓存,而是直接执行解析器→优化器→执行器的流程,这一点从 MySQL 中的 show profile 里也能看到。同时 MySQL 的一大特色就是提供了各种存储引擎以供选择,不同的存储引擎有各自的使用场景,我们可以针对每张表选择适合的存储引擎。

使用DDL创建数据库&数据表时需要注意什么?

相关文章: