我执行了以下查询,它起作用了。我想了解它是如何工作的。
select 50+2 from employees
仅当“员工”表存在时,此方法才有效。如果我提到一个不存在的表,那么它将引发错误。
如何为用户定义的表求值此类表达式?
MySQL首先要做的是使用解析器读取SQL语句并将其分成逻辑部分。解析器(不仅由MySQL使用,而且在编程中经常使用)只是一个代码块,用于检索原始信息,并将其转换为程序可以使用的信息。
对于MySQL,它将分开
SELECT 50+2 FROM employees
入SELECT 50+2
和FROM employees
因此,让我们分析一下这两者的作用。该SELECT
保留字用于识别用户希望从操作获得什么。它通常包含一个列名。但是,如果包含一个名为“ hello ”的字符串,则MySQL会解释为要选择“ hello ”。在这种情况下,您想选择一个作为的结果的数字50+2
。
现在的FROM employees
作用是通知MySQL您希望从哪个表中选择此信息。50+2
既不是列也不是表中的任何内容都没关系。MySQL不是AI系统,并且不会询问您为什么要这样做,它只会执行按照已建立规则设计的命令。
现在,MySQL将浏览整个表,并返回与WHERE ...
查询部分中存在的条件一致的每一行的选定列。如果查询没有该WHERE ...
部分,则假定您要返回所有行。
然后,查询结果将是一列充满该值的列,并且52
具有与表相同的行数。如果您的表有5行,结果将是:
52
52
52
52
52
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句