Mysql 简明教程
MySQL - Exists Operator
MySQL Exists Operator
MySQL 中的 EXISTS 运算符用于检查表中记录是否存在。在 SELECT 语句的 WHERE 子句中使用它来验证子查询是否返回任何行。如果子查询返回至少一条记录,则返回 TRUE,否则返回 FALSE。
我们还可以将运算符与 SQL 语句(如 SELECT, INSERT, UPDATE, and DELETE )配合使用,以验证子查询中记录的存在性。
Syntax
下面是 MySQL 中 EXISTS 运算符的语法 −
SELECT column1, column2, ...
FROM table_name
WHERE EXISTS (subquery);
Example
在执行 EXISTS 运算符之前,让我们先生成两个不同的表,名为 CUSTOMERS 和 CARS 。在此,我们正在创建 CUSTOMERS 表 −
CREATE TABLE CUSTOMERS (
ID INT AUTO_INCREMENT,
NAME VARCHAR(20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25),
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID)
);
以下查询使用 INSERT INTO 语句将 7 条记录添加到上述已创建的表中 −
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES
(1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ),
(2, 'Khilan', 25, 'Delhi', 1500.00 ),
(3, 'Kaushik', 23, 'Kota', 2000.00 ),
(4, 'Chaitali', 25, 'Mumbai', 6500.00 ),
(5, 'Hardik', 27, 'Bhopal', 8500.00 ),
(6, 'Komal', 22, 'Hyderabad', 4500.00 ),
(7, 'Muffy', 24, 'Indore', 10000.00 );
执行以下查询以提取 CUSTOMERS 表中显示的所有记录:
SELECT * FROM CUSTOMERS;
以下为 CUSTOMERS 表 −
让我们创建一个名为 CARS 的另一个表,其中包含 ID、NAME 和车的 PRICE 的详细信息 −
CREATE TABLE CARS (
ID INT NOT NULL,
NAME VARCHAR(20) NOT NULL,
PRICE INT NOT NULL,
PRIMARY KEY (ID)
);
以下查询将 3 条记录插入到上述已创建的表中 −
INSERT INTO CARS (ID, NAME, PRICE) VALUES
(2, 'Maruti Swift', 450000),
(4, 'VOLVO', 2250000),
(7, 'Toyota', 2400000);
执行以下查询以获取 CARS 表中存在的所有记录 −
SELECT * FROM CARS;
以下是 CARS 表 −
EXISTS operator with SELECT statement
MySQL 中的 SELECT 语句用于从一个或多个表中检索数据。EXISTS 运算符可与 SELECT 语句一起使用,以检查是否存在与特定条件匹配的行。
EXISTS Operator with UPDATE statement
MySQL EXISTS 运算符可与 UPDATE 语句一起使用,以根据另一个表中匹配行的存在情况,更新表中的行。
Example
在此查询中,我们使用 EXISTS 运算符将匹配 CARS 表中的 ID 的所有客户的名称更新为“Kushal” −
UPDATE CUSTOMERS
SET NAME = 'Kushal'
WHERE EXISTS
(SELECT NAME FROM CARS
WHERE CUSTOMERS.ID = CARS.ID);
EXISTS Operator with DELETE statement
MySQL EXISTS 运算符与 DELETE 语句配合使用,根据子查询返回的行是否存在来删除表中的行。
NOT Operator with EXISTS Operator
如果我们在 MySQL 中使用带有 EXISTS 运算符的 NOT,它将从一个表中选择不存在于另一个表中的记录。
Syntax
以下是 MySQL 中 NOT EXISTS 运算符的语法 −
SELECT column1, column2, ...
FROM table_name
WHERE NOT EXISTS (subquery);