数据的过滤

  • 过滤数据
    • 1.普通过滤
      • 1.使用where子句
      • 2.where子句操作符
    • 2.高级过滤
      • 组合WHERE 子句(AND、OR、IN、NOT)
    • 3.用通配符进行过滤-LIKE的使用
  • 总结

过滤数据

我们一般的需求是需要从庞大的数据库里筛选我们需要的数据,这时候就需要使用过滤数据环节:

1.普通过滤

1.使用where子句

在where子句中指定搜索条件,进行筛选数据
代码如下(示例):

select * from Products where prod_price = 1000;

2.where子句操作符

备注:1.对于空值的定义:在创建表时,表设计人员可以指定其中的列是否可以不包含值。在一个列不包含值时,称其为包含空值NULL。NULL 无值(no value),它与字段包含0、空字符串或仅仅包含空格不同。
代码如下(示例):

/*筛选产品价格大于等于500的产品信息*/
select * from Products where prod_price >= 500;
/*筛选产品不是Rolls-Royce.A.C公司的产品信息*/
select * from Products where VEND_ID <> 'Rolls-Royce.A.C';
/*筛选产品价格在500-1000的产品信息 结果为全表 相当于 >=500 or <=100*/
select * from Products where prod_price between 500 and 1000;/*结果为全表 相当于 >=500 or <=100*/
/*筛选产品价非空的产品名称信息*/
SELECT prod_nam FROM Products WHERE prod_price IS not NULL;

2.高级过滤

本部门会学习逻辑运算符AND和OR,还有NOT和IN操作

组合WHERE 子句(AND、OR、IN、NOT)

为了进行更强的过滤控制,SQL允许给出多个WHERE子句。这些子句可以两种方式使用,即∶ 以AND子句的方式或OR子句的方式使用。
操作符(operator) 用来联结或改变WHERE子句中的子句的关键字。也称为逻辑操作符(logical operator)。
1.AND操作符:AND连接的两个条件是“且”的关系,即两个条件需要同时满足的数据才可。

2.OR操作符:OR连接的两个条件是“或”的关系,即两个条件只需要满足一个即可。

3.IN操作符:IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。IN取合法值的由逗号分隔的清单,全都括在圆括号中如 prod_name IN(‘RR007’,‘BZ002’):筛选prod_nameRR007,BZ002的产品信息。

4.NOT操作符:NOT操作符有且只有一个功能,那就是否定它之后所跟的任何条件。

/*1.AND 操作符的使用*/
/* 筛选厂家是劳斯莱斯且价格大于等于1100的产品信息 */
select * from products where vend_id = 'Rolls-Royce.A.C' and prod_price >= 1100;/*2.OR 操作符的使用 */
/* 筛选厂家是劳斯莱斯 或是 价格大于等于1100的产品信息 */
select * from products where vend_id = 'Rolls-Royce.A.C' or prod_price >= 1100/*3.AND、OR的次序问题*/
/* 筛选价格在1100以上且厂家由劳斯莱斯或者布加迪生产的产品信息
对比以下两个语句 运行结果看看哪一个才是正确的结果*/
/*语句3.1*/
select * from products where prod_price >= 1100 and vend_id = 'Rolls-Royce.A.C' or vend_id = 'Bugatti-Veyron.A.C';
/*语句3.2*/
select * from products where prod_price >= 1100 and (vend_id = 'Rolls-Royce.A.C' or vend_id = 'Bugatti-Veyron.A.C');/*4.IN 操作符的使用 */
/* 筛选厂家是劳斯莱斯或者布加迪的产品信息 */
select * from products where vend_id in ('Rolls-Royce.A.C','Bugatti-Veyron.A.C');/*5.NOT 操作符的使用 */
/* 筛选厂家是劳斯莱斯或者布加迪的产品信息 */
select * from products where vend_id not in ('Rolls-Royce.A.C','Bugatti-Veyron.A.C');

通过3.1和3.21的结果,我们来探究and 和 or的使用顺序问题

3.1结果
3.2结果

对比看,我们想要的数据是筛选 价格在1100以上且厂家由劳斯莱斯或者布加迪生产的产品信息,而3.1出现了小于1100的价格?
原因在于次序,SOL(像多数语言一样)在处理OR操作符前,优先处理AND操作符。3.1的sql语句等价于…where (prod_price >= 1100 and vend_id = ‘Rolls-Royce.A.C’) or vend_id = ‘Bugatti-Veyron.A.C’,这个时候就显示括号的重要性了,and和or连用时候,一定要注意次序问题,同时注意括号的正确使用。

3.用通配符进行过滤-LIKE的使用

普通过滤和高级过滤用到的都是准确的筛选条件,如果是模糊的条件呢?如筛选入门级的车的相关信息?这时候就需要LIKE的登场了∶

1.百分号(%)通配符:%示任何字符出现任意次数。

2.下划线(_)通配符:下划线的用途与%样,但下划线只匹配单个字符而不是多个字符。

3.方括号([ ])通配符:方括号([ ])通配符用来指定一个字符集,它必须匹配指定位置(通配符的位置)的一个字符。

代码如下(示例):

/*3.1 %的使用*/
/*筛选 入门级的跑车信息*/
select * from Products where prod_desc like '入门级%';/*3.2 _的使用*/
/*筛选 00系列的跑车信息*/
select * from Products where prod_name like '%00_';/*3.3 []的使用*/
/*筛选 生产厂家是R或者B开头的跑车相关信息*/
select * from Products where vend_id like '[RB]%';
/*筛选 生产厂家不是R或者B开头的跑车相关信息*/
select * from Products where vend_id like '[^RB]%';

