5 min read
•Question 22 of 29mediumWhat are SQL constraints?
Data integrity rules.
What You'll Learn
- Types of constraints
- Adding constraints
- Use cases
Types of Constraints
PRIMARY KEY
query.sqlSQL
CREATE TABLE users (
id INT PRIMARY KEY,
email VARCHAR(255)
);
-- Composite primary key
CREATE TABLE order_items (
order_id INT,
product_id INT,
PRIMARY KEY (order_id, product_id)
);FOREIGN KEY
query.sqlSQL
CREATE TABLE orders (
id INT PRIMARY KEY,
user_id INT,
FOREIGN KEY (user_id) REFERENCES users(id)
ON DELETE CASCADE
ON UPDATE CASCADE
);UNIQUE
query.sqlSQL
CREATE TABLE users (
id INT PRIMARY KEY,
email VARCHAR(255) UNIQUE,
UNIQUE (first_name, last_name) -- Composite unique
);NOT NULL
query.sqlSQL
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(255) NOT NULL
);CHECK
query.sqlSQL
CREATE TABLE products (
id INT PRIMARY KEY,
price DECIMAL(10,2) CHECK (price > 0),
quantity INT CHECK (quantity >= 0),
status VARCHAR(20) CHECK (status IN ('active', 'inactive'))
);DEFAULT
query.sqlSQL
CREATE TABLE users (
id INT PRIMARY KEY,
status VARCHAR(20) DEFAULT 'pending',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);Adding Constraints
query.sqlSQL
-- Add constraint
ALTER TABLE users ADD CONSTRAINT uk_email UNIQUE (email);
ALTER TABLE orders ADD FOREIGN KEY (user_id) REFERENCES users(id);
ALTER TABLE products ADD CHECK (price > 0);
-- Drop constraint
ALTER TABLE users DROP CONSTRAINT uk_email;