SQL的基础学习:二、数据的过滤
数据的过滤
- 过滤数据
- 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的基础学习:二、数据的过滤相关推荐
- 大数据基础学习二:在VMware虚拟机上安装Ubuntu完整步骤及需要注意的问题(以VMware Workstation 15.1.0 Pro和Ubuntu18.04.3优麒麟版为例)
大数据基础学习二:在VMware虚拟机上安装Ubuntu完整步骤及需要注意的问题 (以VMware Workstation 15.1.0 Pro for Windows和Ubuntu18.04.3优麒 ...
- mysql用创建的用户登陆并修改表格_MySQL 基础学习二:创建一个用户表,并增删改查...
MySQL 基础学习二:创建一个用户表,并 增删改查 提示:MySQL 命令建议都用大写,因为小写运行时,还是翻译成大写的. 第一步,创建一个用户表 1,打开控制台,进入数据库 C:\Users\Ad ...
- SQL零基础学习笔记(一)
真的不知道我写了这么多不同的的学习笔记又没用..开始SQL零基础学习笔记 百度百科:SQL(Structured Query Language)结构化查询语言,是一种数据库查询和程序设计语言,用于存取 ...
- 推荐零基础学习大数据的10本经典图书
学习大数据并不是一蹴而就的事情,及时工作多年的开发工程师都需要不断的补充新鲜的知识内容.目前学习大数据知识可以通过视频和图书两种方式学习,视频的优势在于能够将老师的个人开发经验传授给学习者,而图书的优 ...
- python pyramid基础学习二
python pyramid基础学习二 1.前言 前面我们使用了基础命令创建pyramid项目,并运行了Hello word,万事开头难,我们知道了开发pyramid项目需要一个env文件夹,里面包 ...
- Verilog基础学习二
Verilog基础学习二 文章目录 Verilog基础学习二 一.always 块 1.阻塞性赋值和非阻塞性赋值 二.条件语句 1.if 语句 基本用法 2.避免引入锁存器 3.case 语句 4.c ...
- 零基础学习大数据人工智能,学习路线篇!
大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后. Python:Python 的排名从去年开始就借助人工智能持续上升,现在它 ...
- python大数据零基础_零基础学习大数据人工智能,学习路线篇!
大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后. Python:Python 的排名从去年开始就借助人工智能持续上升,现在它 ...
- 0基础学习大数据你需要了解的学习路线和方向
现在大数据这么火,各行各业想转行大数据,那么问题来了,该往哪方面发展,哪方面最适合自己? 首先从字面来了解一下大数据 大数据 (巨量数据集合(IT行业术语)) 大数据(big data),指无法在一定 ...
最新文章
- 一道Python面试题,据说大部分人都中招了,纷纷开始怀疑自己
- mybatis查询时间段sql语句
- java不等于正整数怎么输入_关于java:测试输入是否为正整数
- Linux零基础入学之1-1课程介绍了解RHEL7安装RHEL7
- 基于 Kubernetes 实践弹性的 CI/CD 系统
- 目标检测中的不平衡问题综述
- php手机网站底部导航代码,jQuery微信手机端底部弹出导航菜单列表代码
- 酷应用,这个小玩意为中国软件业趟出了一条新路
- 201671030119 唐盖强 实验十四 课程学习总结
- python实战项目
- 如何把word转成pdf格式以及如何从指定页开始设置页码技巧
- matlab成功安装libsvm后,运行程序仍报错“svmtrain has been removed”解决方法记录
- Action Unit到底是什么?
- DCDC基础(8)-- 同步BUCK芯片的电性能参数解读二
- Hackergame 2020
- 荣耀6x升级Android8省电,HONOR 荣耀 畅玩 6X 手机升级EMUI8.0,怎一个“爽”字了得?...
- 《超越平凡的平面设计: 版式设计原理与应用》目录 —导读
- CCR(Condition Code Register:条件代码寄存器)的作用
- 预告 | 锁定5.13,天翼物联数采产品发布会
- window下eslipse搭建django遇到的问题以及解决方法积累(持续更新)