SQL数据过滤基本用法

SQL数据过滤基本用法

SQL中的数据过滤主要应用WHERE语句,并结合一系列的运算符、逻辑运算和通配符过滤实现对数据的过滤。

#运算符的种类
= #等于,注意不要写成了==
<> #不等于,与!=一致
!= #不等于
< #小于
<= #小于等于
!< #不小于,与>=一致
> #大于
>= #大于等于
!> #不大于,与<=一致
BETWEEN AND #使用类似于英语语法,BETWEEN 数字1 AND 数字2
IS NULL #判断缺失值

那么,知道了以上的运算符之后,该怎么使用这些运算符去过滤数据呢?其实很简单,就是在WHERE语句之后注明条件即可。

SELECT city
FROM CityListing
WHERE city = 'Beijing'; #条件为city的值等于'Beijing',就是只有符合该条件的行才能被检索
SELECT grade
FROM class_one
WHERE grade BETWEEN 60 AND 100; #条件为grade的值介于60和100之间(具体包不包括60和100取决于DBMS)

单单只有运算符是不够的,在更复杂的数据过滤中,还要结合逻辑运算的使用。所谓逻辑运算,就是AND, OR, NOT, IN四个运算符。这四个运算符都是在WHERE语句中使用。

SELECT column_a, column_b, column_c
FROM table_a
WHERE column_a = 10 AND column_b > 10; #条件是column_a = 10且column_b > 10
SELECT column_a, column_b, column_c
FROM table_a
WHERE column_a = 10 OR column_b > 10; #条件是column_a = 10或column_b > 10
SELECT column_a, column_b, column_c
FROM table_a
WHERE column_a IN ('John','Jeremy'); #条件是column_a = 'John' 或	'Jeremy'
SELECT column_a, column_b, column_c
FROM table_a
WHERE NOT column_a = 10;#条件是column_a不等于10

此外,还会经常使用到通配符筛选数据。常用的通配符有三类:
百分号通配符(%),下划线通配符(_)和方括号通配符([])。通配符筛选数据需要结合LIKE语句实现。LIKE语句的用法也非常接近英语语法,在WHERE中使用。

# %可以匹配除NULL外的所有的字符,包括空字符
SELECT column_a
FROM table_a
WHERE column_a LIKE 'China%'; #条件是以China开头
# _可以匹配除NULL外的所有的单个字符
SELECT column_a
FROM table_a
WHERE column_a LIKE '_hina' ; #条件是第二个字母至第五个字母分别是hina,第一个字母随意
# []可以匹配一个方括号内的出现的字符
SELECT column_a
FROM table_a
WHERE column_a LIKE '[AB]%' #条件是开头为A或B

最后提两点注意:

  1. 在WHERE和ORDER BY混用的情况下,ORDER BY放到WHERE的后面
  2. AND的优先级要比OR高,所以AND和OR混用时可以使用括号( )保证合适的优先次序

猜你喜欢

转载自blog.csdn.net/waves_/article/details/106872110