前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >mysql之条件查询

mysql之条件查询

作者头像
兮动人
发布于 2021-06-11 11:18:14
发布于 2021-06-11 11:18:14
3.7K00
代码可运行
举报
文章被收录于专栏:兮动人的博客兮动人的博客
运行总次数:0
代码可运行

文章目录

进阶2:条件查询

  • 以下面如图数据库为例编写条件查询案例
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
语法:
	select 
		查询列表
	from
		表名
	where
		筛选条件;

分类:

一、按条件表达式筛选

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
简单条件运算符:> < = != <> >= <=

二、按逻辑表达式筛选

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
逻辑运算符:
	作用:用于连接条件表达式
		&& || !
		and or not
		
	&&和and:两个条件都为true,结果为true,反之为false
	||或or: 只要有一个条件为true,结果为true,反之为false
	!或not: 如果连接的条件本身为false,结果为true,反之为false

三、模糊查询

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
like
between and
in
is null

一、按条件表达式筛选

案例1:查询工资>12000的员工信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT 
	*
FROM
	employees
WHERE
	salary>12000;

案例2:查询部门编号不等于90号的员工名和部门编号

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT 
	last_name,
	department_id
FROM
	employees
WHERE
	department_id<>90;

二、按逻辑表达式筛选

案例1:查询工资在10000到20000之间的员工名、工资以及奖金

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT
	last_name,
	salary,
	commission_pct
FROM
	employees
WHERE
	salary>=10000 AND salary<=20000;

案例2:查询部门编号不是在90到110之间,或者工资高于15000的员工信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT
	*
FROM
	employees
WHERE
	# department_id<90 OR department_id>110 OR salary>15000;
	NOT(department_id>=90 AND  department_id<=110) OR salary>15000;

三、模糊查询

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
like	
between and
in
is null|is not null

1. like

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
特点:
1.一般和通配符搭配使用
通配符:
	% :任意多个字符,包含0个字符
	_ :任意单个字符

案例1:查询员工名中包含字符a的员工信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select 
	*
from
	employees
where
	last_name like '%a%';	#abc

案例2:查询员工名中第三个字符为n,第五个字符为l的员工名和工资

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select
	last_name,
	salary
FROM
	employees
WHERE
	last_name LIKE '__n_l%';

案例3:查询员工名中第二个字符为_的员工名,添加转义字符

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT
	last_name
FROM
	employees
WHERE
	last_name LIKE '_$_%' ESCAPE '$';
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
where last_name LIKE '_\_%';

2. between and

  • 1.使用between and 可以提高语句的简洁度
  • 2.包含临界值
  • 3.两个临界值的前后顺序大小不要调换

案例1:查询员工编号在100到120之间的员工信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT
	*
FROM
	employees
WHERE
	employee_id >= 100 AND employee_id<=120;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT
	*
FROM
	employees
WHERE
	employee_id BETWEEN 100 AND 120;

3. in

  • 含义:判断某字段的值是否属于in列表中的某一项
  • 特点: 1.使用in提高语句简洁度 2.in列表的值类型必须一致或兼容 3.in列表中不支持通配符

案例:查询员工的工种编号是 IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT
	last_name,
	job_id
FROM
	employees
WHERE
	job_id = 'IT_PROT' OR job_id = 'AD_VP' OR JOB_ID ='AD_PRES';

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT
	last_name,
	job_id
FROM
	employees
WHERE
	job_id IN( 'IT_PROT' ,'AD_VP','AD_PRES');

4. is null

  • =<>不能用于判断null
  • is nullis not null 可以判断null

案例1:查询没有奖金的员工名和奖金率

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT
	last_name,
	commission_pct
FROM
	employees
WHERE
	commission_pct IS NULL;

案例1:查询有奖金的员工名和奖金率

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT
	last_name,
	commission_pct
FROM
	employees
WHERE
	commission_pct IS NOT NULL;

以下为错误案例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT
	last_name,
	commission_pct
FROM
	employees

WHERE 
	salary IS 12000;

安全等于 <=>

案例1:查询没有奖金的员工名和奖金率

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT
	last_name,
	commission_pct
FROM
	employees
WHERE
	commission_pct <=>NULL;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
WHERE
	commission_pct is NULL;

案例2:查询工资为12000的员工信息

  • <=>判断的是否等于
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT
	last_name,
	salary
FROM
	employees

WHERE 
	salary <=> 12000;

