The PostgreSQL NOT
operator is used to negate a condition in a query. This operator is essential for filtering query results where the specified condition must be false.
SELECT columns
FROM table_name
WHERE NOT condition;
The NOT
operator has the following components:
columns
: The columns to be retrieved from the table.table_name
: The table from which to retrieve the data.condition
: The condition to be negated.Let's look at some examples of PostgreSQL NOT
operator queries:
SELECT customer_id, customer_name
FROM customers
WHERE NOT customer_id = 1;
This query retrieves the customer_id
and customer_name
from the customers
table where the customer_id
is not equal to 1.
SELECT product_id, product_name
FROM products
WHERE NOT (price > 30.00 AND in_stock = true);
This query retrieves the product_id
and product_name
from the products
table where the price
is not greater than 30.00 or the product is not in stock.
SELECT order_id, order_date
FROM orders
WHERE NOT order_date = '2024-01-01';
This query retrieves the order_id
and order_date
from the orders
table where the order_date
is not '2024-01-01'.
SELECT customer_id, customer_name
FROM customers
WHERE NOT customer_name = 'John Doe';
This query retrieves the customer_id
and customer_name
from the customers
table where the customer_name
is not 'John Doe'.
Let's go through a complete example that includes creating a table, inserting data, and using the NOT operator to filter data.
This step involves creating a new table named products
to store product data.
CREATE TABLE products (
product_id SERIAL PRIMARY KEY,
product_name VARCHAR(100),
price NUMERIC(10, 2),
in_stock BOOLEAN
);
In this example, we create a table named products
with columns for product_id
, product_name
, price
, and in_stock
.
This step involves inserting some sample data into the products
table.
INSERT INTO products (product_name, price, in_stock)
VALUES ('Product A', 30.00, true),
('Product B', 60.00, false),
('Product C', 90.00, true);
Here, we insert data into the products
table.
This step involves using the NOT
operator to filter data from the products
table.
-- Basic NOT
SELECT product_id, product_name
FROM products
WHERE NOT price = 60.00;
-- NOT with Multiple Conditions
SELECT product_id, product_name
FROM products
WHERE NOT (price > 30.00 AND in_stock = true);
-- NOT with Date Comparison
SELECT order_id, order_date
FROM orders
WHERE NOT order_date = '2024-01-01';
-- NOT with String Comparison
SELECT customer_id, customer_name
FROM customers
WHERE NOT customer_name = 'John Doe';
These queries demonstrate how to use the NOT
operator to filter data from the products
table, including basic negations, multiple conditions, date comparisons, and string comparisons.
The PostgreSQL NOT
operator is a fundamental tool for negating conditions and filtering query results where the specified condition must be false. Understanding how to use the NOT
operator and its syntax is essential for effective data retrieval and manipulation in PostgreSQL databases.