1、概要

在之前的简单查询中,是将所有的记录进行显示,但是现在可以对显示的记录进行过滤的操作,而这就属于限定查询的工作了,限定查询就是在之前语法的基础上增加了一个WHERE子句,用于指定限定条件

在使用 WHERE 子句操作的时候可以进行条件的判断,而对于条件的判断主要有以下几类操作

关系运算

>、=、<=、!=(<>)

范围判断

BETWEEN AND

判断是否为空

IS NULL

IS NOT NULL

指定范围的判断

IN

NOT IN

模糊查询

LIKE

NOT LIKE

2、语法格式

SELECT [DISTINCT] * | 列名 [别名] ,列名 [别名] , --3、 控制要显示的数据列

FROM 表名称 [别名] --1、 确定数据来源

[WHERE 条件(s)] ; -- 2、 根据判断条件选择参与的数据行

3、限定操作符

3.1、关系运算(>、=、<=、<>、!=)

3.1.1、等于(=)、不等于(!=或者<>)

查询出所有职位是办事员的雇员信息

1.错误的写法

SELECT *

FROM emp

WHERE job='clerk'(所有的数据都是区分大小写的)

2.正确的写法

SELECT *

FROM emp

WHERE job='CLERK'

查出员工工资不等于1500的员工信息

SELECT *

FROM EMP

WHERE sal !=1500;

查询所有职位不是销售人员的信息

SELECT *

FROM emp

WHERE job<>'SALESMAN' ;

3.1.2、小于

查询出基本工资不大于1500

SELECT *

FROM emp

WHERE sal <= 1500;

3.1.3、大于>、 大于等于>=

找出奖金高于工资的员工

SELECT *

FROM empWHERE comm>sal;

找出工资大于或等于3000的员工

SELECT ename ,sal

FROM emp

WHERE sal>=3000;

查询81年以后入职的员工所有信息

# Navicat中的写法:

SELECT *

FROM EMP

WHERE HIREDATE > date '1981-01-1'

# 或者

SELECT *

FROM EMP

WHERE HIREDATE > '1-1月-81';

3.2、逻辑运算(AND OR)

说明

在使用where 语句的时候可能会存在编写多个条件的情况,那这个时候就必须使用逻辑运算符了

语法格式

AND:条件 AND 条件 AND 条件; 所有条件都要同时满足

OR:条件 OR 条件 OR 条件;所有条件只要有一个满足即可

示例代码

1、查询工资在1500~3000之间的全部雇员信息

SELECT *

FROM emp

WHERE sal

>=1500 AND sal<=3000;

2、查询出职位是办事员(job='CLERK'),或者是销售人员(job='SALESMAN')的全部信息

SELECT *

FROM emp

WHERE job='CLERK' OR job='SALESMAN';

3、查询出职位是办事员(job='CLERK'),或者是销售人员(job='SALESMAN')的全部信息,并且要求这些雇员的工资大于1200

SELECT *

FROM emp

WHERE (job='CLERK' OR job='SALESMAN') AND sal>1200;

3.3、范围判断(BETWEEN AND)

说明

表示的是一个范围的判断过程

语法格式

BETWEEN 最小值 AND 最大值”,

示例代码

1、查出工资在1000~2000之间的员工

SELECT *

FROM emp

WHERE sal BETWEEN 1000 AND 2000;

2、查出在1985年1月20至1987年5月20之间入职的员工

SELECT *

FROM emp

WHERE hiredate BETWEEN '20-1月 -85' AND '20-5月 -87';

SELECT *

FROM emp

WHERE hiredate

BETWEEN '1985-01-01'

AND '1987-05-20';

3.4、判断是否为空(IS [NOT] NULL)

查询出所有领取奖金的雇员信息

SELECT *

FROM emp

WHERE comm IS NOT NULL;

SELECT *

FROM emp

WHERE NOT comm IS NULL;

查询出所有不领取奖金的雇员

SELECT *

