Sunday, March 3, 2019

Sql கன்ஸ்ட்ரைன்ஸ்



SQL கன்ஸ்ட்ரைன்ஸ் ஆனது டேபிளில் விதி முறைகளைகளை செயற்படுத்துவதற்கு பயன்படுகின்றது.

SQL கிரியேட் கன்ஸ்ட்ரைன்ஸ்.
கன்ஸ்ட்ரைன்ஸ்களை டேபிளை கிரியேட் செய்யும் பொழுதோ அல்லது ஆல்டர் செய்யும் பொழுதோ குறிப்பிடலாம்.
Syntax
CREATE TABLE table_name (
    column1 datatype constraint,
    column2 datatype constraint,
    column3 datatype constraint,
    ....
);


SQL Constraints
Sql constraints ஆனது டேபிளில் விதிமுறைகளை அமுல்படுத்த பயன்படுத்துகின்றது
இது எந்த டேட்டா ஆனாலும் அதன் டைப்பை சோதிக்கின்றது. இது டேட்டா துல்லிதத்தையும் நம்பகத்தன்மையும் உறுதிப்படுத்துகின்றது. கன்ஸ்ட்ரைனுக்கும் நாம் கொடுக்கும் உள்ளீடுகும் முறன்பாடு இருந்தால் டேட்டாவை எடுத்துக் கொள்ளாது.
கன்ஸ்ட்ரைன்க்ளை டேபிள் முழுவதுமோ அல்லது காலம்ன் லெவலிலோ பயன்படுத்தப்படுகின்றது.
கீழே வருவபை sql –ல் பொதுவாக பயன்படுத்தப்படும் கன்ஸ்ட்ரைன்ஸ்
NOT NULLகுறிப்பிட்ட காலத்திற்கு உள்ளீடு கொடுத்தே ஆக வேண்டும்.
UNIQUE-குறிப்பிட்ட காலம் ஆனது யுனிக்  ஆக இருக்க வேண்டும்.
PRIMARY KEYஇது குறிப்பிட்ட காலம் ஆனது நாட் நல் ஆகவும் இருக்க வேண்டும். அதே சமயத்தில் யுனிக் ஆகவும் இருக்க வேண்டும்.
 FOREIGN KEYஇது மற்ற டேபிளில் உள்ள காலத்தின் தொடர்பைக் குறிக்க பயன்படுகின்றது. CHECKஇது குறிப்பிட்ட் நிபந்தனையை விதிக்கின்றது உதாரணத்திற்கு ஒருவரின் வயது நாம் உள்ளீடு கொடுக்கும் பொழுது 18- ற்கு மேல் இருக்க வேண்டும் போன்ற நிபந்தனைகளை
DEFAULTஇது குறிப்பிட்ட காலத்திற்கு நாம் உள்ளீடு கொடுக்கா விட்டா டிஃபால்ட் ஆக ஒரு குறிப்பிட்ட மதிப்பை எடுத்துக் கொள்ளும்.
INDEX டேட்டா பேஸில் துரிதமாக டேபிளை உருவாக்கவும் டேட்டாவை பெற்றுக் கொள்ளவும் பயன்படுகின்றது.
SQL NOT NULL Constraint
டிஃபால்ட் ஆக ஒரு காலத்தில் டேட்டா நல் ஆக அதாவது குறிப்பிடப் படாமல் இருக்கலாம்.
 நாட் நல் என்றால் டேட்டா வானது இன்புட் கொடுத்தே ஆக வேண்டும்,


SQL NOT NULL on CREATE TABLE
கீழே உள்ள டேபிளில் மூன்று காலதிற்கு இன்புட் கட்டாயம் கொடுத்தே ஆக வேண்டும். அவையான நாட் நல் ஆக குறிப்பிடப் பட்டிருகின்றன.
சான்று:
CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255) NOT NULL,
    Age int
);


SQL NOT NULL on ALTER TABLE
கீழே உள்ள சான்றானது நாட் நல்  என்பதை ஆல்டர் டேபிள் மூலம் எவ்வாறு குறிப்பிட பயன்படுகின்றது.
ALTER TABLE Persons
MODIFY Age int NOT NULL;

