#查询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. 一行代码让python的运行速度提高100倍

    python一直被病垢运行速度太慢,但是实际上python的执行效率并不慢,慢的是python用的解释器Cpython运行效率太差. “一行代码让python的运行速度提高100倍”这绝不是哗众取宠的 ...

  2. Python高级教程-多重继承

    多重继承 继承是面向对象编程的一个重要的方式,因为通过继承,子类可以扩展父类的功能. Animal类的层次设计,假设要实现以下4中动物: Dog - 狗狗: Bat - 蝙蝠: Parrot - 鹦鹉 ...

  3. dos常用命令【总结】

    win7下有很多有用的dos命令,现在总结如下: 延伸:Linux常用命令[总结] 命令 作用 其他 ping 检查和另一台主机的连通性  ping  127.0.0.1   telnet 检查连通性 ...

  4. JDB调试代码 20165324 何春江

    Java书本程序调试: 课上程序调试

  5. 无法从U盘启动的解决方案

    联想台式机无法从U盘启动的解决方案 F1进入lenovo bios 选择 StartUp 选项卡 1) 发现 USB FDD 已处于第一项,再把 USB Key 调到启动第二项 2) 把 boot m ...

  6. C#中获取音频文件时长

    1.在项目中添加引入:COM组件的Microsoft Shell Controls And Automation 2.在引用中找到Shell32,点击右键,在属性中将“嵌入互操作类型”的值改为“fal ...

  7. Linux系统——本地定制化yum仓库部署

    1)开启yum仓库配置文件 /etc/yum.conf的keepcache功能 (开启一个新的虚拟机) 将keepcache=0改为1,修改配置文件后重新清空缓存(1默认下载的安装包不删除,才可以实现 ...

  8. 使用LocationManager来获取移动设备所在的地理位置信息

    在Android应用程序中,可以使用LocationManager来获取移动设备所在的地理位置信息.看如下实例:新建android应用程序TestLocation. 1.activity_main.x ...

  9. 189. Rotate Array(两次反转)

    DescriptionHintsSubmissionsDiscussSolution   Pick One Rotate an array of n elements to the right by  ...

  10. HDU 4746 Mophues(莫比乌斯反演)

    题意:求\(1\leq i \leq N,1\leq j \leq M,gcd(i,j)\)的质因子个于等于p的对数. 分析:加上了对质因子个数的限制. 设\(f(d):[gcd(i,j)=d]\) ...