PostgreSQL WHERE
在本节中,我们将了解PostgreSQL
where子句的工作原理,该子句用于过滤由...返回的行
Select 命令。
WHERE条件用于描述当我们从表或联接各种表中获取数据时的条件。它通常与
SELECT,UPDATE和DELETE 命令一起使用以过滤输出。仅当条件满足时,它才返回精确结果。
注意: 要选择满足详细条件的行,我们使用WHERE子句。 SELECT命令返回表中一个或多个列的所有行。
PostgreSQL WHERE子句的语法
PostgreSQL WHERE条件的语法如下:
SELECT column1, column2, ..... columnN
FROM table_name
WHERE [search_condition]
ORDER BY sort_expression
在
Select 命令中,
FROM 子句后面是
WHERE 条件。并且该条件用于过滤从 SELECT命令返回的行。
where子句可以如果我们使用
AND&,则为布尔值表达式或一组布尔表达式。或 运算符。并且该子句必须评估为
true,false或unknown 。
WHERE条件适用于以下格式:
它从
开始从子句→,然后执行
Where条件→,之后将
选择特定列
→,然后按
排序依据子句。
所在位置条件不支持
SELECT 命令下的
列别名。 Where子句支持
Delete 和 UPDATE 命令,用于定义已删除和更新的行。
WHERE条件可以与
逻辑一起使用和比较运算符,如下表所示:
不同的运算符 |
说明 |
AND |
逻辑运算符AND |
OR |
逻辑运算符或 |
= |
等于 |
> |
大于 |
|
少于 |
<> 或 != |
不相等 |
> = |
大于或等于 |
<= |
小于或等于 |
IN |
如果值与列表中的任何值匹配,则IN运算符将返回true |
LIKE |
如果值与模式匹配,则LIKE运算符用于返回true |
BETWEEN |
如果值在值范围内,则使用BETWEEN运算符返回true |
NOT |
取反其他运算符的结果 |
IS NULL |
如果值为NULL,则返回true。 |
PostgreSQL WHERE条件的示例
让我们看一些示例,以了解
WHERE子句在PostgreSQL中的工作方式。
为此,我们将使用
Employee 表。
下面的屏幕快照定义了
Employee 表中存在的不同列:
在上表中,我们将执行
不同类型的运算符使用
where子句。
使用WHERE子句的AND运算符的示例
在下面的示例中,我们将使用
And逻辑运算符在
employee 中组合两个布尔表达式表格中找到
名叫Mia,姓氏是
史密斯。
SELECT first_name, last_name
FROM
employee
WHERE
first_name = 'Mia' AND last_name = 'Smith';
输出
执行上述命令后,我们将获得以下输出:
使用WHERE子句的(=)等于运算符的示例
在以下命令中,我们使用
employee 表中的
等于(=)运算符 >条件以标识记录
其姓氏等于史密斯的记录。
SELECT first_name,last_name
FROM employee
WHERE last_name = 'smith';
输出
执行上述命令后,我们将获得以下输出,该输出将提取
姓氏等于
史密斯。
使用WHERE子句的OR运算符的示例
在以下示例中,我们将使用
OR 逻辑运算符表中的
员工 ,将
名标识为
Megan ,并将
姓氏 >为
将。
SELECT first_name, last_name
FROM
employee
WHERE
first_name = 'megan' OR last_name = 'will';
输出
执行上述命令后,我们将获得以下输出:
使用WHERE子句的LIKE运算符的示例
在这里,我们将使用
LIKE运算符
下面的命令显示
last_name 以
smi 字符串开头的记录。
employee 表。
SELECT first_name,last_name
FROM employee
WHERE last_name LIKE 'smi%';
输出
执行上述命令后,我们将获得以下输出,其中上述查询获取
四个记录,其
last_name 以
smi字符串开头:
注意: 在上面的命令中,%被称为通配符,它有助于匹配任何字符串。并且'smi%'模式与以'smi'开头的字符串匹配。
使用WHERE子句的IN运算符的示例
在这里,我们将使用
IN运算符将字符串与列表中的任何字符串匹配。
以下命令显示其
last_name 是
employee 表中的
smi,smith 。
SELECT first_name,last_name
FROM employee
WHERE last_name IN ('smi','smith');
输出
一旦执行了上述命令,我们将获得以下输出:
使用WHERE子句的BETWEEN运算符的示例
在以下命令中,我们将使用
Between运算符来显示
last_name ,该名称以字符串
ith 和在
employee 表中具有
2到6 个字符。
注意: 在此,我们使用了LENGTH()函数来获取输入字符串字符的数量。
SELECT last_name, LENGTH(last_name) name_length
FROM employee
WHERE last_name LIKE '%ith' AND LENGTH(last_name) BETWEEN 2 AND 6
ORDER BY name_length;
输出
执行上面的命令后,我们将获得以下输出,上面的查询将提取与第
ith个字符串匹配的两条记录,并且
名称长度在
2和6 之间。
使用WHERE子句的不等于运算符(<>)的示例
在下面的示例中,我们将使用
不等于<> 运算符来标识其
address开头的
员工
新字符串和
名字不等于
奥利维亚。
SELECT first_name, last_name, address
FROM employee
WHERE address LIKE 'New%' AND first_name <> 'Olivia';
输出
执行上面的命令后,我们将获得以下输出,其中查询获取
两条记录,其
address与
新字符串匹配,并且
first_name 不等于
Olivia 。
注意: 我们可以同时使用<>运算符和!=运算符,因为它们与下面的命令类似:
SELECT first_name, last_name, address
FROM employee
WHERE address LIKE 'New%' AND first_name <> 'John';
输出
执行以上命令后,我们将获得以下输出,其中查询将提取地址以
新字符串开头的一条记录,并且
first_name 不等于
John 。