MySQL之DQL操作

DQL操作

  1. 语法格式

    SELECT
      [ALL|DISTINCT]
      <目标列的表达式1> [别名],
      <目标列的表达式2> [别名]……
    FROM <表名或视图名> [别名], <表名或视图名> [别名]……
    [WHERE<条件表达式>]
    [GROUP BY <列名>
    [HAVING <条件表达式>]]
    [ORDER BY <列名> [asc|desc]]
    [limit <数字或者列表>];
  2. 简化版语法

    SELECT *| 列名 FROM 表 WHERE 条件
  3. 运算符

    1. 算数运算符
      算数运算符说明
      +加法运算
      -减法运算
      *乘法运算
      / 或 DIV除法运算,返回商
      % 或MOD求余运算,返回余数
    2. 比较运算符
      比较运算符说明
      =等于
      (<) 和 (<=)小于和小于等于
      (>) 和 (>=)大于和大于等于
      <=>完全的等于,两个操作码均为NULL时,其所得值为1;而当一个操作码为NULL时,其所得值为0
      <> 或 !=不等于
      IS NULL 或 ISNULL判断一个值是否为NULL
      IS NOT NULL判断一个值是否不为NULL
      LEAST当有两个或多个参数时,返回最小值,如果有一个值为NULL,结果为NULL
      GEREATEST当有两个或多个参数时,返回最大值,如果有一个值为NULL,结果为NULL
      BETWEEN AND判断一个值是否落在两个值之间
      IN判断一个值是IN列表中的任意一个值
      NOT IN判断一个值不是IN列表中的任意一个值
      LIKE通配符匹配
      REGEXP正则表达式匹配

      LIKE模糊查询的标识含义

      标识含义
      %标识零个或多个字符的任意字符串
      _(下划线)表示任何单个字符
      []表示指定范围或集合中的任何单个字符
      [^]不属于指定范围或集合的任何单个字符
      *它同于DOS命令中的通配符,代表多个字符
      ?同于DOS命令中的?通配符,代表单个字符
      #代表单个数字
      [!]排除,它只代表单个字符
    3. 逻辑运算符
      逻辑运算符说明
      NOT 或 !逻辑非
      AND 或 &&逻辑与
      OR 或 ||逻辑或
      XOR逻辑异或
    4. 位运算符
      位运算符说明
      |按位或
      &按位与
      ^按位异或
      (<<)按位左移
      (>>)按位右移
      ~按位取反,反转所有比特

      位运算符是在二进制数上进行计算的运算符。位运算会先将操作数变成二进制数,进行位运算。然后再将计算结果从二进制数变回十进制数。

  4. 排序查询

    1. 介绍

      如果我们需要对读取的数据进行排序,我们就可以使用MySQL的order by子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。

    2. 语法
      SELECT
        字段名1, 字段名2, ……
      FROM 表名
      ORDER BY 字段名1 [asc|desc], 字段名2[asc|desc]……
    3. 特点
      1. asc代表升序, desc代表降序,如果不写默认升序

      2. order by用于子句中可以支持单个字段,多个字段,表达式,函数,别名

      3. order by子句,放在查询语句的最后面。LIMIT子句除外

  5. 聚合查询

    1. 介绍

      之前我们做的查询都是横向查询,它们都是根据条件一行一行的进行判断,而使用聚合函数查询是纵向查询,它是对一列的值进行计算,然后返回一个单一的值;另外聚合函数会忽略空值。

      聚合函数作用
      count()统计指定列不为NULL的记录行数
      sum()计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0
      max()计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算
      min()计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算
      avg()计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0
    2. NULL值的处理
      1. count函数对NULL值的处理:

        如果count函数的参数为星号(*), 则统计所有记录的个数。而如果参数为某字段,不统计含NULL值的记录个数。

      2. sum和avg函数对NULL值的处理;

        这两个函数忽略NULL值的存在,就好像该记录不存在一样。

      3. max和min函数对NULL值的处理:

        max和min两个函数同样忽略NULL值的存在。

  6. 分组查询

    1. 介绍

      分组查询是指使用group by字句对查询信息进行分组。

    2. 语法
      SELECT 字段1, 字段2…… FROM 表名 GROUP BY 分组字段 HAVING 分组条件;

      如果要进行分组的话,则SELECT子句之后,只能出现分组的字段和统计函数,其他的字段不能出现。

    3. 条件筛选——having
      1. 分组之后对统计结果进行筛选的话必须使用HAVING,不能使用WHERE

      2. WHERE子句用来筛选FROM子句中指定的操作所产生的行

      3. GROUP BY子句用来分组WHERE子句的输出

      4. HAVING子句用来从分组的觉果中筛选行

  7. 分页查询

    1. 介绍

      分页查询在项目开发中常见,由于数据量很大,显示屏长度有限,因此对数据需要采取分页显示方式。

    2. 语法
      -- 方式1 显示前n条
      SELECT 字段1, 字段2…… FROM 表名 LIMIT n
      ​
      -- 方式2 分页显示
      SELECT 字段1, 字段2…… FROM 表名 LIMIT m, n
      m:整数,表示从第几条索引开始,计算方式(当前页-1)* 每页显示条数
      n:整数,表示查询多少条数据
  8. INSERT INTO SELECT语句

    1. 介绍

      将一张表的数据导入到另一张表中,可以使用INSERT INTO SELECT语句。

    2. 语法
      INSERT INTO Table2(field1, field2, ……) SELECT value1, value2, …… FROM Table1
      或者:
      INSERT INTO Table2 SELECT * FROM Table1

      要求目标表Table2必须存在

  9. 正则表达式

    1. 介绍

      正则表达式(regular expression)表述了一种字符串匹配的规则,正则表达式本身就是一个字符串,使用这个字符串来描述、用来定义匹配规则,匹配一系列符合某个句法规则的字符串。在开发中,正则表达式通常用来检索、替换那些符合某个规则的文本

      MySQL通过REGEXP关键字支持正则表达式进行字符串匹配。

    2. 格式
      模式描述
      .匹配任意单个字符
      ^匹配字符串的开头
      $匹配字符的末尾
      *匹配前一个元字符0到多次
      +匹配前一个元字符1到多次
      ?匹配前一个元字符0到1次
      {m}匹配前一个字符m次
      {m,}匹配前一个字符m次到多次
      {m, n}匹配前一个字符m到n次
      {m, n}?匹配前一个字符m到n次,并且取尽可能少的情况
      \ \对特殊字符进行转义
      []一个字符的集合,可匹配其中任意一个字符
      |逻辑表达式”或者“,比如a|b代表可匹配a或者b
      (...)被括起来的表达式作为一个元组。findall()在有组的情况下只显示组的内容
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值