1.大纲

  • WHERE - 学习如何使用WHERE子句根据指定的条件过滤行记录。
  • AND运算符 - 介绍如何使用AND运算符以组合布尔表达式以形成用于过滤数据的复杂条件。
  • OR运算符 - 介绍OR运算符,并展示如何将OR运算符与AND运算符组合以过滤数据。
  • IN运算符 - 学习如何在WHERE子句中使用IN运算符来确定值是否匹配列表或子查询中的指定值。
  • BETWEEN运算符 - 显示如何使用BETWEEN运算符来根据指定范围查询数据。
  • LIKE - 提供基于特定模式匹配查询数据的技术示例,以执行一些模糊查询。
  • LIMIT子句 - 使用LIMIT来限制SELECT语句返回的行数
  • IS NULL - 使用IS NULL运算符测试值是否为NULL

2.where

  WHERE子句允许根据指定的过滤表达式或条件来指定要选择的行。

  您还将学习如何使用LIMIT子句来限制SELECT语句返回的行数。

  即使WHERE子句出现在语句的末尾,但MySQL会首先使用WHERE子句中的表达式来选择匹配的行。

  MySQL从SELECT子句中的选择列表中选择列。

  可以像上面的查询一样形成一个简单的条件,或者是将多个表达式与逻辑运算符(如AND,OR等)组合在一起的一个非常复杂的例子。

二:AND

1.举例

      SELECT lastname, firstname, jobtitle FROM employees WHERE jobtitle = 'Sales Rep' AND officeCode = 1;

  

2.比较运算符

  

3.AND

  SELECT lastname, firstname, officeCode FROM employees WHERE officecode > 5;

  

4.表结构

  desc customers;

  

三:IN

1.IN

  运算符来确定指定列的值是否匹配列表中的值或子查询中的任何值。

  IN运算符允许您确定指定的值是否与列表中的值或子查询中的任何值匹配

  用法:

  SELECT
   column1,column2,...
  FROM
   table_name
  WHERE
   (expr|column_1) IN ('value1','value2',...);
 

  解释:

  可以在WHERE子句中与IN运算符一起使用,可使用列或表达式(expr)。
  列表中的值必须用逗号(,)分隔。
  IN操作符也可以用在其他语句(如INSERT,UPDATE,DELETE等)的WHERE子句中

 SELECT officeCode, city, phone, country FROM offices WHERE country IN ('USA' , 'France');

  

  也可以使用OR运算符执行得到与上面查询相同的结果

  SELECT officeCode, city, phone FROM offices WHERE country = 'USA' OR country = 'France';

  

  如果列表中有很多值,使用多个OR运算符则会构造一个非常长的语句。 因此,使用IN运算符则会缩短查询并使查询更易读。

2.NOT IN

  SELECT officeCode, city, phone FROM offices WHERE country NOT IN( 'USA', 'France');

  

3.IN与子查询

  IN运算符通常用于子查询。子查询不提供常量值列表,而是提供值列表。

  使用表:

  

  例如,如果要查找总金额大于60000的订单,则使用IN运算符查询如下所示:

  SELECT
   orderNumber, customerNumber, status, shippedDate
  FROM
   orders
  WHERE
   orderNumber IN (SELECT
   orderNumber
   FROM
   orderDetails
   GROUP BY orderNumber
   HAVING SUM(quantityOrdered * priceEach) > 60000);

  

  重要的是group by后,再根据分组的结果进行sum聚合。

四:Between

1.between

  BETWEEN运算符允许指定要测试的值范围

  SELECT
   productCode, productName, buyPrice
  FROM
   products
  WHERE
   buyPrice BETWEEN 90 AND 100;

  

  也可以通过使用大于或等于(>=)和小于或等于(<=)运算符来实现相同的结果。

  

