美文网首页
SQL学习笔记2——基础查询

SQL学习笔记2——基础查询

作者: xinyiyake | 来源:发表于2021-08-26 10:53 被阅读0次
    1. SELECT语句基础

    从表中选取数据时需要使用 SELECT 语句,通过 SELECT 语句查询并选取出必要数据的过程称为匹配查询或查询(query)。

    1.1 基本的select语句
    选择特定字段,按写的先和顺序显示字段

    select <列名>,...
    from <表名>;

    SELECT 子句中列举了希望从表中查询出的列的名称,FROM 子句指定了选取出数据的表的名称。

    示例:

    SELECT product_id, product_name, product_type, sale_price,
    purchase_price, regist_date
    FROM Product;
    

    选择所有列,不能进行排序,*代表全部的意思

    SELECT *
    FROM
    Product;

    法则 2-1 星号(*)代表全部列的意思。

    1.2 为列设置别名
    使用as关键字为列设定别名,别名如果是中文,需要用双引号括起来
    示例:

    SELECT product_id AS id,
    product_name AS name,
    purchase_price AS price
    FROM Product;
    

    法则 2-2 设定汉语别名时需要使用双引号(")括起来。

    1.3 删除重复数据
    在select子句中使用distinct来实现删除重复行

    SELECT DISTINCT product_type
    FROM Product;
    

    在使用distinct时,null也会被视为一类数据,null存在于多行中时,也会被合并成一条null数据。
    法则 2-3 在SELECT语句中使用DISTINCT可以删除重复行。
    distinct只能放在第一个列名之前。

    1.4 根据where语句来选择记录
    select语句通过where子句来指定查询数据条件。在 WHERE 子句中可以指定“某一列的值和这个字符串相等”或者“某一列的值大于这个数字”等条件。

    SELECT <列名>, ……
    FROM <表名>
    WHERE <条件表达式>;

    示例:

    SELECT product_name, product_type
    FROM Product
    WHERE product_type = '衣服';
    

    先通过where子句查询出符合指定条件的记录,然后再选取出select语句指定的列。
    SQL子句的书写顺序是固定的,WHERE 必须跟在FROM子句后面,否则会报错。
    法则 2-4 WHERE子句要紧跟在FROM子句之后。

    1.5 SQL注释
    注释的书写方法有如下两种:

    • 单行注释 ”--“
    • 多行注释 ”/“和”/“之间可以跨多行
    -- 本SELECT语句会从结果中删除重复行。
    SELECT DISTINCT product_id, purchase_price FROM Product;
    
    /* 本SELECT语句, 
    会从结果中删除重复行。*/
    SELECT DISTINCT product_id, purchase_price 
    FROM Product;
    

    注释不仅可以写在 SELECT 语句 中,而且可以写在任何 SQL 语句当中,写多少都可以。
    法则 2-5 注释是 SQL 语句中用来标识说明或者注意事项的部分。 分为1行注释和多行注释两种。

    2. 算术运算符和比较运算符

    • 运算符就是对其两边的列或者值进行运算(计算或者比较大小 等)的符号。
    • 比较运算符可以用来判断列或者值是否相等,还可以用来比较 大小。

    2.1 算术运算符和比较运算符
    SQL语句中可以使用计算表达式

    SELECT product_name, sale_price, 
    sale_price * 2 AS "sale_price_x2" 
    FROM Product;
    

    把单价的两倍(sale_price * 2 )以”sale_price_x2“的形式读取出来

    SQL语句中可以使用的四则运算的主要运算符

    运算符 含义
    + 加法运算
    - 减法运算
    * 乘法运算
    / 除法运算
    () 括弧

    注意含有null的运算,计算结果都是null,null/0 结果也是null

    法则 2-6 SELECT子句中可以使用常数或者表达式。

    2.2 比较运算符
    在where子句中通过使用比较运算符可以组合出各种各样的条件表达式
    选取出sale_price列的值不是500的记录

    SELECT product_name, product_type 
    FROM Product 
    WHERE sale_price <> 500;
    
    运算符 含义
    = 和~相等
    <> 和~不等
    >= 大于等于~
    > 大于~
    <= 小于等于~
    < 小于

    这些运算符可以对字符、数字和日期等所有数据类型的列和值进行比较。

    在使用大于等于(>=)或者小于等于(<=)作为查询条件时,一 定要注意不等号(<、>)和等号(=)的位置不能颠倒。
    法则 2-7 使用比较运算符时一定要注意不等号和等号的位置。

    比较字符串的时候是用类似于字典顺序进行比较,也就是像姓名那样,按照条目在字典中出现的顺序来进行 排序。该规则最重要的一点就是,以相同字符开头的单词比不同字符开 头的单词更相近。
    Chars 表 chr 列中的数据按照字典顺序进行排序的结果如下所示。

    1
    10
    11
    2
    222
    3

    '10' 和 '11' 同样都是以 '1' 开头的字符串,首先判定为比 '2' 小。 这就像在字典中“提问”“提议”和“问题”按照如下顺序排列一样。
    法则 2-8 字符串类型的数据原则上按照字典顺序进行排序,不能与数字的大小顺序混淆。

    2.2 不能对 NULL 使用比较运算符
    不能对null进行直接比较,通过 IS NULLIS NOT NULL来判断某个值是不是null
    法则 2-9 希望选取NULL记录时,需要在条件表达式中使用IS NULL运算符。 希望选取不是NULL的记录时,需要在条件表达式中使用IS NOT NULL运算符。

    2.3 逻辑运算符

    • NOT 运算符
      NOT 不能单独使用,必须和其他查询条件组合起来使用
    SELECT product_name, product_type, sale_price 
    FROM Product 
    WHERE NOT sale_price >= 1000;
    

    等同于

    SELECT product_name, product_type 
    FROM Product 
    WHERE sale_price < 1000;
    

    法则 2-10 NOT运算符用来否定某一条件,但是不能滥用。

    • AND运算符和OR运算符
      对多个查询条件进行组合
      AND 运算符在其两侧的查询条件都成立时整个查询条件才成立,其意 思相当于“并且”。
      OR 运算符在其两侧的查询条件有一个成立时整个查询条件都成立,其 意思相当于“或者”。

    法则 2-11 多个查询条件进行组合时,需要使用AND运算符或者OR运算符。
    法则 2-12 文氏图很方便。
    法则 2-13 AND运算符的优先级高于OR运算符。想要优先执行OR运算符时可以 使用括号。

    2.4 逻辑运算符和真值
    逻辑运算符对比较运算符等返回的真值进行操作。
    三值逻辑,在SQL中语言逻辑运算除了真假值之外,还有第三种值-不确定(UNKNOW),也就是null。

    SQL中真值表
    AND:

    P Q P AND Q
    不确定 不确定
    不确定
    不确定 不确定
    不确定
    不确定 不确定 不确定

    OR:

    P Q P OR Q
    不确定
    不确定 不确定
    不确定
    不确定 不确定
    不确定 不确定 不确定

    原本只有 4 行的真值表,如果要考虑 NULL 的话就会像上表那样增加为3×3=9 行,看起来也变得更加繁琐,考虑 NULL 时的条件判断也会变得异常复杂,这与我们希望的结果大相径庭。因此,我们要尽量不使用 NULL。
    这就是在数据库中设置了NOT NULL约束的原因

    法则 2-14 通过创建真值表,无论多复杂的条件,都会更容易理解。

    总结

    本次学习了SQL 最基本也是最重要的语句——SELECT 语句,同时学习了执行查询操作时指定想要查询数据的条件(查询条件),查询时可以指定一个或多个查询条件,例如“某一列等于这个值”“某一列计算之 后的值大于这个值”等。
    在指定查询条件时,我们要注意null这个特殊的值,它的逻辑运算结果和正常值的逻辑运算结果不一样。

    相关文章

      网友评论

          本文标题:SQL学习笔记2——基础查询

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