数据库-过滤数据
WHERE子句中的操作符
我们查询数据库不能把每一列的数据都全部列出来,太多了反而我们会找不到我们想要的数据,这样我们就用到了过滤数据的子句。
使用WHERE子句
数据库中一般都包含大量的数据,很少需要检索表中的所有行,通常只会根据限定操作或报告的需要提取表数据的子集,这样我们就要用到WHERE
子句了,在子句中,我们可以把自己需要的条件写在其中这样,在检索的时候就会把按照你要的数据检索出来。
例如:
SELECT prod_name, prod_price
FROM Products
WHERE prod_price = 3.49;
这段代码就将Products表prod_name,prod_price两列筛选出prod_price列符合3.49的行输出至屏幕。
WHERE 语句操作符
为了更好的使用WHERE
子句,我们可以在其中使用操作符:
= 等于
<> 不等于
!= 不等于
< 小于
<= 小于等于
!< 不小于
> 大于
>= 大于等于
!> 不大于
BETWEEN 在指定的两个值之间
IS NULL 为NULL值
——————————————————————————————————————————
检查单个值
我们可以用这些符号来筛选我们需要的值,我们先从一些最简单的例子来说:
SELECT prod_name, prod_price
FROM Products
WHERE prod_price < 10;
这个例子列出了小于十元的产品。
而这些操作符大多数都是同样的用法并没有什么大的区别,例如这个例子,体现出了操作的使用方法。
BETWEEN 操作符
还有两个相对来说比其他的特殊的操作符:
SELECT prod_name, prod_price
FROM Products
WHERE prod_price BETWEEN 5 AND 10;
这个例子表示出在Products表中检索prod_price列符合五元至十元的行,显示出符合条件的prod_name,prod_price两列的行,输出。
在SQL Server
中BETWEEN AND
是包含前后值的。
IS NULL 操作符
SELECT prod_name
FROM Products
WHERE prod_price IS NULL;
这个例子就表示出检查列中为空值的行显示出来。
组合 WHERE 子句
AND 操作符
利用AND
操作符将两个条件联结起来查询,两个条件都符合的才能显示出来。
例如:
SELECT prod_id, prod_price, prod_name
FROM Products
WHERE vend_id = 'DLL01' AND prod_price <=4;
符合题中两个条件的列值输出显示出来。
OR 操作符
利用OR
操作符将两个条件联合起来查询,两个条件只要符合其中一个就可以显示出来。
例如:
SELECT prod_id, prod_price, prod_name
FROM Products
WHERE vend_id = 'DLL01' OR vend_id = 'BRS01';
将符合两个条件其中任何一个的列值输出显示出来。
求值顺序
当一个查询语句中既有AND
又有OR
的时候,查询语句会先执行AND
操作符,然后再执行OR
操作符。
IN 操作符
IN 操作符用来指定条件范围,范围中的每个条件都可以进行匹配。 IN 取一组由逗号分隔,括在圆括号中的合法值。
SELECT prod_name, prod_price
FROM Products
WHERE vend_id IN ('DLL01','BRS01')
ORDER BY prod_name;
利用IN
操作符来完成对括号内的值进行检测,保证和外面的值能对应上,才能输出显示出来。
NOT 操作符
NOT 操作符表达了一个”非“的感觉。类似于,符号中的<>``!=
。
LIKE 操作符
和通配符连用,找出特定的某一行数据。
百分号(%)通配符
在搜索字段中,`%`表示任意字符出现任意次数。
例如:
SELECT prod_id, prod_name
FROM Products
WHERE prod_name LIKE 'Fish%';
这段代码就表示了寻找以Fish打头的产品。
而且在搜索中是区分大小写。
%
可以出现在任意地方,表示那里有任意字符出现任意次数。
下划线(_)通配符
它和%的用法一样,但它只能代表一个字符。
方括号([])通配符
方括号([])通配符用来指定一个字符集,它必须匹配指定位置(通配符的位置)的一个字符。 这么说可能费劲,我们举例子来说:
SELECT cust_contact
FROM Customers
WHERE cust_contact LIKE '[JM]%'
ORDER BY cust_contact;
例如这个程序,就表示找出以J或者M开头的联系人。 中括号的作用就是用其中任意字符再加上通配符来表示你想要表达的东西。
取‘非’
类似于NOT
的功能,在中括号中加一个^
符号,来表示取不是中括号中的值的行。