FROM emp

WHERE comm IS NULL

3.5、指定范围的判断([NOT] IN)

说明

IN操作符表示的是指定一个查询的范围

语法格式

字段 IN (数值,数值,…)

示例代码

1、查询出雇员编号是7369、7566、7799的雇员信息

SELECT *

FROM emp

WHERE empno=7369 OR empno=7566 OR empno=7799

SELECT *

FROM emp

WHERE empno IN (7369,7566,7799);

2、查询出姓名为 SMITH,ALLEN,KING的雇员信息

SELECT *

FROM emp

WHERE ename in ('SMITH','ALLEN', 'KING');

3、查询出雇员编号不是7369、7566、7799的雇员信息

SELECT *

FROM emp

WHERE not empno IN (7369,7566,7799);

注意事项

关于NOT IN的问题

如果现在使用了IN操作符,查询的范围之中存在了null,不影响查询;

SELECT * FROM emp WHERE empno IN(7369,7566,null);

empno in (7369,7566,null)可以等价于empno=7369 or empno=7566 or empno=null,

如果现在使用的是NOT IN操作符,如果查询范围之中有了null则表示的就是查询全部数据但实际上不返回任何数据。SELECT * FROM emp WHERE empno NOT IN(7369,7566,null);

empno not in (7369,7566,null)可以等价于not(7566=7369 or 7566=7566 or empno=null)

或empno!=7566 and empno!=7566 and empno=null。

为什么都是or拼接,in可以而not in不可以呢,可以把not in理解为后面的and表达式就知道了,因为empno=null为null,

也就相当于false,导致整个表达式为false,无论传何值都为false,自然无法返回数据

3.6、模糊查询

说明

LIKE子句的功能是提供了模糊查找的操作,程序里出现的搜索操作,都属于LIKE子句的实现,但是要想使用LIKE子句则必须认识两个匹配符号

匹配单个字符:_ --匹配任意一个字符

匹配任意多个字符:% --匹配 0 个、1 个或多个任意字符

语法

字段 LIKE 关键字

示例代码

1、查询出雇员第二个字母为“L”的雇员信息

select *

from emp

WHERE ename like '_L%';

2、查询出雇员姓名以字母“S”开头的雇员信息

SELECT *

FROM emp

WHERE ename like 'S%'

3、查询出雇员姓名包含字母“S”的雇员信息

SELECT *

FROM emp

WHERE ename like '%S%'

4、查询入职年份为81年的雇员信息

SELECT *

FROM emp

WHERE hiredate like '%81'

5、查询工资值中包含数字5的雇员信息

SELECT *

FROM emp

WHERE sal like '%5%'

6、查询所有员工中ename 包含数字1 ,或者入职日期中包含数字1或者工资中含有数字5

SELECT *

FROM emp

WHERE ename LIKE '%1%' OR hiredate LIKE '%1%' OR sal LIKE '%5%'

查询名为SCOTT 的员工的所有信息

select * from emp where ename = 'SCOTT';

等同于 select * from emp where ename like 'SCOTT';

3.7、总结

作用:对SQL语句返回的数据集进行筛选

位置:紧跟在FROM子句后

内容:由一至多个限定条件组成,限定条件由表达式, 比较符, 字面值组成。所有字符串和日期要用单引号括起来,数值不需要单引号。

