SQL学习笔记

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

学习路径

要想写出高性能的 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 公布)

img

img

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

ER 图(Entity Relationship Diagram)

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

大小写

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

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

img

SQL是如何执行的

Oracle 中的 SQL 是如何执行的

img

MySQL 中的 SQL 是如何执行的

img

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

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值