MySQL where 操作符

mysql,where · 浏览次数 : 0

小编点评

本文主要介绍了MySQL中WHERE子句的各种运算符及其应用。通过具体的SQL语句,我们可以看到各种运算符的使用方法和效果。以下是运算符的归纳总结: 1. 逻辑运算符: - AND:两个条件都成立 - OR:两个条件中只要有一个成立 - NOT:对条件进行取反操作 2. 比较运算符: - =:等于 - <>:不等于 - >:大于 - <:小于 - >=:大于等于 - <=:小于等于 3. 范围运算符: - IN:指定针对某个列的多个可能值 - NOT IN:指定针对某个列的多个不可能值 4. 模糊查询运算符: - LIKE:搜索某种模式 - NOT LIKE:搜索某种模式,但不是该模式 - REGEXP:满足匹配正则 - NOT REGEXP:不满足正则条件 5. BETWEEN AND运算符: - BETWEEN AND:指定一个范围,包括两个值 - NOT BETWEEN AND:指定一个范围,不包括两个值 6. IS NULL运算符: - IS NULL:指定某个列的值为NULL - IS NOT NULL:指定某个列的值不为NULL 通过这些运算符,我们可以对数据库中的记录进行各种条件的筛选和查询。在实际应用中,需要根据需求选择合适的运算符来获取所需的数据。

正文

MySql WHERE 操作符号

前言

在 WHERE 子句中,你可以使用任何条件对记录进行过滤。

准备工作

准备 users 表,并插入数据

# 创建用户表 users
create table users (
    id int AUTO_INCREMENT not null primary key ,
    name varchar(255) ,
    age int ,
    job varchar(255) ,
    address varchar(255)
);

# 插入数据
insert into users (id, name, age, job, address)
VALUES
    (null, '小赵', 18, '高中生', '广州' ),
    (null, '小钱', 19, '大学生', '广州' ),
    (null, '小孙', 20, '大学生', '广州' ),
    (null, '小李', 21, '大学生', '深圳' ),
    (null, '小张', 22, '大学生', '深圳' ),
    (null, '小吴', 23, '销售', '深圳' ),
    (null, '小赵', 24, '商务', '惠州' ),
    (null, '小王', 25, '程序员', '惠州' ),
    (null, '小冯', 26, '程序员', '惠州' );

1.逻辑运算符

符号 描述
AND 两个条件都成立
OR 两个条件中只要有一个成立
NOT 对条件进行取反操作
  • AND age > 21 并且 address = '惠州'
select * from users where age > 21 and address = '惠州'

  • OR age > 21 或者 address = '惠州'
select * from users where age > 21 or address = '惠州'

  • NOT 取反 age > 21 并且 取反 address = '深圳'
select * from users where not age > 21 and not address = '深圳'

2.比较运算符

符号 描述
= 等于
<> 不等于。注释:在 SQL 的一些版本中,该操作符可被写成 !=
> 大于
< 小于
>= 大于等于
<= 小于等于

我们以 age 举例

  • age = 21
  • age <> 21
  • age > 21
  • age < 21
  • age >= 21
  • age<= 21
select * from users where age = 21 ;

select * from users where age <> 21 ;

select * from users where age > 21 ;

select * from users where age < 21 ;

select * from users where age >= 21 ;

select * from users where age<= 21 ;

3.范围运算符

符号 描述
IN 指定针对某个列的多个可能值
NOT IN 指定针对某个列的多个不可能值
  • 我们以 address 举例 取address 列中值 为广州、 惠州的数据 |
select * from users where address in ('广州','惠州')

  • 取address 列中值 不为广州、 惠州的数据
select * from users where address not in ('广州','惠州')

结果自行练习这里就不做截图了

4.模糊查询运算符

符号 描述
LIKE 搜索某种模式
NOT LIKE 搜索某种模式,但不是该模式
REGEXP 满足匹配正则
NOT REGEXP 不满足正则条件
  • like

  • 取address 列中值 包含 广州的数据

select * from users where address like '%广州%'

  • 取address 列中值 不包含 广州的数据
select * from users where address not like '%广州%'
  • regexp 正则语法后面单独讲

  • 取address 列中值 包含 广州的数据

