📜  PostgreSQL – WHERE 子句(1)

📅  最后修改于: 2023-12-03 15:33:44.828000             🧑  作者: Mango

PostgreSQL – WHERE 子句

在使用 PostgreSQL 数据库进行数据查询时,WHERE 子句是一个非常重要的部分。它用于在查询中筛选出满足特定条件的数据行。下面是关于 PostgreSQL WHERE 子句的详细介绍。

语法

WHERE 子句通常在 SELECT、UPDATE 和 DELETE 语句中使用。它的基本语法如下:

SELECT column1, column2, ...
FROM table_name
WHERE condition;

其中:

  • column1、column2、...:要查询的列名
  • table_name:要查询的表名
  • condition:WHERE 子句中的条件表达式,用于筛选数据行
示例

下面是一个简单的示例,演示了如何使用 PostgreSQL WHERE 子句查询数据:

SELECT * FROM employee
WHERE age > 30;

这个查询语句将返回 employee 表中所有年龄大于 30 岁的员工数据行。

运算符

WHERE 子句中可以使用各种运算符来比较表中的数据。下面是一些常见的运算符:

  • =:等于
  • <> 或 !=:不等于
  • <:小于
  • <=:小于或等于
  • :大于

  • =:大于或等于

  • BETWEEN:在指定的两个值之间
  • IN :匹配列表中的任意一个值
  • LIKE:模糊匹配
  • IS NULL:空值

例如:

-- 筛选出工资大于等于 5000 的员工
SELECT * FROM employee
WHERE salary >= 5000;

-- 筛选出名字是 "Tom" 的员工
SELECT * FROM employee
WHERE name = 'Tom';

-- 筛选出没有分配部门的员工
SELECT * FROM employee
WHERE department_id IS NULL;

-- 筛选出名字以 "T" 开头的员工
SELECT * FROM employee
WHERE name LIKE 'T%';
逻辑运算符

可以使用逻辑运算符来连接多个条件表达式。常见的逻辑运算符包括:

  • AND:连接两个条件,要求两个条件都满足
  • OR:连接两个条件,要求至少一个条件满足
  • NOT:取反一个条件表达式

例如:

-- 筛选出年龄大于 30 岁,并且工资大于等于 5000 的员工
SELECT * FROM employee
WHERE age > 30 AND salary >= 5000;

-- 筛选出名字是 "Tom",或者年龄小于 25 岁的员工
SELECT * FROM employee
WHERE name = 'Tom' OR age < 25;

-- 筛选出不在部门 1 中的员工
SELECT * FROM employee
WHERE department_id <> 1;

可以使用括号来明确条件表达式的优先级。

总结

WHERE 子句是 PostgreSQL 中非常重要的一个部分,它用于在查询中筛选出满足特定条件的数据行。在编写 WHERE 子句时,需要使用运算符和逻辑运算符来连接条件表达式,以便指定需要筛选的数据行。