mysql查询职位大于3_4、MySQL查询(控制行)相关推荐

  1. mysql查询职位大于3_Mysql查询语句

    查询语句 单表查询 1.1 全表查寻 select * from employee; 1.2 指定字段查询 查询职员表中所有职员姓名和入职时间 select empname,hirdate from ...

  2. mysql查询职位大于3_mysql学习第四天(高级查询)

    -- 第七章 -- 1.查询入职日期最早和最晚的日期 select min(hiredate),max(hiredate) from emp -- 2.查询职位以SALES开头的所有员工平均工资,最低 ...

  3. mysql查询字段大于小于_sql查询大于字段的所有数据,或小于字段的所有数据

    展开全部 例如查询时间字段62616964757a686964616fe58685e5aeb931333431353962在2008-01-01(含)至2008-10-31(含)之间的记录可以这么写: ...

  4. Python Django单表查询之日期查询(大于小于范围查询)

  5. mysql 连接查询两个条件_MySQL之多表查询一 介绍 二 多表连接查询 三 符合条件连接查询 四 子查询 五 综合练习...

    一 介绍 本节主题 多表连接查询 复合条件连接查询 子查询 首先说一下,我们写项目一般都会建一个数据库,那数据库里面是不是存了好多张表啊,不可能把所有的数据都放到一张表里面,肯定要分表来存数据,这样节 ...

  6. mysql是否有缓存区_Mysql查询高速缓存区

    为了提高查询速度,Mysql会维护一个内存区域(官方文档指出,大小至少41984B)对查询结果进行缓存,当查询时发现缓存区里有数据则直接返回结果而不用去执行sql语句. 查询命中的条件 每个缓存查询至 ...

  7. mysql中如何把两个查询结果列数不同并成一张表_MySQL

    引言 本文整理了MySQL相关的知识,方便以后查阅. 基础架构 下图是 MySQL 的一个简要架构图,从下图你可以很清晰的看到用户的 SQL 语句在 MySQL 内部是如何执行的. 先简单介绍一下下图 ...

  8. MySQL学习记录 (二) ----- SQL数据查询语句(DQL)

    相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...

  9. MySQL字段约束及多表查询---讲解三

    MySQL环境配置(mysql有下载包) MySQL数据库表的基础操作(增删改查)-讲解一 MySQL数据库表的模糊/多行/分组/排序/分页查询以及字mysql数据类型的讲解-讲解二 MySQL字段约 ...

最新文章

  1. LSD快速直线检测的原理概要及OpenCV代码实现(CV类LineSegmentDetector)
  2. Artifact ssmbuild:war exploded: Error during artifact deployment. See server log for details
  3. linux只读挂载,读写挂载
  4. vue路由跳转 返回上一级 this.$router.go(-1) 和返回到指定页面this.$router.push('/home')...
  5. libevent学习笔记 一、基础知识
  6. cocos2d-x3.4 android重新编译,cocos2d-x 4.0 Spine 3.8编译环境配置(高级篇)
  7. 软件可靠性的一些关注点
  8. Jquery1.4.1 学习
  9. docker搭建sonarqube做代码审计
  10. Apk去掉签名以及重新签名的方法
  11. 看点视频解析去水印原理分析过程及源码,rowkey的秘密
  12. 麦克风声源定位原理_麦克风阵列原理及应用
  13. Web安全学习系列(1)
  14. vim 方向键和backspace乱码
  15. 嵌入式系统开发笔记25:win10防火墙打开特定端口
  16. 这可能是我用过最好用的SQL工具,免费还免安装,良心推荐SQL Studio
  17. SQL SEVER登录失败,无法连接服务器或已成功与服务器建立连接,但是在登录过程中发生错误。(Win10版本,SQL 2019)
  18. 如何通过Java实现485通信
  19. 技术是可以量化的,稳定性性能和资产个数
  20. python 输出图像尺寸_Opencv-Python:图像尺寸、图像的读取、显示、保存与复制

热门文章

  1. 超有用的,从此vi变得友好了
  2. elasticSearch6源码分析(10)SettingsModule
  3. 一个架构师谈什么是架构以及怎么成为一个架构师--转载
  4. Lesson 13.1 深度学习建模目标与性能评估理论
  5. Python基础知识(第二天)
  6. 【数据结构】八大数据结构分类
  7. 客户流失预警模型-GBDT模型
  8. 【采用】解读消金业务风控模型的6个层级
  9. 细讲 | Attention Is All You Need
  10. 一图看尽全生态, 2018区块链产业云图重磅发布