2.NOT BETWEEN

  要查找购买价格不在20100(含20100)之间的产品,可将BETWEEN运算符与NOT运算符组合使用

  SELECT
   productCode, productName, buyPrice
  FROM
   products
  WHERE
   buyPrice NOT BETWEEN 20 AND 100;

  

3.Be't'ween与日期类型

  当使用BETWEEN运算符与日期类型值时,要获得最佳结果,应该使用类型转换将列或表达式的类型显式转换为DATE类型

  要查询获取所需日期(requiredDate)从2013-01-012013-01-31的所有订单

SELECT orderNumber,
requiredDate,
status
FROM orders
WHERE requireddate
BETWEEN CAST('2013-01-01' AS DATE)
AND CAST('2013-01-31' AS DATE);

  

  

五:LIKE

1.LIKE

  MySQL提供两个通配符,用于与LIKE运算符一起使用,它们分别是:百分比符号 - %和下划线 - _  

  百分比(%)通配符允许匹配任何字符串的零个或多个字符。
  下划线(_)通配符允许匹配任何单个字符。

2.NOT与like语句

  MySQL允许将NOT运算符与LIKE运算符组合,以找到不匹配特定模式的字符串。

  SELECT
   employeeNumber, lastName, firstName
  FROM
   employees
  WHERE
   lastName NOT LIKE 'B%';

  

3.like与escape

  有时想要匹配的模式包含通配符,例如10%_20等这样的字符串时。在这种情况下,您可以使用ESCAPE子句指定转义字符,以便MySQL将通配符解释为文字字符。如果未明确指定转义字符,则反斜杠字符\是默认转义字符。

SELECT
productCode, productName
FROM
products
WHERE
productCode LIKE '%\_20%';

  

  也可以使用ESCAPE子句指定一个不同的转义字符,例如$: 

SELECT
productCode, productName
FROM
products
WHERE
productCode LIKE '%$_20%' ESCAPE '$';

  

六:LIMIT

1.LIMIT

  在SELECT语句中使用LIMIT子句来约束结果集中的行数。LIMIT子句接受一个或两个参数。两个参数的值必须为零或正整数

  语法:

  

  当您使用带有一个参数的LIMIT子句时,此参数将用于确定从结果集的开头返回的最大行数。

2.与order by一起使用

  找到倒数5个的值。

SELECT customernumber, customername, creditlimit
FROM customers
ORDER BY creditlimit DESC
LIMIT 5;

  

  找出结果集中价格第二高的产品。可以使用LIMIT子句来选择第二行,如以下查询(注意:偏移量从0开始,所以要指定从1开始,然后取一行记录):

  

 

 

												

