#查询2:条件查询

/*
语法:
select
查询列表
from
表名
where
筛选条件;

执行顺序:找到表,逐行筛选,选出行的相关列呈现

分类:
1)按条件表达式筛选
条件运算符:> < = !=(<>也可以) >= <=

2)按逻辑表达式筛选
逻辑运算符:and or not(&& || !)
作用:连接条件表达式

&& and 两个条件都为true
|| or 两个条件任一为true
! not 取反

3) 模糊查询
like
between and
in
is null | is not null
*/

USE myemployees;

#一、按条件表达式筛选

#案例1:查询工资大于12000的员工信息
SELECT * FROM employees WHERE salary > 12000;

#案例2:查询部门编号不等于90的员工号和部门编号
SELECT employee_id,department_id FROM employees WHERE department_id != 90;
SELECT employee_id,department_id FROM employees WHERE department_id <>90;

#二、按逻辑表达式筛选

#案例1:查询工资在10000到20000之间的员工信息
SELECT last_name,salary,IFNULL(commission_pct,0) AS commission
FROM employees WHERE salary>=10000 AND salary<=20000;

#案例2:查询部门编号不在90~110之间,或者工资高于15000的员工信息
SELECT last_name,department_id,salary FROM employees
WHERE department_id<90 OR department_id>110 OR salary>15000;

#三、模糊查询
/*
like
一般和通配符配合使用
% 任意多个字符(0,1,无限多个)
_ 任意单个字符(1个)
between and
in
is null | is not null
*/

#like模糊查询
注意:MySQL5.5及以上的版本,也支持数值型的like查询

#案例1:查询员工名中包含字符a的员工信息(MySQL没有字符串的概念,都是字符)
# % 表示任意个数的任意字符
SELECT * FROM employees WHERE last_name LIKE '%a%';

#案例2:查询员工名中第三个字符为n, 第五个字符为l的员工名和工资
SELECT last_name,salary FROM employees WHERE last_name LIKE '__n_l%';

#案例3:查询员工名中第二个字符为_的员工名
#通配符转移为普通字符,\%, \_
SELECT last_name FROM employees WHERE last_name LIKE '_\_%';

#指定任意一个字符为转义字符
#escape '$' 指定$为转义字符
SELECT last_name FROM employees WHERE last_name LIKE '_$_%' ESCAPE '$';

#案例:数值型的like查询 (数值->字符->然后判断)
select * from employees where department_id like '1__';

#2、between and模糊查询
/*
提高语句简洁读
包含临界值
临界值不能颠倒顺序(等价于 >=左边,<=右边)
临界值要类型一致,或者能隐式转换
*/

#案例1:查询员工编号在100到200之间的员工信息
#between 100 and 200, 100和200包括在内
SELECT * FROM employees WHERE employee_id BETWEEN 100 AND 200;

#3、in 模糊查询
/*
含义:判断某字段的值,是否属于in列表中的某一项
in (v1,v2,v3,...)

特点:
1)比使用or,语句简洁度高
2)in列表的值类型必须统一,或者可以隐式转换
3)in列表的值,不支持通配符(like才能解析通配符)
*/

#案例1:查询工种是 IT_PROG, AD_VP, AD_PRES 其中任意一个的员工名和工种id
SELECT last_name,job_id FROM employees
WHERE
job_id='IT_PROT' OR job_id='AD_VP' OR job_id='AD_PRES';

SELECT last_name,job_id FROM employees
WHERE
job_id IN ('IT_PROT','AD_VP','AD_PRES');

#4、is null
/*
= 不能判断null值
is null 判断是否为null
is not null 判断是否为非null
*/

#案例1:查询没有奖金的员工名和奖金率(替换为0)
SELECT last_name, IFNULL(commission_pct,0) AS commission
FROM employees
WHERE commission_pct IS NULL;

#案例2:查询有奖金的员工名和奖金率
SELECT last_name, IFNULL(commission_pct,0) AS commission
FROM employees
WHERE commission_pct IS NOT NULL;

#5、安全等于 <=>
/*
<=> null, 可以判断是否为null值
<=> 普通值
*/
SELECT last_name,commission_pct FROM employees WHERE commission_pct <=> NULL;

SELECT last_name,salary FROM employees WHERE salary <=> 12000;