SQL UNIQUE Constraint
இந்த் கன்ஸ்ட்ரைன் ஆனது குறிப்பிட்ட காலத்திற்கான டேட்டா ஆனது யுனிக் ஆக இருக்க வேண்டும் என்பதை குறிப்பிட பயன்படுகின்றது.


SQL UNIQUE Constraint on CREATE TABLE
கீழே உள்ள டேபிளில் கிரியேட் டேபிள் மூலம் எவ்வாறு யுனிக் கன்ஸ்ட்ரைட் குறிப்பிடப் படுகின்றது என்பதை விளக்குகின்றது.
SQL Server / Oracle / MS Access:
CREATE TABLE Persons (
    ID int NOT NULL UNIQUE,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
);
MySQL:
CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    UNIQUE (ID)
);
கீழே உள்ள சான்றானது ஒன்றிற்கு மேற்பட்ட காலத்திற்கு எவ்வாறு ஒரே நேரத்தில் யுனிக் கன்ஸ்ட்ரைன்களை பயன்படுத்தலாம் என்பதை விளக்குகின்றது.
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    CONSTRAINT UC_Person UNIQUE (ID,LastName)
);
SQL UNIQUE Constraint on ALTER TABLE
கீழே உள்ளது ஆல்டர் டேபிள் மூலம் எவ்வாறு யுனிக் கன்ஸ்ட்ரைன்களை குறிப்பிடலாம் என்பதை விளக்குகின்றது.
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD UNIQUE (ID);
கீழே உள்ளது ஆல்டர் டேபிள் மூலம் எவ்வாறு யுனிக் கன்ஸ்ட்ரைன்களை ஒன்றிற்கு மேற்பட்ட காலத்திற்கு குறிப்பிடலாம் என்பதை விளக்குகின்றது
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT UC_Person UNIQUE (ID,LastName);


DROP a UNIQUE Constraint
யுனிக் கன்ஸ்ட்ரைன்களை எவ்வாறு அகற்றுவது என்பதை விளக்குகின்றது.
MySQL:
ALTER TABLE Persons
DROP INDEX UC_Person;
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT UC_Person;
SQL PRIMARY KEY Constraint
பிரைமரி கன்ஸ்ட்ரைன் ஆனது ஒரு காலம் ஆனது ஒரே நேரத்தில் யுனிக் ஆகவும் இருக்க வேண்டும் மற்றும் நாட் நல் ஆகவும் இருக்க வேண்டும் என்பதைக் குறிக்கின்றது.
ஒரு டேபிளிற்கு ஒன்றிற்க்கோ அல்லது ஒன்றிற்கு மேற்பட்ட காலதிற்கு ஒரு பிரைமரி கீ தான் இருக்க முடியும்.

SQL PRIMARY KEY on CREATE TABLE
கீழே உள்ளது கிரியேட் டேபிள் மூலம் எவ்வாறு பிரைமரி கீ குறிப்பிடலாம் என்பதை விளக்குகின்றது.
MySQL:
CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    PRIMARY KEY (ID)
);
SQL Server / Oracle / MS Access:
CREATE TABLE Persons (
    ID int NOT NULL PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
);
ஒன்றிற்கு மேற்பட்ட காலத்திற்கு எவ்வாறு பிரைமரி கீ பயன்படுத்தலாம் என்பதை குறிக்கின்றது.
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    CONSTRAINT PK_Person PRIMARY KEY (ID,LastName)
);



SQL PRIMARY KEY on ALTER TABLE
கீழே உள்ள டேபிளில் ஆல்டர் டேபிள் மூலம் எவ்வாறு பிரைமரி கீ பயன்படுத்தலாம் என்பதைக் குறிக்கின்றது
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD PRIMARY KEY (ID);
ஆல்டர் டேபிள் மூலம் ஒன்றிற்கு மேற்பட்ட காலத்திற்கு எவ்வாறு பிரைமரி கீ பயன்படுத்தலாம் கீழே உள்ள சான்று விளக்குகின்றது.
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT PK_Person PRIMARY KEY (ID,LastName);

