规定查询格式
大写
你可能已经注意到,我们大写了 SELECT 和 FROM,而将表和列名称小写。这是一个常见的格式惯例。大写命令(SELECT、FROM),小写查询中的其他内容是常见做法。这使得查询更容易读取,这在编写更复杂的查询时更为重要。准备编写查询时,这是一个很好的习惯。
表和变量名中不需要空格
通常在列名中使用下划线,避免使用空格。 在 SQL 中使用空格有点麻烦。 在 Postgres 中,如果列或表名称中有空格,就需要使用双引号括住这些列/表名称(例如:FROM \"Table Name\"
,而不是 FROM table_name
)。在其他环境中,可能会使用方括号(例如:FROM [Table Name]
)。
在查询中使用空格
SQL 查询忽略空格,因此可以根据需要在代码之间添加尽可能多的空格和空行,并且查询结果是相同的。
我们来看下面这个查询:
SELECT account_id FROM orders
等价于:
SELECT account_id
FROM orders
和这个(但是永远不要这样写):
SELECT account_id
FROM orders
SQL 不区分大小写。
如果你已经使用过其他语言编程,那么可能会熟悉编程语言,如果没有区分大小写键入正确的字符,那么会非常麻烦。 SQL 不区分大小写。 我们来看看下面的查询:
SELECT account_id
FROM orders
和这个相同:
select account_id
from orders
也和这个相同:
SeLeCt AcCoUnt_id
FrOm oRdErS
但是,再次提醒,遵循上面讲述的完全大写命令的惯例,而将其他代码片段小写。
分号
根据 SQL 环境,查询结尾可能需要一个执行的分号。 这个"要求"在其他环境中比较灵活。
在每个语句的末尾添加一个分号是最好的做法,如果环境能够一次显示多个结果,那么这样做还可以一次运行多个命令。
最好的做法:
SELECT account_id
FROM orders;
既然,我们这里的环境不需要分号,我们来看看没有分号的解决方案:
SELECT account_id
FROM orders
规则太多了。
LIMIT命令
许多查询的目的是打开表格看看里面的数据什么样? 扫一扫前面几行,大概了解自己关心哪些字段,想对字段做什么操作。
如果想要查看表的前几行时,LIMIT 语句就能派上用场。这可比加载整个数据集要快得多。
LIMIT 命令始终是查询的最后一部分。下面的例子仅显示订单表的前 10 行和所有列:
SELECT *
FROM orders
LIMIT 10;
我们也可以通过将 10 更改为任何其他数字来更改行数。
ORDER BY (01)
ORDER BY 语句可使我们按任意行排序表。如果熟悉 Excel,这与使用过滤器进行排序相似。
ORDER BY 语句始终在 SELECT 和 FROM 语句之后,但位于 LIMIT 语句之前。 学习其他命令时,这些语句的顺序将更为重要。 如果使用 LIMIT 语句,它将始终显示在最后。
提示
记住可以在 ORDER BY 语句中的列之后添加 DESC,然后按降序排序,因为默认是按升序排序的。"
答案:
SELECT id,occurred_at,total_amt_usd
FROM orders
ORDER BY occurred_at
LIMIT 10;
SELECT id,account_id,total_amt_usd
FROM orders
ORDER BY total_amt_usd DESC
LIMIT 5;
SELECT id,account_id,total
FROM orders
ORDER BY total
LIMIT 20;
ORDER BY (02) 多维排序
可以一次 ORDER BY 多列。这个语句可以按照从左至右列出的列进行排序。 我们也可以翻过来使用 DESC。
练习
评: 以这种方式对日期进行比较并没有多大意义,因为这两种日期与这种粒度是一样的。
WHERE语句
可以使用 WHERE 语句来为表格创建子集。WHERE 语句中使用的常用符号包括:
>(大于)
<(小于)
>=(大于或等于)
<=(小于或等于)
=(等于)
!=(不等于)
练习
没有加分号的非标准答案
使用这些 WHERE 语句时,不需要 ORDER BY,除非要实际整理数据。不必对数据进行排序,仍可继续执行条件。
WHERE 语句也可以与非数字数据一起使用。可以使用 = 和 != 运算符。 还需要确保在文本数据中使用引号(单引号或双引号都可以 - 另外如果原始文本中有引号,就更要注意)。
通常将 WHERE 与非数字数据字段一起使用时,我们会使用 LIKE、NOT 或 IN 运算符。
练习
派生列
我们将现有的列组合,生成的新列称为 派生 列。
常见运算包括:
*(乘法)
+(加法)
-(减法)
/(除法)
练习
逻辑运算符简介
我们将在接下来的概念中学习 逻辑运算符。逻辑运算符包括:
LIKE
可用于进行类似于使用 WHERE 和 = 的运算,但是这用于你可能 不 知道自己想准确查找哪些内容的情况。
IN
用于执行类似于使用 WHERE 和 = 的运算,但用于多个条件的情况。
NOT
这与 IN 和 LIKE 一起使用,用于选择 NOT LIKE 或 NOT IN 某个条件的所有行。
AND & BETWEEN
可用于组合所有组合条件必须为真的运算。
OR
可用于组合至少一个组合条件必须为真的运算。