SQL Select 语句背后的逻辑
Logic Behind SQL Select Statement
让我们从这样一个基本的 SQL 语句开始:
SELECT 来自客户的客户姓名、城市、国家/地区;
我们得到这样的结果:
CustomerName
City
Country
Alex
Berlin
Germany
现在,如果我在同一个 table 上执行此语句:
SELECT 'a' 来自客户;
它给了我这个结果:
a
a
a
a
这是为什么?没有名为 a 的标识符。实际上,我可以将任何内容放在单引号中,它会向我重复多次 table.
中的行数
声明:
select ... 来自客户;
始终 return 为您的 table 客户中的每一行设置一行(您在 ... 部分中输入的内容不会影响您将获得多少行)。
现在,谈到 ... 部分,这通常是一个逗号分隔的列列表和要为每一行显示的表达式。如果您使用列名,则该行该列中的值将被 returned。如果您使用表达式,将为该行计算表达式,结果为 returned。您放置了一个字符串文字(字母 'a')作为表达式,因此该表达式的结果是字符串文字 'a',对三行中的每一行进行了计算和 returned。
通常您会编写更详细的表达式:例如,如果您的其中一个列称为 Distance,并且您的每个列中都有值,例如 56,250、1200三行,那么你可能想检索这些并组合(连接)一个单位符号,比如一个字母 'm'。在这种情况下你可以写:
SELECT Distance+'m' as DistanceFromSea from Customers
会return:
|与海洋的距离|
|------:|
|56米|
|250米|
|1250米|
.
这里表达式中的 'm' 不是微不足道的,因为它意味着什么。 '+' 号是连接运算符)。
虽然您的 'a' 本身可能没有任何意义,但有时您可能希望在一列中只显示一个字符:它可能是一个分隔符,例如,像 ' |'.
本例中的DistanceFromSea
成为列'alias',即表达式构建的列值的名称。如果您不为表达式提供名称,许多数据库产品会为您提供一个 made-up/default 列名称,通常是使用表达式的前几部分(但不提供是正确的)。
让我们从这样一个基本的 SQL 语句开始:
SELECT 来自客户的客户姓名、城市、国家/地区;
我们得到这样的结果:
CustomerName | City | Country |
---|---|---|
Alex | Berlin | Germany |
现在,如果我在同一个 table 上执行此语句: SELECT 'a' 来自客户;
它给了我这个结果:
a |
---|
a |
a |
a |
这是为什么?没有名为 a 的标识符。实际上,我可以将任何内容放在单引号中,它会向我重复多次 table.
中的行数声明:
select ... 来自客户;
始终 return 为您的 table 客户中的每一行设置一行(您在 ... 部分中输入的内容不会影响您将获得多少行)。
现在,谈到 ... 部分,这通常是一个逗号分隔的列列表和要为每一行显示的表达式。如果您使用列名,则该行该列中的值将被 returned。如果您使用表达式,将为该行计算表达式,结果为 returned。您放置了一个字符串文字(字母 'a')作为表达式,因此该表达式的结果是字符串文字 'a',对三行中的每一行进行了计算和 returned。
通常您会编写更详细的表达式:例如,如果您的其中一个列称为 Distance,并且您的每个列中都有值,例如 56,250、1200三行,那么你可能想检索这些并组合(连接)一个单位符号,比如一个字母 'm'。在这种情况下你可以写:
SELECT Distance+'m' as DistanceFromSea from Customers
会return: |与海洋的距离| |------:| |56米| |250米| |1250米| .
这里表达式中的 'm' 不是微不足道的,因为它意味着什么。 '+' 号是连接运算符)。
虽然您的 'a' 本身可能没有任何意义,但有时您可能希望在一列中只显示一个字符:它可能是一个分隔符,例如,像 ' |'.
本例中的DistanceFromSea
成为列'alias',即表达式构建的列值的名称。如果您不为表达式提供名称,许多数据库产品会为您提供一个 made-up/default 列名称,通常是使用表达式的前几部分(但不提供是正确的)。