• MySQL数据查询(待补充)


    要点概论

    1. SELECT语句的语法

    2. 简单查询

    3. 连接查询

    4.联合查询

    5. 子查询

    6. 正则表达式查询

    7. 通过正则表达式查询数据

    1. SELECT 语句的语法

      http://www.cnblogs.com/HZY258/p/8496391.html

    2. 简单查询

      2.1 获取所有列

    SELECT * FROM table_name;

        如果数据表中的列较少,也可以通过列出所有列名的方式获取数据。

      2.2 获取指定列

       

    SELECT 列名列表 FROM table_name;
    
    # 各列名以逗号隔开

      2.3 为列指定别名

        当表或者列名的名称比较长时,使用别名很有用。在 SELECT 语句查询中,可以使用以下任意一种方式为列指定别名。

        1)采用符合 ANSI 规则的方法指定别名

          

    SELECT address_id '地址 ID',address '地址' FROM address;
    
    #采用 ANSI 规则的标准方法是指在列表表达式中给出列名

        2)使用 AS 关键字指定别名

     

    SELECT address_id as '地址 ID',address as '地址' FROM address;

        PS:为列指定别名操作时,必须注意以下几点:

          ① 当引用中文别名时,可以不加引号,但是不能使用全角引号,否则查询会出错。

          ② 当引用英文的别名超过两个单词时,则必须用引号将其引起来。

          ③ 可以同时使用以上两种方法,会返回同样的结果集。

      

      2.4 获取不重复的数据

        如果没有为数据库表中的列添加唯一性约束或者主键约束时,这些列很可能存在着重复的值。

        使用 DISTINCT 关键字筛选结果集,对于重复行(这里是指结果集数据行的每个字段数据值都一样)只保留并显示一行。语法如下:

    SELECT DISTINCT column 1[,column 2,..., column n] FROM table_name;

        PS:使用 DISTINCT 关键字时,如果表中存在多个为 NULL 的行,它们将作为相等处理

      2.5 限制查询结果

        1)LIMIT 指定初始位置

     

    LIMIT 初始位置,查询记录数量;

        2)LIMIT 不指定初始位置

    LIMIT 显示记录数;

        PS:在上述语法中,如果 “显示记录数” 小于或者等于查询结果的总数量,那么将会从第一条记录开始,显示指定条数的记录。

           如果 “显示记录数” 大于查询结果的总数量,数据库会直接显示查询出来的所有记录。

      2.6 WHERE 条件查询

        WHERE 设置查询条件时,WHERE 字句可以使用算术运算符(如 +,-,*,/,%),比较运算符(如 》=,《=,BETWEEN AND 和 LIKE)和逻辑运算符(如 AND,OR,NOT)等多种运算符。

      

      2.7 对查询结果分组

    GROUP BY 字段名 [HAVING 条件表达式] [WITH ROLLUP];

        上述语法说明如下:

          1)字段名:它是指按照该字段的指进行分组,指定多各字段时中间使用 逗号 进行分割

          2)HAVING 条件表达式:可选参数,用来限制分组后的显示,满足条件表达式的结果将会被显示出来。

          3)WITH ROLLUP:可选参数,将会在所有记录的最后加上一条,该记录是上面所有记录的总和。

          PS: GROUP BY 可以单独使用,单独使用时查询结果就是字段取值的分组情况,字段中取值相同的记录为一组,但是只显示该组的第一条记录。

        一般在使用聚合函数时才会使用到 GROUP BY 子句,GROUP BY 之后可以跟 HAVING 子句,它实现对结果集的筛选。

        HAVING 和 WHERE 的不同点表现在以下三个方面:

          1)HAVING 针对结果组: WHERE 针对的时列的数据。

          2)HAVING 可以与聚合函数一起使用,但是 WHERE 不能。

          3)HAVING 语句只过滤分组后的数据;WHERE 在分组前对数据进行过滤

      

      2.8 对查询结果排序

        

    ORDER BY order_expression [ASC | DESC];

        在语法格式中,order_expression 指明了排序列或列的别名和表达式。

        当有多个排序列时,每个排序列之间用逗号隔开,而且列后都可以跟一个排序要求。

    3. 连接查询

      连接查询是把两个或两个以上的表按某个条件连接起来,从中选取需要的数据。

      连接查询时同时查询两个或两个以上的表时使用的。

      当不同的表中存在表示相同意义的列时,可以通过该字段来连接这几个表。

      MySQL 中支持不同的连接类型。

      3.1 交叉连接查询

         PASS

      3.2 内连接查询

        PASS

      3.3 外连接查询

        PASS

      3.4 自连接查询(待补充

      

  • 相关阅读:
    洛谷3004 [USACO10DEC]宝箱Treasure Chest
    洛谷3778 [APIO2017]商旅
    洛谷4141消失之物——每个体积的角度
    洛谷2943 [USACO09MAR]清理Cleaning Up——转变枚举内容的dp
    bzoj1858[Scoi2010]序列操作
    poj1325机器工作——二分图最小点覆盖
    洛谷P1144——最短路计数
    poj3254二进制放牛——状态压缩DP
    poj1191棋盘分割——区间DP
    洛谷P1474货币系统——背包方案计数
  • 原文地址:https://www.cnblogs.com/HZY258/p/8496786.html
Copyright © 2020-2023  润新知