PostgreSQL条件查询【1】

91 阅读1分钟

PostgreSQL条件用于从数据库获取更具体的结果。 它们通常与WHERE子句一起使用。 具有子句的条件就像双层过滤器

以下是PostgreSQL条件的列表:

-   AND 条件
-   OR 条件
-   AND & OR 条件
-   NOT 条件
-   LIKE 条件
-   IN 条件
-   NOT IN 条件
-   BETWEEN 条件

AND

WHERE子句一起使用,以从表中的**多个列中选择唯一的数据**

语法

SELECT column1, column2, ..... columnN FROM
table_name WHERE 
[search_condition] AND [search_condition];

例 数据表如下

下面来查询所有ID小于`4`并且薪水大于`120000`的员工数据信息,执行以下查询语句
SELECT * FROM EMPLOYEES WHERE SALARY > 120000 AND ID <= 4; 

NVIDIA_Share_0hdEIu2vGn.png

结果如下

NVIDIA_Share_pCWNKJWO0l.png

OR

与`WHERE`子句一起使用,**以从表中的一列或多列列中选择唯一数据**

语法

SELECT column1, column2, ..... columnN FROM
table_name WHERE 
[search_condition] OR [search_condition];

例 数据表如下

查询名字是`Minsu`或者地址为`Noida`员工信息,执行以下查询
SELECT * FROM EMPLOYEES WHERE NAME = 'Minsu' OR ADDRESS = 'Noida';

NVIDIA_Share_0hdEIu2vGn.png

结果如下

NVIDIA_Share_GXi9X4DCup.png

AND和OR对比

AND必须两项都满足才能查询出结果,OR只需要满足一项即可查询出结果

PostgreSQL AND&OR条件在仅一个查询中提供了ANDOR条件的优点。

结合使用

语法

SELECT column1, column2, ..... columnN FROM table_name 
WHERE [search_condition] AND [search_condition] OR [search_condition]; 

例 数据表如下 查询名字的值为Minsu和地址的值为’Delhi‘,或者ID值大于等8的记录信息,执行以下查询

SELECT * FROM EMPLOYEES WHERE (NAME = 'Minsu' AND ADDRESS = 'Delhi') OR (ID>= 8); 
先AND再OR

NVIDIA_Share_0hdEIu2vGn.png

结果如下

NVIDIA_Share_PPoeKbrce6.png

PostgreSQL NOT条件与WHERE子句一起使用以否定查询中的条件

语法
SELECT column1, column2, ..... columnN FROM table_name 
WHERE [search_condition] NOT [condition]; 

例 查询那些地址不为NULL的记录信息,执行以下查询

SELECT * FROM EMPLOYEES WHERE address IS NOT NULL ;
结果全部不为null,则输出全部查询结果

NVIDIA_Share_0hdEIu2vGn.png

例二

SELECT * FROM EMPLOYEES WHERE age NOT IN(21,24); 
查询结果如下

NVIDIA_Share_69V4qTdLjG.png