Commit 0bd819d1 authored by 王雷's avatar 王雷 😹

Update (SQL)优化分析与方法.md

parent 223de1a7
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
  在讲解如何优化 SQL 之前,我们先介绍几个关键字,这些关键字大家在日常的开发中肯定经常用到,但具体是做什么用的恐怕就不那么清楚了,所以,让我们先从这些“最熟悉的陌生人”开始,对我们的工作内容做一个深度了解。   在讲解如何优化 SQL 之前,我们先介绍几个关键字,这些关键字大家在日常的开发中肯定经常用到,但具体是做什么用的恐怕就不那么清楚了,所以,让我们先从这些“最熟悉的陌生人”开始,对我们的工作内容做一个深度了解。
1. select:这个是 DQL 最常见的关键字,我们基本上用在了所有的查询开始的地方,在 DQL 语句中,select 表示一个查询的开始或者一个子查询的开始,紧跟在 ```select``` 后面的就是我们要从数据库中提取后返回给调用方的数据项,当 ```select``` 后面跟随一个 ```*``` 时,表示我们要将所有查询到的数据项都返回; 1. select:这个是 DQL 最常见的关键字,我们基本上用在了所有的查询开始的地方,在 DQL 语句中,select 表示一个查询的开始或者一个子查询的开始,紧跟在 ```select``` 后面的就是我们要从数据库中提取后返回给调用方的数据项,当 ```select``` 后面跟随一个 ```*``` 时,表示我们要将所有查询到的数据项都返回;
2. from:99.999% 的 DQL 中都会包含 ```from``` 关键字,它用来标识我们要查询的数据的来源,```from``` 后面可以是数据表(table),视图(view)甚至是另一个 DQL ***(子查询)***```from``` 后面可以跟随一个或多个数据来源,使用 “,” (西文半角逗号)进行分割; 2. from:99.999% 的 DQL 中都会包含 ```from``` 关键字,它用来标识我们要查询的数据的来源,```from``` 后面可以是数据表(table),视图(view)甚至是另一个 DQL *(子查询)*```from``` 后面可以跟随一个或多个数据来源,使用 “,” (西文半角逗号)进行分割;
> 在某些数据库中,如 MySQL,在调用一个函数或直接返回一个自定义常量时可以不写 from 关键字,如我们配置在数据库连接池中,为连接对象验活的语句 ```select 1```,或者直接调用一个函数,如查询当前数据库服务器时间 ```select now()```,但不是所有的数据库都支持省略 from 关键字,如 ORACLE,所以为了保证数据库兼容,我们要求不能省略 ```from``` 关键字,像上面两个语句,要改写为 ```select 1 from dual``` 和 ```select now() from dual```,dual 是数据库中提供的一个只有一列的系统表,一般我们称之为伪表或虚拟表。 > 在某些数据库中,如 MySQL,在调用一个函数或直接返回一个自定义常量时可以不写 from 关键字,如我们配置在数据库连接池中,为连接对象验活的语句 ```select 1```,或者直接调用一个函数,如查询当前数据库服务器时间 ```select now()```,但不是所有的数据库都支持省略 from 关键字,如 ORACLE,所以为了保证数据库兼容,我们要求不能省略 ```from``` 关键字,像上面两个语句,要改写为 ```select 1 from dual``` 和 ```select now() from dual```,dual 是数据库中提供的一个只有一列的系统表,一般我们称之为伪表或虚拟表。
3. inner join:用来做两个数据来源的关联使用,使用 on 关键字来进行数据关联,一般用在多表(视图)查询上,一般 inner join 也可以写为逗号分隔的方式,然后将 on 条件转义到 where 中;使用 inner join 只有当数据来源存在时,才会返回数据; 3. inner join:用来做两个数据来源的关联使用,使用 on 关键字来进行数据关联,一般用在多表(视图)查询上,一般 inner join 也可以写为逗号分隔的方式,然后将 on 条件转义到 where 中;使用 inner join 只有当数据来源存在时,才会返回数据;
4. join:join 就是对 inner join 的简写 4. join:join 就是对 inner join 的简写
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment