![]() |
When querying a database in SQLite, there are situations where you need to filter out rows based on conditions that involve another set of values or a subquery. This is where the NOT IN and NOT EXISTS operators come into play. While both operators achieve similar results, they do so in different ways and have different performance characteristics. In this article, we will see the what is NOT IN and NOT EXISTS operator along with their examples and their differences too. Setting Up EnvironmentLet us start by creating a sample table and inserting some values into it. For this article, we are going to create an employee table that contains information on the manager of each employee. We will later use this manager information to understand NOT IN and NOT EXISTS clauses. The following query creates the specified table and inserts some rows into it. -- create Output: ![]() Table created Explanation: Table has been created. What is NOT IN Condition?In SQL, the NOT IN condition is used to filter out and exclude records in a particular range. It is commonly used in the WHERE clause of a SELECT, UPDATE, DELETE, or MERGE statement to exclude rows based on a specific list of values. Syntax: query... Example 1The following query will output all the employees which doesn’t have an odd employee_id: Query: SELECT * FROM employees Output: ![]() Output Explanation: This query retrieves all columns for employees whose Example 2Let’s fetch the information about all the employees whose name starts with any character other than ‘A’. Query: SELECT * FROM employees Output: ![]() Output Explanation: This query retrieves all columns for employees whose names do not start with ‘A’. It uses a subquery to filter out rows with names starting with ‘A’ from the Example 3The following query finds out all the employee which are manager-less. Query: SELECT * FROM employees Output: ![]() Output Explanation: This query retrieves all columns for employees who are not managers. It uses a subquery to filter out rows where the What is NOT EXISTS Operator?In SQL, the NOT EXISTS condition is a Boolean condition that tests for the non-existence of rows in a subquery. It returns FALSE if the subquery returns at least one row, otherwise it returns TRUE. It is primarily used in WHERE clauses to exclude records. Syntax: query... Example 1The following query will output all the employees who are not manager of any other employee. Query: SELECT * FROM employees e Output: ![]() Output Explanation: This query retrieves all columns for employees who are not managers. It uses a correlated subquery to check if there is no other employee with the same Example 2Let’s fetch the information about all the employees whose name starts with any character other than ‘A’. Query: SELECT * FROM employees e1 Output: ![]() Output Explanation: This query retrieves all columns for employees whose names do not start with ‘A’. It uses a correlated subquery to check if there is no other employee with the same Example 3The following query finds out all the employee which have no manager assigned to them. Query: SELECT * FROM employees e1 Output: ![]() Output Explanation: This query retrieves all columns for employees who are not managers. It uses a correlated subquery to check if there is no other employee with the same Difference Between NOT IN vs NOT EXISTS OperatorThe following are some of the differences between NOT IN and NOT EXISTS:
ConclusionOverall, After reading whole article both NOT IN and NOT EXISTS are used for solving subquery results in SQLite, they have distinct characteristics. NOT EXISTS is typically more efficient, especially for large datasets, due to its ability to terminate processing once a match is found and NOT IN can lead to unexpected results if the subquery contains NULL values We have seen in the above examples that the in NOT EXISTS we don’t need to specify to contain NOT NULL value but in NOT IN we have to specify that to contain NOT NULL values. |
Reffered: https://www.geeksforgeeks.org
Databases |
Type: | Geek |
Category: | Coding |
Sub Category: | Tutorial |
Uploaded by: | Admin |
Views: | 14 |