Mysql基本语句之数据库过滤数据

本文详细介绍了MySQL中WHERE子句的各种操作符,如等于、不等于、范围检查、空值判断,以及AND、OR逻辑运算、LIKE子句与通配符的使用。涵盖了基本的数据筛选和复杂条件组合的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、过滤数据-使用WHERE子句

1. WHERE子句操作符

= 等于,!= 不等于,< 小于, > 大于, <= 小于等于, >= 大于等于, BETWEEN AND 在指定的两个值之间

2. 检查单个值

# 名字等于fuses

SELECT prod_id, prod_price, prod_name

FROM products

WHERE prod_mane = 'fuses';

# 价格大于10

SELECT prod_id, prod_price, prod_name

FROM products

WHERE prod_price > 10;

#供应商ID不是1003

SELECT vend_id, prod_price, prod_name

FROM products

WHERE vend_id != 1003;

# 范围值检查

SELECT vend_id,prod_name,prod_price

FROM products

WHERE prod_price BETWEEN 5 AND 10;

3. 空值检查

# NULL表示空值,no value

SELECT vend_id,prod_name,prod_price

FROM products

WHERE prod_price IS NULL;

IS NULL:如果列值为 NULL,则该运算符返回 true。

IS NOT NULL:如果列值不为NULL,则该运算符返回 true。

<=>:该运算符用于两个值的对比,当两个值都为 NULL 时(这一点与 = 运算符不同),返回 true。

包含 NULL 的条件都是比较特殊的。不能在列中使用 = NULL 或 ! = NULL 来寻找 NULL 值。这样的比对通常都是失败的,因为不可能得知这样的比对是否为真。

二、 过滤数据-AND&OR

1. AND表示同时满足所有条件

# 供应商1003,价格小于等于10的产品

SELECT vend_id, prod_name, prod_price

FROM prodcuts

WHERE vend_id = 1003 AND prod_price <= 10;

2. OR表示满足所有的单个条件

# 是1002供应商,或者是价格等于10

SELECT vend_id, prod_name, prod_price

FROM products

WHERE vend_id = 1002 OR prod_price = 10;

3. 次序计算

# MySql优先处理AND, 后处理OR,先满足vend_id = 1003 AND prod_price = 10

SELECT vend_id, prod_name, prod_price

FROM products

WHERE vend_id = 1002 OR vend_id = 1003 AND prod_price = 10;

要先处理OR,应该加()

SELECT vend_id, prod_name, prod_price

FROM products

WHERE (vend_id = 1002 OR vend_id = 1003) AND prod_price = 10;

4. IN指定条件范围

# 检索1002,1003供应商并用名称排序

SELECT vend_id, prod_name, prod_price

FROM products

WHERE vend_id IN (1002, 1003)

ORDER BY prod_name;

5. NOT表在WHERE子句中用来否定后跟的条件

NOT IN可以用来取反

# 检索不是1002,1003供应商并用名称排序

SELECT vend_id, prod_name, prod_price

FROM products

WHERE vend_id NOT IN (1002, 1003)

ORDER BY prod_name;

三、 数据过滤-LIKE子句+通配符 %, _

1. %表示任何字符串出现任意次数,区分大小写

# 检索以jet起头的产品名字(和JET起头不匹配)

SELECT prod_name, prod_price

FROM products

WHERE prod_name LIKE 'jet%';

# 检索产品名字中任意位置有care字符

SELECT prod_name, prod_price

FROM products

WHERE prod_name LIKE '%care%';

# 检索产品名字中以s开头e结尾的字符,长度不限

SELECT prod_name, prod_price

FROM products

WHERE prod_name LIKE 's%e';

2. _表示任何字符串出现单次,指一个字符,其他功能和%一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值