DROP a PRIMARY KEY Constraint
பிரைமரி கீயை பின் வருமாறு அகற்றலாம்.
MySQL:
ALTER TABLE Persons
DROP PRIMARY KEY;
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT PK_Person;
SQL FOREIGN KEY Constraint
A FOREIGN KEY மூலம் ஒரு பேபிளில் உள்ள காலத்திற்கும் மற்றொரு டேபிளில் உள்ள காலத்திற்கும் தொடர்பு ஏற்படுத்தலாம்.
ஃபாரின் கீ உள்ள டேபிள் சைல்ட் டேபிள் என்றும் அதன் காண்டிடேட் கீ உள்ள டேபிள் பேரண்ட் டேபிள் என்றும் குறிப்பிடப் படுகின்றது.
கீழே உள்ள இரண்டு டேபிளையும் கவனிக்கவும்.

"Persons" table:
PersonID
LastName
FirstName
Age
1
Hansen
Ola
30
2
Svendson
Tove
23
3
Pettersen
Kari
20
"Orders" table:
OrderID
OrderNumber
PersonID
1
77895
3
2
44678
3
3
22456
2
4
24562
1
 "PersonID"  என்ற  "Orders" டேபிளில் உள்ள காலம் ஆனது  "PersonID" என்ற  "Persons"  டேபிளில் உள்ள காலத்தைக் குறிப்பிடுகின்றது.
PersonID என்ற persons டேபிளில் உள்ள காலம் பிரைமரி கீ ஆகும்.
PersonID என்கின்ற orders டேபிளிள் உள்ள காலம் ஃபாரிக் கீ ஆகும்.
பிரைமரி கீயில் இல்லாத மதிப்பு ஃபாரின் கீயில் பயன்படுத்த முடியாது என்பதைக் கவனத்தில் கொள்ளுங்கள்.

SQL FOREIGN KEY on CREATE TABLE
கீழே உள்ள சான்றானது  ஃபாரின் கீயை எவ்வாறு கிரியேட் டேபிள் மூலம் உருவாக்கலாம் என்பதை விளக்கின்றது.
 MySQL:
CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber int NOT NULL,
    PersonID int,
    PRIMARY KEY (OrderID),
    FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);
SQL Server / Oracle / MS Access:
CREATE TABLE Orders (
    OrderID int NOT NULL PRIMARY KEY,
    OrderNumber int NOT NULL,
    PersonID int FOREIGN KEY REFERENCES Persons(PersonID)
);
கீழே உள்ள சான்று ஒரு ஃபாரின் கீ கன்ஸ்ட்ரைனுக்கு எவ்வாறு பெயரிடுவது என்பதை குறிக்கின்றது.
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber int NOT NULL,
    PersonID int,
    PRIMARY KEY (OrderID),
    CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID)
    REFERENCES Persons(PersonID)
);


SQL FOREIGN KEY on ALTER TABLE
ஆல்டர் டேபிள் மூலம் ஃபாரின் கீ பயன்படுத்துதல்
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders
ADD FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);
ஃபாரின் கீ கன்ஸ்ட்ரைன் பெயரிடுவது எவ்வாறு?
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders
ADD CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);


DROP a FOREIGN KEY Constraint
ஃபாரின் கீயை அகற்றுவதற்கு கீழே கொடுத்துள்ளவ்வாறு பயன்படுத்தவும்.
MySQL:
ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;
SQL Server / Oracle / MS Access:
ALTER TABLE Orders
DROP CONSTRAINT FK_PersonOrder;
SQL CHECK Constraint
இது குறிப்பிட்ட் நிபந்தனையை விதிக்கின்றது உதாரணத்திற்கு ஒருவரின் வயது நாம் உள்ளீடு கொடுக்கும் பொழுது 18- ற்கு மேல் இருக்க வேண்டும் போன்ற நிபந்தனைகளை கொடுக்கலாம்

SQL CHECK on CREATE TABLE
கீழே உள்ள சான்றில் கிரியேட் டேபிள் மூலம் எவ்வாறு செக் கன்ஸ்ட்ரைன்ட் பயன்படுத்தலாம் என்பதை விளக்குகின்றது.
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)
);
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')
);
SQL CHECK on ALTER TABLE
செக் கன்ஸ்ட்ரைன்களை எவ்வாறு ஆல்டர் கீ மூலம் பயன்படுத்துவது என்பதை கீழே உள்ள சான்றானது விளக்குகின்றது.
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CHECK (Age>=18);
ஒன்றிற்கு மேற்பட்ட காலத்திற்கு எவ்வாறு ஆல்டர் டேபிள் மூலம் செக் கன்ஸ்ட்ரைன்ட் பயன்படுத்துவது என்பதை கீழே உள்ள சான்று விளக்குகின்றது.
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City='Sandnes');


