zoukankan      html  css  js  c++  java
  • MySQL查询

     MySQL表单查询是指从一张表的数据中查询所需的数据,主要有查询所有字段、查询指定字段、查询指定记录、查询空值、多条件的查询、对查询结果进行排序等。

    mysql   SELECT 

    语法格式:

    SELECT 
    
    *| <字段>                    //  包含星号通配符的字段列表,表示查询的字段,其中字段列至少包含一个字段名称,如果要查询多个字段,多个字段之间要用逗号隔开,最后一个字段后不要加逗号。
    
    FROM  表1,表2,......            //从表 1 和表 2 表示查询数据的来源,可以是单个或多个。
    
    WHERE  <表达式1>,<表达式2.....>      //将限定查询行必须满足的查询条件
    
    GROUP BY <字段>              //显示查询出来的数据,并按照指定的字段分组
    
    ORDER BY <字段>              // 按什么样的顺序显示查询出来的数据,可以进行的排序有升序(ASC)和降序(DESC)。
    
    HAVING <条件>              
    LIMIT
    <offset>,<row count> // <offset> 从什么时候开始偏移,<row count>查询的条数


      

    去重查询

    SELECT DISTINCT <字段名> FROM <表名>

     WHERE

    在使用 MySQL SELECT语句时,可以使用 WHERE 子句来指定查询条件,从 FROM 子句的中间结果中选取适当的数据行,达到数据过滤的效果。

    语法格式如下:

    WHERE <查询条件> {<判定运算1><判定运算2>,…}

    判定运算的语法分类如下:

    • <表达式1>{=|<|<=|>|>=|<=>|<>|!=}<表达式2>
    • <表达式1>[NOT]LIKE<表达式2>
    • <表达式1>[NOT][REGEXP|RLIKE]<表达式2>
    • <表达式1>[NOT]BETWEEN<表达式2>AND<表达式3>
    • <表达式1>IS[NOT]NULL

     

    GROUP BY 

    在 MySQL SELECT 语句中,允许使用 GROUP BY 子句,将结果集中的数据行根据选择列的值进行逻辑分组,以便能汇总表内容的子集,实现对每个组而不是对整个结果集进行整合。

    语法格式如下:
    GROUP BY { <列名> | <表达式> | <位置> } [ASC | DESC]
    语法说明如下:
    • <列名>:指定用于分组的列。可以指定多个列,彼此间用逗号分隔。
    • <表达式>:指定用于分组的表达式。通常与聚合函数一块使用,例如可将表达式 COUNT(*)AS' 人数 ' 作为 SELECT 选择列表清单的一项。
    • <位置>:指定用于分组的选择列在 SELECT 语句结果集中的位置,通常是一个正整数。例如,GROUP BY 2 表示根据 SELECT 语句列清单上的第 2 列的值进行逻辑分组。
    • ASC|DESC:关键字 ASC 表示按升序分组,关键字 DESC 表示按降序分组,其中 ASC 为默认值,注意这两个关键字必须位于对应的列名、表达式、列的位置之后。

    对于 GROUP BY 子句的使用,需要注意以下几点。

    • GROUP BY 子句可以包含任意数目的列,使其可以对分组进行嵌套,为数据分组提供更加细致的控制。
    • GROUP BY 子句列出的每个列都必须是检索列或有效的表达式,但不能是聚合函数。若在 SELECT 语句中使用表达式,则必须在 GROUP BY 子句中指定相同的表达式。
    • 除聚合函数之外,SELECT 语句中的每个列都必须在 GROUP BY 子句中给出。
    • 若用于分组的列中包含有 NULL 值,则 NULL 将作为一个单独的分组返回;若该列中存在多个 NULL 值,则将这些 NULL 值所在的行分为一组。

    HAVING

    在 MySQL SELECT 语句中,除了能使用 GROUP BY 子句分组数据外,还可以使用 HAVING 子句过滤分组,在结果集中规定了包含哪些分组和排除哪些分组。

    语法格式如下:

    HAVING <条件>

    <条件>指的是指定的过滤条件。

    HAVING 子句和 WHERE 子句非常相似,HAVING 子句支持 WHERE 子句中所有的操作符和语法,但是两者存在几点差异:

    • WHERE 子句主要用于过滤数据行,而 HAVING 子句主要用于过滤分组,即 HAVING 子句基于分组的聚合值而不是特定行的值来过滤数据,主要用来过滤分组。
    • WHERE 子句不可以包含聚合函数,HAVING 子句中的条件可以包含聚合函数。
    • HAVING 子句是在数据分组后进行过滤,WHERE 子句会在数据分组前进行过滤。WHERE 子句排除的行不包含在分组中,可能会影响 HAVING 子句基于这些值过滤掉的分组。

    REGEXP正则表达式查询

    MySQL中正式表达式通常被用来检索或替换符合某个模式的文本内容,根据指定的匹配模式匹配文中符合要求的特殊字符串。

    REGEXP 操作符中常用的匹配列表

    选项说明例子匹配值示例
    ^ 匹配文本的开始字符 '^b' 匹配以字母 b 开头 的字符串 book、big、banana、 bike
    $ 匹配文本的结束字符 'st$’ 匹配以 st 结尾的字 符串 test、resist、persist
    . 匹配任何单个字符 'b.t’ 匹配任何 b 和 t 之间有一个字符 bit、bat、but、bite
    * 匹配零个或多个在它前面的字 符 'f*n’ 匹配字符 n 前面有 任意个字符 f fn、fan、faan、abcn
    + 匹配前面的字符 1 次或多次 'ba+’ 匹配以 b 开头,后 面至少紧跟一个 a ba、bay、bare、battle
    <字符串> 匹配包含指定字符的文本 'fa’ fan、afa、faad
    [字符集合] 匹配字符集合中的任何一个字 符 '[xz]'匹配 x 或者 z dizzy、zebra、x-ray、 extra
    [^] 匹配不在括号中的任何字符 '[^abc]’ 匹配任何不包 含 a、b 或 c 的字符串 desk、fox、f8ke
    字符串{n,} 匹配前面的字符串至少 n 次 b{2} 匹配 2 个或更多 的 b bbb、 bbbb、 bbbbbbb
    字符串
    {n,m}
    匹配前面的字符串至少 n 次, 至多 m 次 b{2,4} 匹配最少 2 个, 最多 4 个 b bbb、 bbbb
    语法格式:
    SELECT * FROM <表名>WHERE <字段> REGEXP '[正则表达式]';






  • 相关阅读:
    ASP.NETRazor注解 @section Scripts{}的使用
    JavaScript快速查找节点
    JavaScript快速查找节点
    javascript中offsetWidth、clientWidth、width、scrollWidth、clientX、screenX、offsetX、pageX
    javascript中offsetWidth、clientWidth、width、scrollWidth、clientX、screenX、offsetX、pageX
    JavaScript substr() 方法
    JavaScript substr() 方法
    5月面试了120多人后,我们总结了6点问题
    5月面试了120多人后,我们总结了6点问题
    Math.floor() 返回小于或等于一个给定数字的最大整数。
  • 原文地址:https://www.cnblogs.com/aikutao/p/11208904.html
Copyright © 2011-2022 走看看