02_MySQL DQL_条件查询的更多相关文章

  1. jqGrid jqGrid分页参数+条件查询

    HTML <div class="row"> <div class="col-sm-20"> <form id="for ...

  2. Rafy 中的 Linq 查询支持(根据聚合子条件查询聚合父)

    为了提高开发者的易用性,Rafy 领域实体框架在很早开始就已经支持使用 Linq 语法来查询实体了.但是只支持了一些简单的.常用的条件查询,支持的力度很有限.特别是遇到对聚合对象的查询时,就不能再使用 ...

  3. Oracle学习总结_day03_day04_条件查询_排序_函数_子查询

    本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! day03_条件查询_排序_函数 清空回收站: PUR ...

  4. [NHibernate]条件查询Criteria Query

    目录 写在前面 文档与系列文章 条件查询 一个例子 总结 写在前面 上篇文章介绍了HQL查询,我个人觉得使用ORM框架就是为了让少些sql,提高开发效率,而再使用HQL就好像还是使用sql,就觉得有点 ...

  5. PHP-----练习-------租房子-----增删改查,多条件查询

    练习-------租房子-----增删改查,多条件 一 .题目要求: 二 .做法: [1]建立数据库 [2]封装类文件------DBDA.class.php <?php class DBDA ...

  6. 【Java EE 学习 17 下】【数据库导出到Excel】【多条件查询方法】

    一.导出到Excel 1.使用DatabaseMetaData分析数据库的数据结构和相关信息. (1)测试得到所有数据库名: private static DataSource ds=DataSour ...

  7. SpringMVC整合Hibernate实现增删改查之按条件查询

    首先我贴出我项目的结构,只完成了条件查询的相关代码,增删改没有写. 1.新建一个动态Web工程,导入相应jar包,编写web.xml配置文件 <context-param> <par ...

  8. EasyUI ComboGrid的绑定,上下键和回车事件,输入条件查询

    首先我们先看一下前台的绑定事件 1.先定义标签 <input id="cmbXm" type="text" style="width: 100p ...

  9. MySQL数据库6 -查询基础,简单查询,条件查询,对查询结果排序

    一.SELECT语句 SELECT COL1,COL2,....COLn FROM TABLE1,TABLE2,....TABLEn [WHERE CONDITIONS] -- 查询条件 [GROUP ...

随机推荐

  1. centos下vsftpd不能显示文件,不能创建文件及文件夹

    centos下vsftpd登录正常,但不能显示文件,不能创建文件及文件夹 这是由于selinux的机制 通过命令 [root@localhost www]# getsebool -a|grep ftp ...

  2. HBase简单API

    一.使用IDEA的maven工程,工程结构如下: 二.maven的依赖pom.xml文件 <?xml version="1.0" encoding="UTF-8&q ...

  3. 持续集成之戏说Check-in Dance(转)

    add by zhj: 先说一下持续集成的定义,这是ThoughtWorks首席科学家Martin Fowler在<持续集成>第二版中给出的,“持续集成是一种软件开发实践.在持续集成中,团 ...

  4. Linux环境下NodeJS的安装配置(HelloWorld)

    Linux环境下NodeJS的安装配置(HelloWorld) 最简单的环境安装,测试helloworld.给初学者!! 安装脚本,请仔细阅读逐行执行: #!/bin/bash #检查是否已经安装 r ...

  5. 011-Shell 文件包含

    和其他语言一样,Shell 也可以包含外部脚本.这样可以很方便的封装一些公用的代码作为一个独立的文件. Shell 文件包含的语法格式如下: . filename # 注意点号(.)和文件名中间有一空 ...

  6. nodejs获取参数的方法

    1 获取get的querystring参数 GET /test?name=fred&tel=0926xxx572 let aa = req.param("name"); l ...

  7. Servlet实现前后端交互的原理及过程解析

    在日常调试项目时,总是利用tomcat去启动项目,并进行前后端联调,但对于前后端的请求响应的交互原理及过程并不是特别清晰. 为什么在前端发出相应请求,就能跳转到后端通过程序得到结果再响应到前端页面呢? ...

  8. Java 7 新增功能

    Java 7 新增功能如下: 对二进制整数的支持,以0b或0B开头. 在数值中可以使用下划线,不管是整型数值,还是浮点型数值,都可以自由地使用下划线,这样可以直观地分辨数值常量中到底包含多少位.如:3 ...

  9. macOS Sierra上Opencv的安装与使用

    安装cmake brew install cmake 安装OpenCV brew install opencv //opencv升级 # brew upgrade opencv 配置OpenCV环境: ...

  10. docker——安装

    Docker划分为CE和EE.CE即社区版(免费,支持后期三个月),EE即企业版,强调安全,付费使用. #安装依赖包 yum install -y yum-utils device-mapper-pe ...