Labs ICT
โญ Pro Login

Constraints

PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL โ€” enforcing data integrity.

Enforcing Data Quality

Constraints are rules that enforce data integrity. They prevent invalid data from being inserted into the database, ensuring your data remains accurate and consistent.

Types of Constraints


  Constraint         โ”‚ Purpose                  โ”‚ Example
  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  PRIMARY KEY        โ”‚ Unique row identifier    โ”‚ ID INT PRIMARY KEY
  FOREIGN KEY        โ”‚ Link to another table    โ”‚ DeptID REFERENCES Departments(ID)
  NOT NULL           โ”‚ Column cannot be NULL    โ”‚ Name VARCHAR(100) NOT NULL
  UNIQUE             โ”‚ All values must differ   โ”‚ Email VARCHAR(150) UNIQUE
  CHECK              โ”‚ Values must satisfy rule โ”‚ Age CHECK (Age >= 16)
  DEFAULT            โ”‚ Value if none specified  โ”‚ Status DEFAULT 'active'

PRIMARY KEY


  -- Single column primary key
  CREATE TABLE Students (
      ID INT PRIMARY KEY,
      Name VARCHAR(100)
  );

  -- Composite primary key
  CREATE TABLE Enrollments (
      StudentID INT,
      CourseID INT,
      Grade CHAR(2),
      PRIMARY KEY (StudentID, CourseID)
  );

FOREIGN KEY


  CREATE TABLE Enrollments (
      StudentID INT,
      CourseID INT,
      FOREIGN KEY (StudentID) REFERENCES Students(ID)
        ON DELETE CASCADE
        ON UPDATE CASCADE,
      FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)
        ON DELETE RESTRICT
  );

  -- Referential actions:
  ON DELETE CASCADE    -- Delete child rows when parent is deleted
  ON DELETE RESTRICT   -- Prevent parent deletion if children exist
  ON DELETE SET NULL   -- Set foreign key to NULL when parent is deleted
  ON DELETE SET DEFAULT -- Set to default value

CHECK Constraint


  CREATE TABLE Products (
      ID INT PRIMARY KEY,
      Name VARCHAR(100) NOT NULL,
      Price DECIMAL(10,2) CHECK (Price > 0),
      Stock INT CHECK (Stock >= 0),
      Rating DECIMAL(3,2) CHECK (Rating BETWEEN 1.0 AND 5.0)
  );

๐Ÿงช Quick Quiz

What does ON DELETE CASCADE do?