#1 Data Analytics Program in India
₹2,499₹1,499Enroll Now
5 min read
Question 22 of 29medium

What 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;