mysql过滤数据的更多相关文章

  1. MySQL 过滤数据(WHERE子句)

    WHERE子句操作符 从表products中检索prod_name,prod_price列,返回prod_price=2.5的行 mysql> SELECT  prod_name, prod_p ...

  2. 《MySQL必知必会》过滤数据,数据过滤(where ,in ,null ,not)

    <MySQL必知必会>过滤数据,数据过滤 1.过滤数据 1.1 使用 where 子句 在SEL ECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤. WHERE子句在表名(FR ...

  3. 【MySQL】使用WHERE子句 - 过滤数据

    第6章 过滤数据 文章目录 第6章 过滤数据 1.使用WHERE子句 2.WHERE子句操作符 2.1.检查单个值 2.2.不匹配检查 2.3.范围值检查 2.4.空值检查 3.小结 简单记录 - M ...

  4. mysql必知必会(四、检索数据,五、排序检索数据,六、过滤数据,七、数据过滤)

    四.select语句 1.检索单个列 select prod_name from products; 2.检索多个列 select prod_name, prod_price from product ...

  5. MySQL学习笔记(二)——检索数据与过滤数据

    检索数据和过滤数据也就是平时用到最多的增删改查里面的查了. 一.数据检索 检索单个列: select column from table; 检索多个列:     select colunm1,colu ...

  6. MySQL:基础—数据分组

    MySQL:基础-数据分组 1.为什么要分组: 比如一个表中有多条订单记录,如上图,每条记录对应着一个商品,现在我要查询 每个商品被订购的单数 准备出货?也就是找到每个商品被订购的数量. 如果只找一个 ...

  7. MySQL查询数据表中数据记录(包括多表查询)

    MySQL查询数据表中数据记录(包括多表查询) 在MySQL中创建数据库的目的是为了使用其中的数据. 使用select查询语句可以从数据库中把数据查询出来. select语句的语法格式如下: sele ...

  8. MySQL 误删数据、误更新数据(update,delete忘加where条件)

    MySQL 误操作后数据恢复(update,delete忘加where条件) 关键词:mysql误删数据,mysql误更新数据 转自:https://www.cnblogs.com/gomysql/p ...

  9. 数据仓库:Mysql大量数据快速导出

    背景 写这篇文章主要是介绍一下我做数据仓库ETL同步的过程中遇到的一些有意思的内容和提升程序运行效率的过程. 关系型数据库: 项目初期:游戏的运营数据比较轻量,相关的运营数据是通过Java后台程序聚合 ...

随机推荐

  1. 【bzoj1044】木棍分割

    Description 有n根木棍, 第i根木棍的长度为Li,n根木棍依次连结了一起, 总共有n-1个连接处. 现在允许你最多砍断m个连接处, 砍完后n根木棍被分成了很多段,要求满足总长度最大的一段长 ...

  2. 结合NTLM中继和Kerberos委派攻击AD

    0x00 前言 在上个月我深入演讲了无约束委派之后,本文将讨论一种不同类型的Kerberos委派:基于资源的约束委派.本文的内容基于Elad Shamir的Kerberos研究,并结合我自己的NTLM ...

  3. MFC:ID命名和数字约定

    今天早上双击一个刚刚编译完成的应用程序,界面刚刚显示,又自动触发了一个菜单事件,打开了一个网页.真的很意外.关闭窗口,再次双击,又自动打开了一个网页,再关闭,再双击,又不自动打开网页了.这是什么情况? ...

  4. Hadoop生态圈-Flume的主流Sinks源配置

    Hadoop生态圈-Flume的主流Sinks源配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客只是配置的是Flume主流的Sinks,想要了解更详细的配置信息请参考官 ...

  5. 鸟哥的Linux私房菜——第十五章:正规表示法

    视频链接 B站:http://www.bilibili.com/video/av10364761/ 目录如下 1. 前言:2. 基础正规表示法:2.1 以 grep 撷取字符串 (grep -iv   ...

  6. python---补充django中文报错(1),Django2.7使用sys.setdefaultencoding('utf-8'),以及使用reload(sys)原因

    SyntaxError at /blog/ news/story Non-ASCII character , but no encoding declared; see http://python.o ...

  7. SQL记录-PLSQL游标

    PL/SQL游标 Oracle会创建一个存储区域,被称为上下文区域,用于处理SQL语句,其中包含需要处理的语句,例如所有的信息,行数处理,等等. 游标是指向这一上下文的区域. PL/SQL通过控制光标 ...

  8. SQL记录-PLSQL-DBMS输出

    PL/SQL DBMS输出   DBMS_OUTPUT是一个内置的软件包,能够显示输出显示调试信息,并从PL/ SQL块,子程序,包和触发器发送消息.我们已经使用这个包在我们所有的教程中. 让我们来看 ...

  9. JD m站自我解析理解

    第一步:从首页着手 文档部分:应用的是H5默认文档开头 即:<!DOCUMENT html> head部分:放了一些相关的JS,title描述,然后就是meta表述了.比较有参考的如下 & ...

  10. 经典设计模式-iOS的实现

    最近看了<HeadFirst 设计模式>这本书,给组内伙伴准备一次分享,把这次分享记录下来,有需要的可以看看. 这本书主要介绍了四人帮23种经典设计模式中的的14种,也是常用的几种.看完这 ...