zoukankan      html  css  js  c++  java
  • MySQL | 基本查询

    1、基础查询语句

    语法格式:

    SELECT {* | <字段列名>}
    [
          FROM <表1>,<表2>...
          [ WHERE <表达式>
          [ GROUP BY <group by definition>
          [ HAVING <expression> [{<operation> <expression>}... ]]
          [ ORDER BY <order by definition> ]
          [ LIMIT [ <offset>, ] <row count> ]
          ]]
    ]
    

    语法说明:

    • GROUP BY <字段>:如果显示查询出来的数据,并按照指定的字段分组。
    • ORDER BY <字段>:按什么样的顺序显示查询出来的数据
    • LIMIT:每次显示查询出来的数据条件

    1.1、使用"*"查询表中的全部内容

    语法格式:

    SELECT * FROM 表名;
    

    一般情况下,除非需要使用表中所有的字段数据,否则最好不要使用通配符"*"。

    1.2、查询表中指定的字段

    语法格式:

    SELECT <字段名1>,<字段名2>,... FROM <表名>;
    

    1.3、在查询时给表和字段设置别名

    语法格式:

    { <表名> | <列名> } [AS] <别名>
    

    语法说明:

    • AS:关键字为可选参数
    • 为表取别名时,要保证不能与数据库中的其他表的名称冲突

    1.4、使用DISTINCT关键字去除结果中的重复行

    语法格式:

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

    1.5、使用LIMIT关键字指定查询结果的行数

    语法格式:

    <LIMIT> [<位置偏移量>,] <行数>
    

    语法说明:

    • 位置偏移量:指示从哪一行开始显示,是一个可选参数,如果不指定"位置偏移量",将从第一天记录开始
    • 行数:返回的记录条数

    1.6、使用ORDER BY对查询结果进行排序

    语法格式:

    ORDER BY { <列名> | <表达式> | <位置> } [ ASC | DESC ]
    

    语法说明:

    • <列名>:指定用于排序的列,可以指定多个列,列名之间用逗号分隔
    • <表达式>:指定用于排序的表达式
    • <位置>:指定用于排序的列在SELECT语句结果集中的位置
    • ASC:关键字,表示按升序分组,默认值
    • DESC:关键字,表示按降序分组

    2、带WHERE关键字的子查询

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

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

    2.1、常用的运算符

    2.1.1、比较运算符

    比较运算符 说明
    = 等于
    < 小于
    <= 小于等于
    > 大于
    >= 大于等于
    <=> 安全的等于,不会返回UNKNOWN
    <>或!= 不等于
    IS NULL或ISNULL 判定一个值是否为NULL
    IS NOT NULL 判定一个值是否不为NULL
    LEAST 当有两个或多个参数时,返回最小值
    GREATEST 当有两个或多个参数时,返回最大值
    BETWEEN AND 判定一个值是否在另外两个值之间
    IN 判定一个值是IN列表中的任意一个值
    NOT IN 判定一个值不是IN列表中的任意一个值
    LIKE 通配符匹配
    REGEXP 正则表达式匹配

    2.1.2、算术运算符

    算术运算符 说明
    + 加法运算
    - 减法运算
    * 乘法运算
    / 除法运算
    % 求余运算

    2.1.3、逻辑运算符

    逻辑运算符 说明
    NOT或者! 逻辑非
    AND或者&& 逻辑与
    OR或者`
    XOR 逻辑异或

    2.1.4、位运算符

    位运算符 说明
    ` `
    & 按位与
    ^ 按位异或
    << 按位左移
    >> 按位右移
    ~ 按位取反,反转所有比特

    2.1.5、运算符优先级

    2.2、单条件的查询语句

    案例:查询姓名为“Green”的学生信息

    案例:查询年龄小于23岁的学生信息

    2.3、多条件的查询语句

    使用SELECT查询时,在WHERE子句中使用AND连接两个甚至多个查询条件。
    案例:查询年龄小于23岁,性别为女的学生信息

    案例:查询age大于21,height大于等于175的学生信息

    2.4、使用LIKE的模糊查询

    语法格式:

    <表达式> [NOT] LIKE <表达式>
    

    字符串匹配是一种模式匹配,使用运算符LIKE设置过滤条件,过滤条件使用通配符进行匹配运算,而不是判断是否相等进行比较。MySQL支持的通配符:百分号(%):匹配任何字符串、下划线(_):只匹配单个字符

    案例:查询姓名以"J"开头的学生信息

    案例:查询所有姓名中包含"e"字母的学生信息

    案例:查询姓名由3个字母组成的学生信息

    2.5、使用BETWEEN AND的范围查询

    BETWEEN AND用来查询某个范围内的值,该操作符需要两个参数,即范围的开始值和结算值。
    案例:查询login_date在2015-09-10和2016-01-15之前的学生信息

  • 相关阅读:
    最大生成树与最小生成树
    有限制的最短路spfa+优先队列
    KM算法(最优匹配)
    网络最大流解方程组
    网络费用流-最小k路径覆盖
    树链剖分-点的分治(点数为k且距离最长的点对)
    树链剖分-点的分治(链的点的个数为k的点对数)
    树链剖分-点的分治(dis[i]+dis[j]==k的点对数量)
    树链剖分-点的分治(dis[i]+dis[j]<=k的点对数量)
    无向图欧拉通路
  • 原文地址:https://www.cnblogs.com/Cyzhouke/p/13737307.html
Copyright © 2011-2022 走看看