is null 和 <=> 的区别

  • IS NULL:仅仅可以判断NULL值,可读性较高,建议使用
  • <=> :既可以判断NULL值,又可以判断普通的数值,可读性较低
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/11/06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
JAVA多线程详解
分为两种:一类是守护线程,典型是垃圾回收GC;第二类是用户线程,当JVM中都是JVM守护线程,那么当前的JVM将退出。
阮键
2019/08/07
4320
十五、多线程【黑马JavaSE笔记】
假如计算机只有一个CPU,那么CPU在某一个时刻只能执行一条指令,线程只有得到CPU时间片,也就是使用权,才可以执行指令。所以说多线程程序的执行是有随机性,因为谁抢到CPU的使用权是不一定的
啵啵鱼
2022/11/23
2900
十五、多线程【黑马JavaSE笔记】
Java之多线程-------入门
是指从软件或者硬件上实现多个线程并发执行的技术。 具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程,提升性能。
楠羽
2022/11/18
3760
Java之多线程-------入门
Java 线程与多线程
一个进程上可以创建多个线程,线程比进程更快的处理单元,而且所占用的资源也小,多线程的应用也是性能最高的。
Mirror王宇阳
2020/11/12
1.9K0
java线程详解(史上最全)
根据本人多年从业以及学习经验,录制了一套最新的Java精讲视频教程,如果你现在也在学习Java,在入门学习Java的过程当中缺乏系统的学习教程,你可以加QQ群654631948领取下学习资料,面试题,开发工具等,群里有资深java老师做答疑,每天也会有基础部分及架构的直播课,也可以加我的微信renlliang2013做深入沟通,只要是真心想学习Java的人都欢迎。
全栈程序员站长
2022/09/08
2690
java线程详解(史上最全)
多线程详解
假如计算机只有一个CPU,那么CPU在某一时刻只能执行一条指令,线程只有得到CPU时间片,也就是使用权,才可以执行指令。所以说多线程程序的执行是有随机性的。
秋落雨微凉
2022/10/25
4510
多线程
线程类 Java使用 java.lang.Thread 类代表线程,所有的线程对象都必须是Thread类或其子类的实例 每个线程的作用是 完成一定的任务,实际上就是执行一段程序流即一段顺序执行的代码 Java使用线程执行体来代表这段程序流。
JokerDJ
2023/11/27
1950
多线程
JUC 多线程基础
如果一个线程对共享变量的修改,能够被其它线程看到,那么就能说明共享变量在线程之间是可见的。如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量。
万能青年
2019/08/30
5300
JUC 多线程基础
第二十四天 多线程-多线程&线程安全【悟空教程】
进程:进程指正在运行的程序。确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能。
Java帮帮
2018/07/26
6540
第二十四天 多线程-多线程&线程安全【悟空教程】
Java多线程(全知识点)
概述:本文为Java多线程的基础知识点的第一部分,主要包括,通过继承Thread来实现进程,线程调度,线程控制,run(),start(),join(),sleep(),setDaemon()方法的使用,获取线程名字currentThread(),线程同步,非静态锁,静态方法的锁,Lock锁,生产者与消费者问题,卖票问题。
GeekLiHua
2025/01/21
1410
Java多线程(全知识点)
Java 多线程之 Runnable VS Thread 及其资源共享问题
对于 Java 多线程编程中的 implements Runnable 与 extends Thread,部分同学可能会比较疑惑,它们之间究竟有啥区别和联系呢?他们是不是没啥区别随便选呢?实际中究竟该
用户1177713
2018/02/24
9200
Java 多线程之 Runnable VS Thread 及其资源共享问题
第二十五天 多线程-常用方法&线程池【悟空教程】
System.out.println(getName() + " ==== " + i );
Java帮帮
2018/07/26
3900
第二十五天 多线程-常用方法&线程池【悟空教程】
java_线程、同步、线程池
Java使用 java.lang.Thread 类代表线程,所有的线程对象都必须是Thread类或其子类的实例
咕咕星
2020/08/19
8570
java_线程、同步、线程池
Java-多线程(下)
    线程的同步与死锁是多线程里面最需要重点理解的概念。这种操作的核心问题在于:每一个线程对象轮番强占资源
Java架构师必看
2021/11/11
2500
day18-多线程&线程同步&死锁
在操作系统中,安装了多个程序,并发指的是在一段时间内宏观上有多个程序同时运行,这在单 CPU 系统中,每一时刻只能有一道程序执行,即微观上这些程序是分时的交替运行,只不过是给人的感觉是同时运行,那是因为分时交替运行的时间是非常短的。
张哥编程
2024/12/13
900
java基础第十六篇之多线程
1:线程的概念 进程(任务):一个正在运行的程序 进程的调度:CPU来决定什么时候该运行哪个进程 (时间片轮流法) 线程在一个应用程序中,同时,有多个不同的执行路径,是进程中的实际运作单位。 好处是提高程序效率。
海仔
2019/08/05
2900
Android多线程:继承Thread类、实现Runnable接口使用教程(含实例讲解)
前言 在Android开发中,多线程的使用十分常见 今天,我将全面解析多线程中最常见的2种用法:继承Thread类 & 实现Runnable接口 Carson带你学多线程系列 基础汇总 Android多线程:基础知识汇总 基础使用 Android多线程:继承Thread类使用(含实例教程) Android多线程:实现Runnable接口使用(含实例教程) 复合使用 Android多线程:AsyncTask使用教程(含实例讲解) Android多线程:AsyncTask的原理及源码分析 A
Carson.Ho
2022/03/25
8290
Android多线程:继承Thread类、实现Runnable接口使用教程(含实例讲解)
【19】JAVASE-多线程专题【从零开始学JAVA】
Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台。
用户4919348
2024/05/25
1350
【19】JAVASE-多线程专题【从零开始学JAVA】
Java多线程总结(超详细总结)
— JDK 5.0新增 如何理解实现Callable接口的方式创建多线程比实现Runnable接口创建多线程方式强大? 1. call()可以有返回值的。 2. call()可以抛出异常,被外面的操作捕获,获取异常的信息 3. Callable是支持泛型的
小尘要自信
2023/10/10
3140
Java学习笔记之多线程 生产者 消费者
        所有线程轮流使用CPU的使用权,平均分配每个线程占用CPU的时间片
Jetpropelledsnake21
2022/03/07
6050
Java学习笔记之多线程 生产者 消费者
相关推荐
JAVA多线程详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验