MySQL数据库——过滤数据

MySQL数据库——过滤数据

数据库一般包含大量的数据,但是我们大部分情况下并不需要检索所有的数据,只要检索部分数据就行了。

1. 使用WHERE 子句
在SELECT子句中,数据根据WHERE子句中指定的搜索条件进行过滤。WHERE子句在表名(FROM子句)之后给出,如下所示:

SELECT users.user_name, users.user_age FROM users WHERE users.user_name = “张三”;

2.WHERE子句操作符**

2.1 检查单个值

SELECT users.user_name, users.user_age FROM users WHERE users.user_age <= 200 ORDER BY users.user_age; 1

注意这里的小于等于,关于WHERE的操作符和平常程序语言其实差不多的。

2.2 不匹配检查

SELECT users.user_name, users.user_age FROM users WHERE users.user_age != 40 ORDER B

2.3 范围值检查
为了检查某个范围的值,可使用BETWEEN操作符。其语法和其他的WHERE操作符稍有不同,因为他需要两个值,即开始值和结束值。

SELECT users.user_name, users.user_age FROM users WHERE users.user_age BETWEEN 19 A

2.4 空值检查

创建表的时候,表的设计人员可以指定其中的列是否可以不包含值。在一个列不包含值的时候,称其为包含空值NULL 。

NULL 无值,他与字段包含0,空字符串或仅仅包含空格不同

SELECT语句有一个特殊的WHERE子句,可用来检查具有NULL值的列。这个WHERE子句就是 IS NULL 子句 如下:

SELECT prod_name FROM products WHERE prod_price IS NULL;

** 3 组合WHERE子句**
MySQL允许给出多个WHERE子句。这些子句可以两种方式使用:以AND方式或者OR方式使用。

3.1 AND操作符

为了通过不只一个列进行过滤,可以使用AND操作符给WHERE子句附加条件。下面的代码给出了一个例子:

SELECT users.user_name, users.user_age FROM users WHERE users.user_age BETWEEN 19 AND 50 AND users.user_id < 8;1

可以看出,我们在WHERE子句中 多添加了一个AND关键字 来链接两个过滤条件 。就是这么简单~

3.2 OR操作符

OR操作符和AND操作符不同,它指示MySQL检索匹配任一条件的行 。

如下:

SELECT users.user_name, users.user_age FROM users WHERE users.user_age BETWEEN 19 AND 60 OR users.user_id < 10;1

3.3 计算次序

WHERE可以包含任意数目的AND和OR操作符。并且允许两者进行结合,但是这会产生一个有趣的问题。

就是说当类似于WHERE id = 2002 OR id = 1003 AND price >= 10 的情况,我们该如何确定 id = 1003 是应用于前面的 OR 还是 后面的 AND呢?

SQL语言对这种情况,在处理OR操作前,优先处理AND。就是说 AND在计算次序中优先级更高,有时会产生我们不想要的结果 。

这个问题的解决方法是使用圆括号明确地分组相应的操作符 。

SELECT users.user_name, users.user_age FROM users WHERE (users.user_age != 1 AND users.user_id != 0) OR users.user_id < 10;1

注意,从结构上讲,这条语句就比上面那条多了个括号,任何时候使用具有AND和OR操作符的语句的时候都应该带上括号明确分组操作!

3.4 IN操作符

圆括号在WHERE子句中还有另一种用法。 IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。IN取合法值由逗号分隔的清单,全部在圆括号中。

SELECT users.user_name , users.user_age FROM users WHERE users.user_age IN(19,63);1

可以看出 IN 操作符 和 OR的 功能是相似地! 那为什么要使用IN操作符呢?如下:
1.在使用长的合法选项清单中 IN 操作符语法更清楚且直观 。
2.在使用IN时,计算的次序更容易管理。
3.IN操作符一般比OR更快
4.IN操作符最大的有点就是能包含其他SELECT语句,使得能够更动态的建立WHERE子句。

3.5 NOT操作符

WHERE子句中的NOT操作符有且只有一个功能,那就是否定他之后所跟的任何条件。

NOT WHERE子句中用来否定后面条件的关键字!

如下:

SELECT users.user_name , users.user_age FROM users WHERE users.user_age NOT IN(19,63

本文地址:https://blog.csdn.net/weixin_51241005/article/details/111035367

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