美文网首页
02 SQL 规则和命令 初步 基本操作

02 SQL 规则和命令 初步 基本操作

作者: 夏威夷的芒果 | 来源:发表于2018-04-01 17:11 被阅读15次

    规定查询格式

    大写

    你可能已经注意到,我们大写了 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 更改为任何其他数字来更改行数。


    LIMIT练习

    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的位置

    练习

    练习

    没有加分号的非标准答案

    答案

    使用这些 WHERE 语句时,不需要 ORDER BY,除非要实际整理数据。不必对数据进行排序,仍可继续执行条件。

    WHERE 语句也可以与非数字数据一起使用。可以使用 = 和 != 运算符。 还需要确保在文本数据中使用引号(单引号或双引号都可以 - 另外如果原始文本中有引号,就更要注意)。

    通常将 WHERE 与非数字数据字段一起使用时,我们会使用 LIKE、NOT 或 IN 运算符。

    WHERE与文本一起使用

    练习

    使用WHERE进行筛选

    派生列

    我们将现有的列组合,生成的新列称为 派生 列。

    常见运算包括:
    *(乘法)
    +(加法)
    -(减法)
    /(除法)


    示例:SELECT 语句中 使用 AS 和 新变量名nonstandard_qty 接收派生列

    练习

    练习 答案

    逻辑运算符简介
    我们将在接下来的概念中学习 逻辑运算符。逻辑运算符包括:

    LIKE
    可用于进行类似于使用 WHERE 和 = 的运算,但是这用于你可能 不 知道自己想准确查找哪些内容的情况。

    IN
    用于执行类似于使用 WHERE 和 = 的运算,但用于多个条件的情况。

    NOT
    这与 IN 和 LIKE 一起使用,用于选择 NOT LIKE 或 NOT IN 某个条件的所有行。

    AND & BETWEEN
    可用于组合所有组合条件必须为真的运算。

    OR
    可用于组合至少一个组合条件必须为真的运算。

    相关文章

      网友评论

          本文标题:02 SQL 规则和命令 初步 基本操作

          本文链接:https://www.haomeiwen.com/subject/maxacftx.html