What is CHECK?
CHECK validates data before inserting. It ensures values follow your rules.
Simple rule: CHECK = "Only allow data that passes this test"
How CHECK Works
Basic Syntax
CREATE TABLE products (
product_id SERIAL PRIMARY KEY,
name VARCHAR(100),
price DECIMAL(10,2) CHECK (price > 0),
stock INTEGER CHECK (stock >= 0)
);Example 1: Positive Price
CREATE TABLE products (
product_id SERIAL PRIMARY KEY,
name VARCHAR(100),
price DECIMAL(10,2) CHECK (price > 0)
);Example 2: Rating Range
CREATE TABLE reviews (
review_id SERIAL PRIMARY KEY,
rating INTEGER CHECK (rating >= 1 AND rating <= 5)
);Example 3: Allowed Values
CREATE TABLE students (
student_id SERIAL PRIMARY KEY,
grade VARCHAR(1) CHECK (grade IN ('A', 'B', 'C', 'D', 'F'))
);Common CHECK Rules
| Rule | Example | Prevents | |------|---------|----------| | Positive | price > 0 | Negative prices | | Range | rating BETWEEN 1 AND 5 | Invalid ratings | | List | grade IN ('A','B','C') | Invalid grades | | Non-negative | stock >= 0 | Negative stock |
Try It Below
Use the playground to practice:
SELECT * FROM products;SELECT * FROM products WHERE price > 100;
What Comes Next
Congratulations! You learned all constraints. Next: JOIN Operations to combine tables.
Try CHECK
View products. Price must be > 0 and stock >= 0.
Source Table: students
| product_id | name | price | stock |
|---|---|---|---|
| 1 | Laptop | 999.99 | 50 |
| 2 | Mouse | 29.99 | 100 |
| 3 | Keyboard | 79.99 | 0 |
3 rows
SQL Editor
Loading...
Filter by Price
Find expensive products (price > 100).
Source Table: students
| product_id | name | price | stock |
|---|---|---|---|
| 1 | Laptop | 999.99 | 50 |
| 2 | Mouse | 29.99 | 100 |
| 3 | Keyboard | 79.99 | 0 |
3 rows
SQL Editor
Loading...
Check Stock
Find products with zero stock.
Source Table: students
| product_id | name | price | stock |
|---|---|---|---|
| 1 | Laptop | 999.99 | 50 |
| 2 | Mouse | 29.99 | 100 |
| 3 | Keyboard | 79.99 | 0 |
3 rows
SQL Editor
Loading...