MySQL过滤

MySQL过滤

  • SQL中的查询语句主要依赖于select语句实现
    • 有如下例子
      • 检索单个列
        • SELECT prod_name FROM products;
        • 一般情况下将SQL关键词大写,对所有列名,表名小写,使代码便于阅读和调试
        • SQL 语句不区分大小写,但是表名、列名区分大小写
        • SQL 语句中的空格都被忽略掉
      • 检索多个列
        • 也是使用SELECT语句,不同的列名用逗号隔开
        • SELECT prod_name, prod_name, prod_price FROM products
      • 检索所有列
        • SELECT * FROM products
      • 检索列并返回唯一值
        • 在SELECT后加上DISTINCT关键词,可以剔除重复行,只留下一个
        • SELECT DISTINCT vend_id FROM products;
      • 限制结果
        • SELECT prod_name FROM products LIMIT 5;
        • 返回prod_name的列,返回不超过五行
        • SQL中的第一行 起始值也为0
          • SELECT prod_name FROM products LIMIT 5, 5; # 第一个数字为开始行数,第二个数字为检索行数
          • 表示从第五行开始,选择5行
      • 完全限定表名
        • SELECT products.prod_name FROM products;
!!子句!!
  • SQL语句由子句构成,有些子句是必须的,有些可选,SELECT FROM 就是一个子句,可以实现一个功能

排序查询

  • 排序子句
    • ORDER BY
      * SELECT prod_name FROM products ORDER BY prod_name
      * 这里也可以通过非选择列进行排序

    • 按多个列排序

      • SELECT prod_id, prod_price, prod_name FROM products ORDER BY prod_price, prod_name;
      • 联合排序是按照顺序进行的,先使用prod_price进行排序,如果prod_price中出现多个相同值,才使用prod_name进行排序

过滤数据

  • WHERE子句过滤

  • WHERE 与 SELECT 联合使用,在表名 FROM 之后给出

    • SELECT prod_name, prod_price FROM products WHERE prod_price =2.5;

    • ORDER BY 和 WHERE子句时,应该让 ORDER BY位于 WHERE之后,否则就会产生错误

    • WHERE 操作符

    • 符号说明
      =等于
      <>不等于
      !=不等于
      <小于
      <=小于等于
      >大于
      >=大于等于
      BETWEEN在指定两个值之间
    • 范围值检查

      • SELECT prod_name, prod_price
        FROM products
        WHERE prod_price BETWEEN 5 AND 10
      • 数据库筛选实例
        • SELECT O3 FROM envitable WHEREdatetime BETWEEN “2018-06-01 00:00:00” AND "2018-06-31 23:00:00"AND stationcode= 21010096;
    • 空值检查

    • IS NULL 与SELECT结合可以检查NULL

      • SELECT prod_name FROM products WHERE prod_price IS NULL
  • WHERE子句组合

    • MySQL与匈奴可以给出多个WHERE子句,以AND 或者 OR子句的方式使用

      • AND操作符
        • SELECT prod_id, prod_price, prod_name
          FROM products
          WHERE vend_id = 1003 AND prod_price <= 10;
        • 多个过滤条件在后边在使用一个AND即可
      • OR操作符
        • SELECT prod_name, prod_price
          FROM products
          WHERE vend_id = 1002 OR vend_id = 1003;
    • 计算次序

      • SELECT prod_name, prod_price
        FROM products
        WHERE vend_id = 1002 OR vend_id = 1003 AND prod_price >=10;
      • 上述语句的执行次序为 先执行 AND语句 再执行 OR,即:先 vend_id = 1003 AND prod_price >=10 之后将 AND 执行结果与 OR vend_id = 1002 结合
      • 使用小括号可以消除执行顺序歧义
      • SELECT prod_name, prod_price
        FROM products
        WHERE (vend_id = 1002 OR vend_id = 1003) AND prod_price >= 10;
    • IN操作符

      • IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配,IN中的合法值由逗号分隔
      • SELECT prod_name, prod_price
        FROM products
        WHERE vend_id IN (1002,1003)
        ORDER BY prod_name;
    • NOT操作符

      • 否定 NOT后边的每一个条件
      • SELECT prod_name, prod_price
        FROM products
        WHERE vend_id NOT IN (1002, 1003)
        ORDER BY prod_name
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值