200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > MySQL数据库SQL查询优化技巧之SELECT

MySQL数据库SQL查询优化技巧之SELECT

时间:2023-06-28 08:18:01

相关推荐

MySQL数据库SQL查询优化技巧之SELECT

#MYSQL#本篇主要介绍的是最基本的select查询语法和使用方法,以及SELECT的执行流程,了解了SELECT的执行流程还是很重要的,重要我们才能有针对性地去进行优化,比如select在执行的时候 会把所以的字段编程成大写字母,这样我们在起初编写SELECT语句时就可以把所以的字母进行大写,这样就省去了程序为把SQL语句变成大写的消耗,速度自然就会提高。

查询(SELECT)语句是SQL的核心,是SQL语句中使用最频繁的语句之一。因为大量的选项可以用于SELECT语句,所以整个SQL数据查询功能就是围着SELECT语句进行的。

查询可以按复杂性进行划分,从用一个简单语句返回表中的所有行,到用一个语句连接多个表并定义搜索条件。本篇在介绍SELECT语句基本结构的基础上,主要介绍SQL的简单查询操作。

查询的基本结构在SQL语言中,对数据库的读操作就体现在SELECT查询语句上。SELECT语句由一系列灵活的子句组成,这些字句共同确定检索哪些数据。

SELECT 语句的结构SELECT语句的基本语法可以分成几个特定的子句。通过每个字句细化查询,以便返回需要的数据。SELECT 语句的完整语法如下。

我们可以看出,必需的子句只有SELECT子句和FROM子句,其他的字句都是可选的。各子句具体含义如下。关键词SELECT后面输入要显示的字段清单。

SELECT子句包含可选关键字DISTINCT和ALL.在需要删除查询结果中相同的行时,我们使用关键字DISTINCT;在需要返回查询结果中的所有行时,使用关键字ALL.如果没有指定任何一个关键字,那么关键字ALL就是默认的关键宇。

而FROM子句包括关键字FROM和一个或多个表结构。如果表结构不止一个,那么它们之间必须用逗号分开。一般情况下,表结构是表的名称,但也可以是一种子查询。在 WHERE子句中列出搜索标准,用于选择要显示的数据行。如果SELECT语句没有WHERE子句,DBMS假设目标表中的所有行都满足搜索条件.

GROUPBY子句用于分组查询结果,根据group. _by. expression 中列出的列,归纳信息类型,汇总相关数据。HAVING子句列出另外的行选择标准,以便根据GROUP BY子甸产生的结果筛选行。

ORDER BY子句接受SELECT子句的输出,并且按照ORDER BY子句中的规范对查询结果进行排列。这里的规范就是ASC和DESC关键字。ASC关键字表示升序

排列结果,DESC关键字表示降序排列结果。如果没有指定任何一个关键字,那么ASC就是默认的关键字。如果没有ORDER BY子句,DBMS将根据输入表中的数据来显示数据。

SELECT 语句的执行步骤从SELECT语句的语法结构可知,SELECT 语句包含很多子句。当执行SELECT语句时,DBMS的执行步骤可表示如下。

(I) DBMS执行FROM子句,根据FROM子句中的-一个或多个表创建工作表。如果在FROM子旬中有两个或多个表,DBMS将对表进行交叉连接,作为工作表。

(2)如果有WHERE子句,DBMS将WHERE子句列出的搜索条件作用于步骤生成的工作表。DBMS将保留那些满足搜索条件的行,删除那些不满足搜索条件的行。

(3)如果有GROUP BY子句,DBMS 将步骤2生成的结果表中的行分成多个组,每个组所有行的group. _by expression字段具有相同的值,DBMS将每组减少到单行,然后将其添加到新的结果表中。

(4)如果有HAVING子句,DBMS将HAVING子句列出的搜索条件作用于步骤3生成的“组合”表中的每一行。 DBMS将保留那些满足搜索条件的行,删除那些不满足搜索条件的行。

(5) DBMS将SELECT子句作用于结果表,删除结果表中不包含在select_ list 中的列。如果SELECT子句包含DISTINCT关键字,DBMS将从结果中删除重复的行。

(6)如果有ORDER BY子句,DBMS按指定的排序规则对结果进行排序。

(7)对于交互式的SELECT语句,DBMS在屏幕上显示结果,对于嵌入式SQL,使用游标将结果传递给宿主程序中.

以上就是SQL SELECT语句的基本执行过程,对于初学者来讲,可能很难理解。之所以在这里提出,是为了让读者对SELECT语句有一个整体的了解。也欢迎在评论区说出你想法,共同探讨sql的优化。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。