总结

今日的筛选数据就到这来,目前的学习内容都还比较基础,其实关于模糊查询还有更高级的用法,如正则表达式的使用,筛选更加细致和精确,感兴趣和了解的同学可以深入。
ORACLE中的支持正则表达式的函数主要有下面四个REGEXP_LIKE (与LIKE的功能相似)、REGEXP_INSTR (与INSTR的功能相似)REGEXP_SUBSTR (与SUBSTR的功能相似)REGEXP_REPLACE (与REPLACE的功能相似),又是上班划水的一天
ヾ(◍°∇°◍)ノ゙冲啊!

SQL的基础学习:二、数据的过滤相关推荐

  1. 大数据基础学习二:在VMware虚拟机上安装Ubuntu完整步骤及需要注意的问题(以VMware Workstation 15.1.0 Pro和Ubuntu18.04.3优麒麟版为例)

    大数据基础学习二:在VMware虚拟机上安装Ubuntu完整步骤及需要注意的问题 (以VMware Workstation 15.1.0 Pro for Windows和Ubuntu18.04.3优麒 ...

  2. mysql用创建的用户登陆并修改表格_MySQL 基础学习二:创建一个用户表,并增删改查...

    MySQL 基础学习二:创建一个用户表,并 增删改查 提示:MySQL 命令建议都用大写,因为小写运行时,还是翻译成大写的. 第一步,创建一个用户表 1,打开控制台,进入数据库 C:\Users\Ad ...

  3. SQL零基础学习笔记(一)

    真的不知道我写了这么多不同的的学习笔记又没用..开始SQL零基础学习笔记 百度百科:SQL(Structured Query Language)结构化查询语言,是一种数据库查询和程序设计语言,用于存取 ...

  4. 推荐零基础学习大数据的10本经典图书

    学习大数据并不是一蹴而就的事情,及时工作多年的开发工程师都需要不断的补充新鲜的知识内容.目前学习大数据知识可以通过视频和图书两种方式学习,视频的优势在于能够将老师的个人开发经验传授给学习者,而图书的优 ...

  5. python pyramid基础学习二

    python pyramid基础学习二 1.前言 前面我们使用了基础命令创建pyramid项目,并运行了Hello word,万事开头难,我们知道了开发pyramid项目需要一个env文件夹,里面包 ...

  6. Verilog基础学习二

    Verilog基础学习二 文章目录 Verilog基础学习二 一.always 块 1.阻塞性赋值和非阻塞性赋值 二.条件语句 1.if 语句 基本用法 2.避免引入锁存器 3.case 语句 4.c ...

  7. 零基础学习大数据人工智能,学习路线篇!

    大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后. Python:Python 的排名从去年开始就借助人工智能持续上升,现在它 ...

  8. python大数据零基础_零基础学习大数据人工智能,学习路线篇!

    大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后. Python:Python 的排名从去年开始就借助人工智能持续上升,现在它 ...

  9. 0基础学习大数据你需要了解的学习路线和方向

    现在大数据这么火,各行各业想转行大数据,那么问题来了,该往哪方面发展,哪方面最适合自己? 首先从字面来了解一下大数据 大数据 (巨量数据集合(IT行业术语)) 大数据(big data),指无法在一定 ...

最新文章

  1. 一道Python面试题,据说大部分人都中招了,纷纷开始怀疑自己
  2. mybatis查询时间段sql语句
  3. java不等于正整数怎么输入_关于java:测试输入是否为正整数
  4. Linux零基础入学之1-1课程介绍了解RHEL7安装RHEL7
  5. 基于 Kubernetes 实践弹性的 CI/CD 系统
  6. 目标检测中的不平衡问题综述
  7. php手机网站底部导航代码,jQuery微信手机端底部弹出导航菜单列表代码
  8. 酷应用,这个小玩意为中国软件业趟出了一条新路
  9. 201671030119 唐盖强 实验十四 课程学习总结
  10. python实战项目
  11. 如何把word转成pdf格式以及如何从指定页开始设置页码技巧
  12. matlab成功安装libsvm后,运行程序仍报错“svmtrain has been removed”解决方法记录
  13. Action Unit到底是什么?
  14. DCDC基础(8)-- 同步BUCK芯片的电性能参数解读二
  15. Hackergame 2020
  16. 荣耀6x升级Android8省电,HONOR 荣耀 畅玩 6X 手机升级EMUI8.0,怎一个“爽”字了得?...
  17. 《超越平凡的平面设计: 版式设计原理与应用》目录 —导读
  18. CCR(Condition Code Register:条件代码寄存器)的作用
  19. 预告 | 锁定5.13,天翼物联数采产品发布会
  20. window下eslipse搭建django遇到的问题以及解决方法积累(持续更新)

热门文章

  1. 男子不执行法院判决被强行腾房(组图)
  2. 意图网络-意图获取和转译
  3. 东写西读:《影响力》——人为什么犯贱
  4. hive 删除某个分区中部分数据
  5. html5游戏任务书,基于HTML5的智力游戏设计 毕业论文(设计).docx
  6. Inno Setup 安装前卸载原程序
  7. 【前端美团一面凉经】
  8. 代码分析栈(stack)的生长方向
  9. 【管理学】索奥管理培训--第一课:认知与定位
  10. 基于龙芯2K1000移植uboot之NAND