Heim Datenbank MySQL-Tutorial Group By 和 Having, Where ,Order by语句的执行顺序

Group By 和 Having, Where ,Order by语句的执行顺序

Jun 07, 2016 pm 04:14 PM
order where 执行 语句

一个SQL语句往往会产生多个临时视图,那么这些关键字的执行顺序就非常重要了,因为你必须了解这个关键字是在对应视图形成前的字段进行操作还是对形成的临时视图进行操作,这个问题在使用了别名的视图尤其重要。 Group By 和 Having, Where ,Order by这些关键

一个SQL语句往往会产生多个临时视图,那么这些关键字的执行顺序就非常重要了,因为你必须了解这个关键字是在对应视图形成前的字段进行操作还是对形成的临时视图进行操作,这个问题在使用了别名的视图尤其重要。

Group By 和 Having, Where ,Order by这些关键字是按照如下顺序进行执行的:Where, Group By, Having, Order by。

  • 首先where将最原始记录中不满足条件的记录删除(所以应该在where语句中尽量的将不符合条件的记录筛选掉,这样可以减少分组的次数)
  • 然后通过Group By关键字后面指定的分组条件将筛选得到的视图进行分组
  • 接着系统根据Having关键字后面指定的筛选条件,将分组视图后不满足条件的记录筛选掉
  • 最后按照Order By语句对视图进行排序,这样最终的结果就产生了。

在这四个关键字中,只有在Order By语句中才可以使用最终视图的列名,如:

<code>SELECT FruitName, ProductPlace, Price, ID AS IDE, Discount
FROM T_TEST_FRUITINFO
WHERE (ProductPlace = N'china')
ORDER BY IDE
</code>
Nach dem Login kopieren

这里只有在ORDER BY语句中才可以使用IDE,其他条件语句中如果需要引用列名则只能使用ID,而不能使用IDE。

PS:

  • 凡是在group by后面出现的字段,必须同时在select后面出现;

  • 凡是在select后面出现的、同时未在聚合函数中出现的字段,必须同时出现在group by后面.

  • having 子句被限制子已经在SELECT语句中定义的列和聚合表达式上。

(文:程序员之家)
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Python-Skript, das alle 5 Minuten ausgeführt wird Python-Skript, das alle 5 Minuten ausgeführt wird Sep 10, 2023 pm 03:33 PM

Python-Skript, das alle 5 Minuten ausgeführt wird

So verwenden Sie Python für die Skripterstellung und Ausführung unter Linux So verwenden Sie Python für die Skripterstellung und Ausführung unter Linux Oct 05, 2023 am 11:45 AM

So verwenden Sie Python für die Skripterstellung und Ausführung unter Linux

Wie schreibe ich PHP-Code im Browser und verhindere, dass der Code ausgeführt wird? Wie schreibe ich PHP-Code im Browser und verhindere, dass der Code ausgeführt wird? Mar 10, 2024 pm 02:27 PM

Wie schreibe ich PHP-Code im Browser und verhindere, dass der Code ausgeführt wird?

So führen Sie den Brown-Forsythe-Test in Python durch So führen Sie den Brown-Forsythe-Test in Python durch Aug 31, 2023 pm 11:53 PM

So führen Sie den Brown-Forsythe-Test in Python durch

Ein praktischer Leitfaden zur Where-Methode in Laravel-Sammlungen Ein praktischer Leitfaden zur Where-Methode in Laravel-Sammlungen Mar 10, 2024 pm 04:36 PM

Ein praktischer Leitfaden zur Where-Methode in Laravel-Sammlungen

So verwenden Sie die Where-Methode in Laravel-Sammlungen So verwenden Sie die Where-Methode in Laravel-Sammlungen Mar 10, 2024 pm 10:21 PM

So verwenden Sie die Where-Methode in Laravel-Sammlungen

Vom Anfänger bis zum Experten: Beherrschen Sie die Fähigkeiten im Umgang mit Ist- und Wo-Selektoren Vom Anfänger bis zum Experten: Beherrschen Sie die Fähigkeiten im Umgang mit Ist- und Wo-Selektoren Sep 08, 2023 am 09:15 AM

Vom Anfänger bis zum Experten: Beherrschen Sie die Fähigkeiten im Umgang mit Ist- und Wo-Selektoren

Wie führe ich ANCOVA in Python durch? Wie führe ich ANCOVA in Python durch? Sep 01, 2023 pm 05:21 PM

Wie führe ich ANCOVA in Python durch?

See all articles