Back to all posts

What are Constraints in SQL?

SQL में constraints डेटाबेस टेबल में डेटा को सुरक्षित और सही बनाए रखने के लिए उपयोग किए जाते हैं। ये टेबल में डेटा की वैधता (validity) और अखंडता (integrity…

SQL में constraints डेटाबेस टेबल में डेटा को सुरक्षित और सही बनाए रखने के लिए उपयोग किए जाते हैं। ये टेबल में डेटा की वैधता (validity) और अखंडता (integrity) सुनिश्चित करते हैं। Constraints के मुख्य प्रकार हैं:

  1. PRIMARY KEY: यह constraint किसी टेबल में प्रत्येक रिकॉर्ड को अद्वितीय (unique) पहचान प्रदान करता है। एक टेबल में केवल एक PRIMARY KEY हो सकती है। उदाहरण के लिए, किसी छात्रों की तालिका में छात्रा ID को PRIMARY KEY के रूप में उपयोग किया जा सकता है।
  2. FOREIGN KEY: यह constraint एक टेबल के कॉलम को दूसरे टेबल के PRIMARY KEY से जोड़ता है, जिससे डेटा की अखंडता बनी रहती है। उदाहरण के लिए, यदि एक छात्रों की तालिका और एक पाठ्यक्रम तालिका है, तो छात्रा ID को पाठ्यक्रम तालिका में FOREIGN KEY के रूप में उपयोग किया जा सकता है।
  3. UNIQUE: यह constraint यह सुनिश्चित करता है कि किसी कॉलम में सभी मान अद्वितीय हों। PRIMARY KEY के अलावा भी एक कॉलम में UNIQUE constraint लगाया जा सकता है।
  4. CHECK: यह constraint यह सुनिश्चित करता है कि कॉलम में डाले जाने वाले डेटा का मूल्य एक निश्चित शर्त को पूरा करे। उदाहरण के लिए, एक वेतन कॉलम के लिए यह सुनिश्चित करने के लिए एक CHECK constraint लगाया जा सकता है कि वेतन नकारात्मक नहीं हो सकता।
  5. NOT NULL: यह constraint यह सुनिश्चित करता है कि किसी कॉलम में NULL मान नहीं हो सकता।
  6. DEFAULT - Automatically assigns a default value if no value has been specified for the field.

इन constraints का उपयोग डेटाबेस की संरचना को बेहतर बनाने और डेटा की गुणवत्ता को सुनिश्चित करने के लिए किया जाता है।

SQL
--NOT NULL Constraint:

CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    FirstName VARCHAR(50) NOT NULL,
    LastName VARCHAR(50) NOT NULL,
    Email VARCHAR(100) NOT NULL
);

--CHECK Constraint:

CREATE TABLE Students (
    ID INT PRIMARY KEY,
    Name VARCHAR(100),
    Age INT CHECK (Age >= 18 AND Age <= 100),  -- This ensures Age is between 18 and 100
    Grade CHAR(1) CHECK (Grade IN ('A', 'B', 'C', 'D', 'E'))  -- This ensures valid Grade values
);
-- SQL Server Syntax with Named Constraints:
CREATE TABLE Students (
    ID INT PRIMARY KEY,  -- Primary Key constraint is unnamed by default
    Name VARCHAR(100),

    Age INT CONSTRAINT CHK_Age CHECK (Age >= 18 AND Age <= 100),  -- Named CHECK constraint

    Grade CHAR(1) CONSTRAINT CHK_Grade CHECK (Grade IN ('A', 'B', 'C', 'D', 'E')),  -- Named CHECK constraint

    City VARCHAR(50) CONSTRAINT DF_City DEFAULT ('Unknown')  -- Named DEFAULT constraint
);


--DEFAULT Constraint:

CREATE TABLE Orders (
    OrderID INT PRIMARY KEY,
    OrderDate DATE DEFAULT GETDATE(),
    CustomerID INT,
    TotalAmount DECIMAL(10, 2) DEFAULT 0
);

--UNIQUE Constraint:

CREATE TABLE Products (
    ProductID INT PRIMARY KEY,
    ProductName VARCHAR(100) UNIQUE,
    Price DECIMAL(10, 2)
);

--PRIMARY KEY Constraint:

CREATE TABLE Departments (
    DepartmentID INT PRIMARY KEY,
    DepartmentName VARCHAR(100)
);

--FOREIGN KEY Constraint:

CREATE TABLE Orders (
    OrderID INT PRIMARY KEY,
    OrderDate DATE,
    CustomerID INT,
    FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);

--Default Constraint
CREATE TABLE Employees (
    ID INT PRIMARY KEY,
    Name VARCHAR(100),
    Age INT DEFAULT 30,  -- Default value for Age is 30 if not specified
    City VARCHAR(50) DEFAULT 'Unknown'  -- Default city value is 'Unknown'
);

Keep building your data skillset

Explore more SQL, Python, analytics, and engineering tutorials.