select条件查询的格式如下:

SELECT
查询列表
FROM
表名
WHERE
筛选条件;
1
2
3
4
5
6
根据筛选条件可以分为以下几类:

按照条件按表达式进行筛选

常用条件运算符如下:> 、<、=、!=、<>、<=、>=

按照逻辑表达式进行筛选

​ 逻辑运算符的主要作用:用于连接条件表达式

& 、 || 、! 、and、or、not

模糊查询

like、between and 、in、is null

like通常和通配符搭配使用:
①:%:代表任意多个字符

②:_:代表任意单个字符

举个栗子:

/**查询员工工资大于10000的员工信息**/
SELECT * FROM employees WHERE salary > 1000;
/**查询部门标号不等于90号的员工名和部门编号 **/
SELECT name,department_id FROM employees WHERE department_id <> 90;
/**查询工资在1000-2000之间的员工名,工资 **/
SELECT name,salary FROM employees WHERE salary >= 1000 and salary <=2000;
/**查询部门编号不再20-40之间或者工资高于15000员工信息 **/
SELECT * FROM employees WHERE department_id < 20
1
2
3
4
5
6
7
8
like:

/**查询员工名中包含a的员工信息**/
SELECT * FROM employeess WHERE last_name like '%a%';
/**查询员工名中第三个字符为n,第五个字符为m的员工信息 **/
SELECT * FROM employees WHERE last_name like '__n_m%';
/**查询员工名中第二个字符_的员工信息**/
/**方法一:使用转义字符"\"**/
SELECT * FROM employees WHERE last_name like '_\_%';
/**方法二:自定义转义字符**/
SELECT * FROM employees WHERE last_name like '_$_%' ESCAPE '$';
1
2
3
4
5
6
7
8
9
between and 、in

/**查询员工工资在1000-2000之间的员工信息(包含临界值)**/
SELECT * FROM employees WHERE salary BETWEEN 1000 AND 2000;
/**查询员工工种编号为IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号**/
/**方法一:**/
SELECT job_id,last_name FROM employees
WHERE job_id ='IT_PROG' OR
job_id ='AD_VP' OR
job_id ='AD_PRES' ;
/**方法二:**/
SELECT job_id,last_name FROM employeess
WHERE job_id in ('IT_PROG','AD_VP','AD_PRES');
1
2
3
4
5
6
7
8
9
10
11
in关键字的特点:

判断某字段的值是否属于in列表项中的某一项
in列表中的值都是统一类型或者相互兼容(即可以相互转换)
is null

/**查询员工没有奖金的员工名和奖金率**/
SELECT last_name,commission_pct
FROM employeess
WHERE commission_pct IS NULL;
/**查询员工有奖金的员工名和奖金率**/
SELECT last_name,commission_pct
FROM employeess
WHERE commission_pct IS NOT NULL;
1
2
3
4
5
6
7
8
安全等于 <=>