select * from users where address regexp '广州'

5.BETWEEN AND 运算符

符号 描述
BETWEEN AND 指定一个范围,包括两个值
NOT BETWEEN AND 指定一个范围,不包括两个值
  • between and

  • 取 age 列中值 在 20 到 25 之间的数据

select * from users where age between 20 and 25 ;

  • not between and
  • 取 age 列中值 不在 20 到 25 之间的数据
select * from users where age not between 20 and 25 ;

6.IS NULL 运算符

符号 描述
IS NULL 指定某个列的值为 NULL
IS NOT NULL 指定某个列的值不为 NULL

再次插入数据

insert into users (id, name, age, job, address)
VALUES
    (null, '小陈', 27, '程序员', null );
  • is null

  • 取address 列中值为 null 的数据

select * from users where address is null ;

  • is not null

  • 取address 列中值不为 null 的数据

select * from users where address is not null ;

|

与MySQL where 操作符相似的内容:

MySQL where 操作符

MySql WHERE 操作符号 前言 在 WHERE 子句中,你可以使用任何条件对记录进行过滤。 准备工作 准备 users 表,并插入数据 # 创建用户表 users create table users ( id int AUTO_INCREMENT not null primary key

Mysql索引覆盖

通常情况下,我们创建索引的时候只关注 where 条件,不过这只是索引优化的一个方向。优秀的索引设计应该纵观整个查询,而不仅仅是 where 条件部分,还应该关注查询所包含的列。索引确实是一种高效的查找数据方式,但是 mysql 也可以从索引中直接获取数据,这样就不在需要读数据行了。

Mysql数据库查看Database的大小的方法

最简单的方法为: select concat(round(sum(data_length/1024/1024),2),'MB') as data from INFORMATION_SCHEMA.tables where table_schema='XXXXX2206'; 另外发现备份恢复的大小也不一

MySQL基础4-数据查询

一、DQL介绍 DQL全称:Data Query Language(数据查询语言),用来查询数据库中表的记录。 关键字:select 二、DQL语法 select 字段列表 from 表名列表 where 条件列表 group by 分组字段列表 having 分组后条件列表 order by 排序

[转帖]查看mysql分区名和各分区数据量

– 查看mysql分区名和各分区数据量 SELECT table_name, partition_name, table_rows FROM information_schema.PARTITIONS WHERE table_name=‘test2_partition’; 附加2位前辈博客,讲解分区

[转帖]深入理解mysql-第十一章 mysql查询优化-Explain 详解(中)

一、执行计划-type属性 执行计划的一条记录就代表着MySQL对某个表的执行查询时的访问方法,其中的type列就表明了这个访问这个单表的方法具体是什么,比方说下边这个查询: mysql> EXPLAIN SELECT * FROM s1 WHERE key1 = 'a';+ + + + + + +

[转帖]MySQL Performance : Impact of InnoDB Transaction Isolation Modes in MySQL 5.7

http://dimitrik.free.fr/blog/archives/2015/02/mysql-performance-impact-of-innodb-transaction-isolation-modes-in-mysql-57.html There were so many valua

数据特征采样在 MySQL 同步一致性校验中的实践

作者:vivo 互联网存储研发团队 - Shang Yongxing 本文介绍了当前DTS应用中,MySQL数据同步使用到的数据一致性校验工具,并对它的实现思路进行分享。 一、背景 在 MySQL 的使用过程中,经常会因为如集群拆分、数据传输、数据聚合等原因产生流动和数据复制。而在通常的数据复制过程

小白也能懂的Mysql数据库索引详解

一文让你彻底了解:主键索引/二级索引,聚簇索引/非聚簇索引,回表/索引覆盖,索引下推,联合索引/最左联合匹配,前缀索引,explain

mysql查看用户的过期时间

1. mysql查看用户的过期时间的方法 在MySQL中,用户的过期时间(也称为账户过期日期)是一个可选项,用于确定某个MySQL用户账户何时到期。但是,值得注意的是,并非所有的MySQL安装或版本都支持直接设置用户账户的过期时间。特别是,标准的MySQL用户表(如mysql.user)并没有一个专