SQL CHECK Constraint

CHECK கட்டுப்பாட்டைப் பற்றி அறிந்து, நெடுவரிசைகளில் உள்ள மதிப்பு வரம்புகளை எவ்வாறு கட்டுப்படுத்துவது என்பதைக் கற்றுக்கொள்ளுங்கள்

SQL CHECK Constraint என்றால் என்ன?

CHECK கட்டுப்பாடு ஒரு நெடுவரிசையில் வைக்கக்கூடிய மதிப்பு வரம்பைக் கட்டுப்படுத்தப் பயன்படுகிறது.

நீங்கள் ஒரு நெடுவரிசையில் CHECK கட்டுப்பாட்டை வரையறுத்தால், அது இந்த நெடுவரிசைக்கு சில குறிப்பிட்ட மதிப்புகளை மட்டுமே அனுமதிக்கும்.

நீங்கள் ஒரு அட்டவணையில் CHECK கட்டுப்பாட்டை வரையறுத்தால், அது வரிசையில் உள்ள பிற நெடுவரிசைகளில் உள்ள மதிப்புகளின் அடிப்படையில் சில நெடுவரிசைகளில் உள்ள மதிப்புகளைக் கட்டுப்படுத்தும்.

💡 முக்கியமான குறிப்பு:

CHECK கட்டுப்பாடு தரவு ஒருமைப்பாட்டை பராமரிக்க உதவுகிறது, ஏனெனில் இது நெடுவரிசைகளில் செல்லுபடியாகும் மதிப்புகள் மட்டுமே உள்ளிடப்படுவதை உறுதி செய்கிறது.

CREATE TABLE-ல் SQL CHECK

"Persons" அட்டவணை உருவாக்கப்படும் போது "Age" நெடுவரிசையில் CHECK கட்டுப்பாட்டை உருவாக்க பின்வரும் SQL பயன்படுத்தப்படுகிறது. CHECK கட்டுப்பாடு ஒரு நபரின் வயது 18 அல்லது அதற்கு மேற்பட்டதாக இருக்க வேண்டும் என்பதை உறுதி செய்கிறது:

MySQL:

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    CHECK (Age>=18)
);

SQL Server / Oracle / MS Access:

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int CHECK (Age>=18)
);

CHECK கட்டுப்பாட்டிற்கு பெயரிடுதல் மற்றும் பல நெடுவரிசைகளில் வரையறுத்தல்

CHECK கட்டுப்பாட்டிற்கு பெயரிடவும், பல நெடுவரிசைகளில் CHECK கட்டுப்பாட்டை வரையறுக்கவும், பின்வரும் SQL தொடரியலைப் பயன்படுத்தவும்:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    City varchar(255),
    CONSTRAINT CHK_Person CHECK (Age>=18 AND City='Sandnes')
);

📝 குறிப்பு:

மேலே உள்ள உதாரணத்தில், CHECK கட்டுப்பாடு வயது 18 அல்லது அதற்கு மேற்பட்டதாகவும், நகரம் 'Sandnes' ஆகவும் இருக்க வேண்டும் என்பதை உறுதி செய்கிறது.

ALTER TABLE-ல் SQL CHECK

அட்டவணை ஏற்கனவே உருவாக்கப்பட்ட பிறகு "Age" நெடுவரிசையில் CHECK கட்டுப்பாட்டை உருவாக்க, பின்வரும் SQL-ஐப் பயன்படுத்தவும்:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CHECK (Age>=18);

CHECK கட்டுப்பாட்டிற்கு பெயரிடுதல் மற்றும் பல நெடுவரிசைகளில் வரையறுத்தல்

CHECK கட்டுப்பாட்டிற்கு பெயரிடவும், பல நெடுவரிசைகளில் CHECK கட்டுப்பாட்டை வரையறுக்கவும், பின்வரும் SQL தொடரியலைப் பயன்படுத்தவும்:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City='Sandnes');

CHECK கட்டுப்பாட்டை நீக்குதல்

CHECK கட்டுப்பாட்டை நீக்க, பின்வரும் SQL-ஐப் பயன்படுத்தவும்:

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT CHK_PersonAge;

