SQL NOT Operator
SQL NOT Operator
The SQL NOT operator is used to negate a condition in a SQL query's WHERE clause. This command is essential for excluding rows that meet specific criteria, allowing for more precise and controlled data filtering.
Syntax
SELECT column1, column2, ...
FROM table_name
WHERE NOT condition;
SELECT: This is the SQL keyword used to specify the columns to retrieve.column1, column2, ...: These specify the names of the columns to retrieve.FROM: This is the SQL keyword used to specify the table.table_name: This specifies the name of the table from which to retrieve the rows.WHERE: This is the SQL keyword used to specify the conditions for filtering the rows.NOT condition: This specifies the condition that must not be met for the rows to be retrieved.
Example
Let's go through a complete example that includes creating a database, creating a table, inserting data into the table, and then using the NOT operator to filter specific rows by negating conditions.
Step 1: Creating a Database
This step involves creating a new database named example_db.
CREATE DATABASE example_db;
In this example, we create a database named example_db.
Step 2: Creating a Table
In this step, we create a table named employees within the previously created database.
USE example_db;
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
email VARCHAR(100),
hire_date DATE
);
Here, we define the employees table with columns for id, first_name, last_name, email, and hire_date. The id column is set as the primary key and will auto-increment.
Step 3: Inserting Data into the Table
This step involves inserting some sample data into the employees table.
INSERT INTO employees (first_name, last_name, email, hire_date) VALUES ('John', 'Doe', 'john.doe@example.com', '2023-01-01');
INSERT INTO employees (first_name, last_name, email, hire_date) VALUES ('Jane', 'Smith', 'jane.smith@example.com', '2023-02-01');
INSERT INTO employees (first_name, last_name, email, hire_date) VALUES ('Alice', 'Johnson', 'alice.johnson@example.com', '2023-03-01');
INSERT INTO employees (first_name, last_name, email, hire_date) VALUES ('Bob', 'Brown', 'bob.brown@example.com', '2023-04-01');
Here, we insert four rows of data into the employees table.
Step 4: Using the NOT Operator
This step involves retrieving rows from the employees table where the last_name is not 'Doe'.
SELECT * FROM employees
WHERE NOT last_name = 'Doe';
This command will return the rows from the employees table where the last_name is not 'Doe'.
You can also use the NOT operator with other conditions and comparison operators, such as:
!=or<>(not equal to)>(greater than)<(less than)>=(greater than or equal to)<=(less than or equal to)LIKE(pattern matching)IN(matching any value in a list)BETWEEN(within a range of values)
For example, to retrieve rows where the last_name is not 'Doe' and the email does not contain 'example.com':
SELECT * FROM employees
WHERE NOT last_name = 'Doe' AND NOT email LIKE '%example.com';
This command will return the rows from the employees table where the last_name is not 'Doe' and the email does not contain 'example.com'.