/**查询员工工资等于10000的员工信息**/
SELECT * FROM employees WHERE salary <=> 1000;
/**查询员工没有奖金的员工名和奖金率**/
SELECT last_name,commission_pct
FROM employeess (http://www.my516.com)
WHERE commission_pct <=> NULL;
1
2
3
4
5
6
正常数值的判断 null判断 可读性
安全等于 <=> 可以判断 可以判断 低
is null 不可以判断 可以判断 高
/**查询员工号为124的员工名和部门号以及年薪**/
SELECT
last_name,
department_id,
slary*12(1+IFNULL(comission_pct,0)) AS 年薪
FROM employees
WHERE department_id = 124;
/**查询employeess表中都涉及到了哪些部门编号**/
SELECT DISTINCT department_id FROM employees ;
1
2
3
4
5
6
7
8
9
思考题:

/**语句1:**/
SELECT * FROM employees;
/**语句2:**/
SELECT * FROM emplooyees
WHERE comission_pct LIKE '%%' AND last_name LIKE'%%';
/**语句3:**/
SELECT * FROM emplooyees
WHERE comission_pct LIKE '%%' OR last_name LIKE'%%';
1
2
3
4
5
6
7
8
问题1:语句1和语句2查询结果是否相同?

> 不相同,如果comission_id为null(即没有没有任何字符)是查询不出来的;
> 当comission_id不可能为null时,两者的查询结果是相同的
1
2
问题2:语句1和语句3查询结果是否相同

> 相同,因为last_name不可能为null值,此时即使comission_id为null也会被查询出来。
---------------------

MySql(四)Select条件查询的更多相关文章

  1. Mysql高手系列 - 第7篇:玩转select条件查询,避免踩坑

    这是Mysql系列第7篇. 环境:mysql5.7.25,cmd命令中进行演示. 电商中:我们想查看某个用户所有的订单,或者想查看某个用户在某个时间段内所有的订单,此时我们需要对订单表数据进行筛选,按 ...

  2. Mysql动态多条件查询

    动态多条件查询是一类经常遇到的问题. 在Mysql里面可以用语句简单的解决. SELECT * FROM product WHERE price = IF('{0}' = '', price, '{0 ...

  3. 七、玩转select条件查询

    前言: 电商中:我们想查看某个用户所有的订单,或者想查看某个用户在某个时间段内所有的订单,此时我们需要对订单表数据进行筛选,按照用户.时间进行过滤,得到我们期望的结果. 此时我们需要使用条件查询来对指 ...

  4. Mysql数据库中条件查询

    1.concat(字符串拼接) 作用:将选中的列进行拼接  写法 AS的作用就是属性名 SELECT CONCAT(ename,job) AS 你猜 FROM emp; 2.条件查询 语法: sele ...

  5. Eclipse+Mysql实现多条件查询

    最近做一个项目的时候,就需要用到多条件查询,但是一直不完美,所有有bug,不过今天经高人提醒,做出了个小例子,在这里简单跟大家分享一下: 不说多了,直接放关键sql代码: 已知条件:菜名,菜品,价格区 ...

  6. 10. MySQL基础-02条件查询、排序查询

    2. 条件查询 语法 ​ select 查询列表 from 表名 where 筛选条件: 分类 按条件表达式筛选 简单的条件运算符:> < = != <> >= ⇐ 按逻 ...

  7. 【MySQL】SELECT语句 - 查询数据

    第4章 检索数据 文章目录 第4章 检索数据 1.SELECT语句 2.检索单个列 3.检索多个列 4.检索所有列 5.检索不同的行 6.限制结果 7.使用完全限定的表名 8.小结 简单记录 - My ...

  8. MySql 按日期条件查询数据

    本周内: select * from wap_content where week(created_at) = week(now) 查询一天: select * from table where to ...

  9. mysql uodate select子查询

    UPDATE user SET pwd='123' WHERE id in (    SELECT id from user WHERE username = 'zx' ); 报错[Err] 1093 ...

随机推荐

  1. android自己定义控件系列教程----视图

    理解android视图 对于android设备我们所示区域事实上和它在底层的绘制有着非常大的关系,非常多时候我们都仅仅关心我们所示,那么在底层一点它究竟是怎么样的一个东西呢?让我们先来看看这个图. w ...

  2. asm volatile (&quot;B .&quot;)

    在开发中,我们常常会有有这种需求,就是在某段代码处開始,一步一步往下跟踪调试,有人说加个while(1)循环,事实上这个循环增加后,其后边的代码就会被优化掉,达不到我们的目的,更好的办法是在须要的地方 ...

  3. Lint工具去除Android工程里不再需要的资源

    摘要: 在项目开发过程中常常会不断改UI设计,于是在定稿要发布的前夕,发现有好多不再需要的资源文件存在,发布的包会把这些无用的资源都包含在里面,造成APK的下载包过大.可以通过Android SDK自 ...

  4. tf.float32 implicity

    简介  |  TensorFlow https://tensorflow.google.cn/programmers_guide/low_level_intro 我们来构建一个简单的计算图.最基本的指 ...

  5. shell 爬虫 从日志分析到数据采集与分析

    [root@VM_61_158_centos ~]# curl http://ip.chinaz.com/220.112.233.179 |grep -e Whwtdhalf.*span.*span. ...

  6. YTU 2541: 汽水瓶

    2541: 汽水瓶 时间限制: 1 Sec  内存限制: 128 MB 提交: 40  解决: 27 题目描述 有这样一道智力题:"某商店规定:三个空汽水瓶可以换一瓶汽水.小张手上有十个空汽 ...

  7. 掌握面试主动权,从看懂这份Java技术手册开始

    编者语:本文为纯干货,建议先转发.收藏再观看. 目录 jvm 一行代码是怎么运行的 jvm如何加载一个类 java对象的内存布局 反射的原理 动态代理 jvm的内存模型 jvm的垃圾回收 并发和锁 字 ...

  8. bzoj 1584: [Usaco2009 Mar]Cleaning Up 打扫卫生【dp】

    参考:http://hzwer.com/3917.html 好神啊 注意到如果分成n段,那么答案为n,所以每一段最大值为\( \sqrt{n} \) 先把相邻并且值相等的弃掉 设f[i]为到i的最小答 ...

  9. 小记 vue 打包(build)需要注意的一些事

    记录 vue 项目打包的一些事情 首先声明项目都是由 vue-cli 生成; vue 项目从 dev 切换到 prod 时有很多地方需要注意; 首先是大家最需要注意的 ajax 切换环节 以前一开始用 ...

  10. mysql——免安装配置

    1.下载 (1)下载地址:https://dev.mysql.com/downloads/mysql/ (2)选择下载 2.配置环境变量 (1)解压目录:D:\mysql-8.0.16-winx64 ...