MySQL:

ALTER TABLE Persons
DROP CHECK CHK_PersonAge;

CHECK கட்டுப்பாட்டின் நன்மைகள்

மதிப்பு வரம்பு

  • நெடுவரிசைகளில் உள்ள மதிப்புகளைக் கட்டுப்படுத்துகிறது
  • தவறான தரவு உள்ளீட்டைத் தடுக்கிறது
  • தரவு துல்லியத்தை உறுதி செய்கிறது

தர்க்கரீதியான விதிகள்

  • சிக்கலான விதிகளை வரையறுக்க அனுமதிக்கிறது
  • பல நெடுவரிசைகளைச் சார்ந்த விதிகள்
  • வணிக விதிகளை செயல்படுத்துகிறது

தரவு பாதுகாப்பு

  • தரவுத்தள மட்டத்தில் விதிகளை செயல்படுத்துகிறது
  • பயன்பாட்டு குறியீட்டிலிருந்து சுயாதீனமானது
  • முழுமையான தரவு பாதுகாப்பை வழங்குகிறது

நடைமுறை உதாரணங்கள்

வயது கட்டுப்பாடு

வயது 0 முதல் 150 வரை மட்டுமே இருக்க முடியும்

CREATE TABLE Users (
    UserID int PRIMARY KEY,
    Age int,
    CHECK (Age BETWEEN 0 AND 150)
);

மின்னஞ்சல் சரிபார்ப்பு

மின்னஞ்சல் '@' குறியைக் கொண்டிருக்க வேண்டும்

CREATE TABLE Customers (
    CustomerID int PRIMARY KEY,
    Email varchar(255),
    CHECK (Email LIKE '%@%')
);

விலை மற்றும் தள்ளுபடி

தள்ளுபடி விலையை விட குறைவாக இருக்க வேண்டும்

CREATE TABLE Products (
    ProductID int PRIMARY KEY,
    Price decimal(10,2),
    Discount decimal(10,2),
    CHECK (Discount < Price)
);

மேம்பட்ட CHECK உதாரணங்கள்

பாலினம் மற்றும் தலைப்பு

CREATE TABLE Employees (
    EmployeeID int PRIMARY KEY,
    Gender char(1),
    Title varchar(10),
    CHECK (
        (Gender = 'M' AND Title IN ('Mr', 'Dr')) OR
        (Gender = 'F' AND Title IN ('Ms', 'Mrs', 'Dr'))
    )
);

தேதி சரிபார்ப்பு

CREATE TABLE Projects (
    ProjectID int PRIMARY KEY,
    StartDate date,
    EndDate date,
    CHECK (EndDate > StartDate)
);

சதவீத வரம்பு

CREATE TABLE Exams (
    ExamID int PRIMARY KEY,
    Score int,
    CHECK (Score BETWEEN 0 AND 100)
);

பயிற்சி

SQL CHECK கட்டுப்பாட்டின் முதன்மை நோக்கம் என்ன?

ஒரு நெடுவரிசை NULL மதிப்புகளைக் கொண்டிருக்க முடியாது என்பதை உறுதி செய்ய
✗ தவறு! இது NOT NULL கட்டுப்பாட்டின் நோக்கம்
ஒரு நெடுவரிசையில் தனித்துவமான மதிப்புகளைக் கட்டாயப்படுத்த
✗ தவறு! இது UNIQUE கட்டுப்பாட்டின் நோக்கம்
ஒரு நெடுவரிசையில் வைக்கக்கூடிய மதிப்பு வரம்பைக் கட்டுப்படுத்த
✓ சரி! CHECK கட்டுப்பாடு ஒரு நெடுவரிசையில் செல்லுபடியாகும் மதிப்புகளின் வரம்பைக் கட்டுப்படுத்துகிறது மற்றும் தரவு ஒருமைப்பாட்டை பராமரிக்கிறது
ஒரு நெடுவரிசையை மற்றொரு அட்டவணையில் உள்ள primary key-உடன் இணைக்க
✗ தவறு! இது FOREIGN KEY கட்டுப்பாட்டின் நோக்கம்