DROP a CHECK Constraint
செக் கன்ஸ்ட்ரைண்ட்களை அகற்றுதல்:
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT CHK_PersonAge;
MySQL:
ALTER TABLE Persons
DROP CHECK CHK_PersonAge;
SQL DEFAULT Constraint
இது குறிப்பிட்ட காலத்திற்கு உள்ளீடு கொடுக்கா விட்டால் டிஃபால்ட் ஆக ஒரு மதிப்பை எடுத்துக் கொள்ளும்.
SQL DEFAULT on CREATE TABLE
My SQL / 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) DEFAULT 'Sandnes'
);
டிஃபால்ட் கன்ஸ்ட்ரைண்ட் மூலம் GETDATE() போன்ற சிஸ்டம் மதிப்புகளையும் உள்ளீடு கொடுக்கலாம்.
CREATE TABLE Orders (
    ID int NOT NULL,
    OrderNumber int NOT NULL,
    OrderDate date DEFAULT GETDATE()
);


SQL DEFAULT on ALTER TABLE
ஆல்டர் டேபிள் மூலம் டிஃபால்ட் மதிப்பு எவ்வாறு  பயன்படுத்தபடுகின்றது என்பதை கீழே உள்ள சான்றுகள் விளக்குகின்றது.
MySQL:
ALTER TABLE Persons
ALTER City SET DEFAULT 'Sandnes';
SQL Server:
ALTER TABLE Persons
ADD CONSTRAINT df_City
DEFAULT 'Sandnes' FOR City;
MS Access:
ALTER TABLE Persons
ALTER COLUMN City SET DEFAULT 'Sandnes';
Oracle:
ALTER TABLE Persons
MODIFY City DEFAULT 'Sandnes';


DROP a DEFAULT Constraint
டிஃபால்ட் கன்ஸ்ட்ரைண்ட்களை அகற்றுதல்
MySQL:
ALTER TABLE Persons
ALTER City DROP DEFAULT;
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ALTER COLUMN City DROP DEFAULT;
SQL CREATE INDEX Statement
டேபிளில் இண்டெக்ஸ் உருவாக்க இது பயன்படுகின்றது. இதன் மூலம் டேட்டாவை விரைவாக ஆக்சஸ் செய்யலாம்.
CREATE INDEX Syntax
கிரியேட் இண்டெக்ஸ் ஆனது டூப்பிளிகேட் மதிப்புகளை ஏற்கின்றது
.Creates an index on a table. Duplicate values are allowed:
CREATE INDEX index_name
ON table_name (column1, column2, ...);
CREATE UNIQUE INDEX Syntax
கிரியேட் யுனிக் இண்டெக்ஸ் ஆனது டூப்ளிகேட் பதிப்புகளை ஏற்காது.
CREATE UNIQUE INDEX index_name
ON table_name (column1, column2, ...);


CREATE INDEX Example
கிரியேட் இண்டெக்ஸ் உதாரணம்.
CREATE INDEX idx_lastname
ON Persons (LastName);
ஒன்றிற்கு மேற்பட்ட காலத்திற்கும் ஒரே நேரத்தில் இண்டெக்ஸ் செய்யலாம்
CREATE INDEX idx_pname
ON Persons (LastName, FirstName);


DROP INDEX Statement
டிராப் இண்டெக்ஸ் மூலம் ஒரு இண்டெக்ஸை அகற்றலாம்.
MS Access:
DROP INDEX index_name ON table_name;
SQL Server:
DROP INDEX table_name.index_name;
DB2/Oracle:
DROP INDEX index_name;
MySQL:
ALTER TABLE table_name
DROP INDEX index_name;

  -நன்றி
முத்து கார்த்திகேயன் மதுரை.
please write feedback.
ads Udanz

No comments:

Post a Comment