SQL Exists运算符
在本文中,我们将重点关注SQL Exists运算符。
SQL Exists
" SQL Exists"是一个SQL运算符,可与子查询一起使用,使我们能够检查该子查询中特定记录的存在。
此外,它根据条件检查子查询是否从表中返回一些记录。
让我们来看下面的示例给运算符。
考虑一个在线门户,所有者决定为账单高于350美元的每个客户提供20美元的折扣。
同样,后端的开发人员团队将隔离数据库,并使用Exists运算符检查各种表中是否存在这种情况。
因此,SQL Exists在子查询返回的数据存在时执行特定查询。
现在让我们详细了解"存在运算符"的语法。
Exists运算符的语法
Exists运算符与SQL Update,Delete,Select和Insert查询配合使用效果很好。
SQL Update/Insert/Delete/Select query WHERE EXISTS (sub-query);
当且仅当子查询被执行并返回指定的记录时,EXISTS的计算结果才为TRUE。
如果列值可比较,则子查询也可用于查询另一个数据库。
了解了Exists运算符的工作和结构之后,现在让我们在接下来的部分中重点介绍相同的实现。
通过示例实现SQL EXISTS
让我们首先在下面的示例中使用SQL创建表。
在此处使用一些随机的地点名称进行演示。
create table Info(id integer, Cost integer, city varchar(20)); insert into Info(id, Cost, city) values(1, 100, Pune); insert into Info(id, Cost, city) values(2, 50, Satara); insert into Info(id, Cost, city) values(3, 65, Pune); insert into Info(id, Cost, city) values(4, 97, Mumbai); insert into Info(id, Cost, city) values(5, 12, USA);
输出:
id | Cost | city |
1 | 100 | Pune |
2 | 50 | Satara |
3 | 65 | Pune |
4 | 97 | Mumbai |
5 | 12 | USA |
create table Supply(id integer, Cost integer); insert into Supply(id, Cost) values(1, 100); insert into Supply(id, Cost) values(2, 200); insert into Supply(id, Cost) values(3, 300); insert into Supply(id, Cost) values(4, 400); insert into Supply(id, Cost) values(5, 12);
如上所述,我们已经使用SQL创建表查询创建了表-"信息"和"供应",并使用SQL插入命令向其中添加了数据。
SQL选择查询中的Exists
在下面的示例中,我们将SQL Select查询与Exists运算符一起使用。
仅当"成本"的数据值大于50时,以下查询才会选择并显示" id"和"城市"的行值。
SELECT id,City FROM Info WHERE EXISTS (SELECT Cost FROM Info WHERE Cost>50);
SQL删除查询中Exists
现在,我们使用SQL Exists运算符实现了SQL Delete查询,以执行以下操作
当且仅当以下两个表("信息"和"供应")中的" id"列相同且"供应"中存在"成本"的值为12时,以下查询才会从"信息"表中删除数据行表。
DELETE FROM Info WHERE EXISTS (SELECT * FROM Supply WHERE Info.id = Supply.id AND Supply.Cost = 12);
SQL更新查询中Exists
在此示例中,我们将SQL Update查询与SQL Exists运算符一起使用。
当且仅当两个表的" id"列的值都相等时," Cost"列的所有数据值都将设置为20。
Update Info set Cost = 20 WHERE EXISTS (SELECT * FROM Supply WHERE Info.id = Supply.id );