过滤检索——使用where子句指定搜索条件

基本where子句

  • where子句操作符
    =(等于),<>(不等于),!=(不等于),<(小于),<=(小于等于),>(大于),>=(大于等于),between a and b(在a和b之间);
select prod_name,prod_price
from products
where prod_price<10;
  • 检查空值
select prod_name
from products
where prod_name is NULL;

组合where子句

  • 使用逻辑操作符AND和OR
select prod_name,prod_price
from products
where vend_id=1002 or vend_id=1003 and prod_price>=10;//优先处理and
  • 使用IN操作符
select prod_name,prod_price
from products
where vend_id in (1002,1003)//相当于OR
order by prod_name;
  • 使用NOT操作符
    NOT用来否定后面的条件
select prod_name,prod_price
from products
where vend_id not in (1002,1003)
order by prod_name;

使用通配符进行过滤

  • 通配符(wildcard):用来匹配值得特殊字符
  • 搜索模式(search pattern):由字面值、通配符或两者组合构成的搜索条件
  • 在搜索子句中使用通配符必须使用LIKE操作符
  • 常用通配符
  • ‘%’:表示任何字符出现任意次数(0次,1次或多次),不匹配NULL。‘jet%’表示以jet开头的字符(不区分大小写)。
select prod_id,prod_name
from products
where prod_name like '%anvil%';//表示文本中任意位置包含anvil
  • ‘_’:匹配单个字符
  • 通配符不可过度使用,使用期搜索比较慢
  • 将通配符置于搜索模式的开始处搜索起来最慢

使用正则表达式进行过滤

  • 正则表达式:用来匹配文本的特殊的串
  • 使用关键字REGEXP
  • 常用正则表达式
  • 关键字LIKE与REGEXP的区别:LIKE匹配整个列,REGEXP匹配列值,只要出现就匹配
select prod_name
from products
where prod_name like '1000';//没有返回
select prod_name
from products
where prod_name like '1000';//返回JetPack 1000
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.表中的任何列都可以作为主键, 只要它满足以下条件:任意两行都不具有相同的主键值;每一行都必须具有一个主键值( ...
    Cherryjs阅读 774评论 0 0
  • 前言 一、基础知识1.了解数据库数据库(database):保存有组织的数据的容器表(table):某种特定类型数...
    流水混帐阅读 529评论 0 1
  • 数据库入门 数据库: 保存有组织的数据的容器(通常是一个文件或一组文件).数据库软件应该称为 DBMS(DataB...
    Mjericho阅读 524评论 0 0
  • 第七章 数据过滤 7.1 组合WHERE子句 在第六章介绍的所有WHERE子句在过滤时,使用的都是单一的条件。为了...
    saviochen阅读 439评论 0 4
  • 过年在家的时候。总看到心玉妈跟我妈窃窃私语,脸上挂着浓浓的心事。 肯定又是什么家长里短的事儿,这不新鲜。我妈管着城...
    林四月阅读 310评论 0 1