PostgreSQL Where语句

在本节中,我们将了解 PostgreSQL where 子句的工作原理,它用于过滤Select命令返回的行。

WHERE条件用来描述我们从一个表中获取数据或者Join各种表时的一个条件。它通常与SELECT、UPDATE 和 DELETE命令一起使用以过滤输出。它仅在满足条件时返回确切的结果。

PostgreSQL WHERE 子句的语法

PostgreSQL WHERE 条件的语法如下:

SELECT column1, column2, ..... columnN    
FROM table_name    
WHERE [search_condition]    
ORDER BY sort_expression  

在Select命令中,WHERE条件出现在FROM子句之后。条件用于过滤从SELECT 命令返回的行。

如果我们使用AND & OR运算符,where 子句可以是布尔表达式或一组布尔表达式。并且该子句必须评估为true、false 或 unknown。

WHERE 条件适用于以下格式:

它从From 子句开始 →然后它执行Where 条件 →然后它将选择特定的列→然后由Order by子句执行。

WHERE条件不支持SELECT命令下的列别名。Where 子句支持DELETEUPDATE命令,用于定义删除和更新的行。

WHERE 条件可以与逻辑运算符和比较运算符一起使用,如下表所示:

不同的操作符 描述
AND 逻辑运算符 AND
OR 逻辑运算符或
= 平等的
> 比...更棒
< 少于
<> 或 != 不等于
>= 大于或等于
<= 小于或等于
IN 如果值与列表中的任何值匹配,则 IN 运算符将返回 true
LIKE LIKE 运算符用于在值与模式匹配时返回 true
BETWEEN BETWEEN 运算符用于在值介于一系列值之间时返回 true
NOT 取反其他运算符的结果
IS NULL 如果值为 NULL,它用于返回 true。

PostgreSQL WHERE 条件示例

让我们看一些示例,了解WHERE 子句在 PostgreSQL 中的工作原理。

为此,我们将使用我们在PostgreSQL 教程的前面部分中创建的Employee表。

下面的屏幕截图定义了Employee表中存在的不同列:

在上表中,我们将使用where 子句执行不同类型的运算符。

  • 使用 WHERE 子句的 AND 运算符示例

在下面的示例中,我们将使用And 逻辑运算符组合employee表中的两个布尔表达式,以查找first_name 是 Mia 和 last_name是Smith。

SELECT first_name, last_name  
FROM   
employee  
WHERE   
first_name = 'Mia' AND last_name = 'Smith';  

执行上述命令后,我们将得到以下输出:

  • 使用 WHERE 子句的 (=) 等于运算符的示例

在下面的命令中,我们在employee表中使用等于 (=) 运算符,使用where 条件来识别last_name 等于 smith的记录。

SELECT first_name,last_name  
FROM employee  
WHERE last_name = 'smith';  

执行上述命令后,我们将得到以下输出,其中获取了最后一个_name等于smith的两条记录。

  • 使用 WHERE 子句的 OR 运算符示例

在下面的示例中,我们将在员工表中使用OR逻辑运算符来将first_name标识为Megan,将last_name标识为Will。

SELECT first_name, last_name  
FROM   
employee  
WHERE   
first_name = 'megan' OR last_name = 'will';  

执行上述命令后,我们将得到以下输出:

热门文章

优秀文章