SQL
கன்ஸ்ட்ரைன்ஸ்
ஆனது டேபிளில் விதி முறைகளைகளை செயற்படுத்துவதற்கு பயன்படுகின்றது.
SQL கிரியேட்
கன்ஸ்ட்ரைன்ஸ்.
கன்ஸ்ட்ரைன்ஸ்களை
டேபிளை கிரியேட் செய்யும் பொழுதோ அல்லது ஆல்டர் செய்யும் பொழுதோ குறிப்பிடலாம்.
Syntax
CREATE TABLE table_name (
column1 datatype constraint,
column2 datatype constraint,
column3 datatype constraint,
....
);
column1 datatype constraint,
column2 datatype constraint,
column3 datatype constraint,
....
);
SQL Constraints
Sql
constraints ஆனது டேபிளில் விதிமுறைகளை அமுல்படுத்த பயன்படுத்துகின்றது
இது
எந்த டேட்டா ஆனாலும் அதன் டைப்பை சோதிக்கின்றது. இது டேட்டா துல்லிதத்தையும்
நம்பகத்தன்மையும் உறுதிப்படுத்துகின்றது. கன்ஸ்ட்ரைனுக்கும் நாம் கொடுக்கும்
உள்ளீடுகும் முறன்பாடு இருந்தால் டேட்டாவை எடுத்துக் கொள்ளாது.
கன்ஸ்ட்ரைன்க்ளை
டேபிள் முழுவதுமோ அல்லது காலம்ன் லெவலிலோ பயன்படுத்தப்படுகின்றது.
கீழே
வருவபை sql –ல் பொதுவாக பயன்படுத்தப்படும் கன்ஸ்ட்ரைன்ஸ்
UNIQUE-குறிப்பிட்ட
காலம் ஆனது யுனிக் ஆக இருக்க வேண்டும்.
PRIMARY KEY – இது
குறிப்பிட்ட காலம் ஆனது நாட் நல் ஆகவும் இருக்க வேண்டும். அதே சமயத்தில் யுனிக்
ஆகவும் இருக்க வேண்டும்.
FOREIGN KEY – இது
மற்ற டேபிளில் உள்ள காலத்தின் தொடர்பைக் குறிக்க பயன்படுகின்றது.
CHECK – இது குறிப்பிட்ட் நிபந்தனையை விதிக்கின்றது உதாரணத்திற்கு
ஒருவரின் வயது நாம் உள்ளீடு கொடுக்கும் பொழுது 18- ற்கு மேல் இருக்க வேண்டும்
போன்ற நிபந்தனைகளை
DEFAULT – இது குறிப்பிட்ட காலத்திற்கு நாம் உள்ளீடு கொடுக்கா விட்டா
டிஃபால்ட் ஆக ஒரு குறிப்பிட்ட மதிப்பை எடுத்துக் கொள்ளும்.
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
);
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;
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
);
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)
);
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)
);
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);
ADD UNIQUE (ID);
கீழே உள்ளது ஆல்டர் டேபிள் மூலம்
எவ்வாறு யுனிக் கன்ஸ்ட்ரைன்களை ஒன்றிற்கு மேற்பட்ட காலத்திற்கு குறிப்பிடலாம்
என்பதை விளக்குகின்றது
MySQL / SQL Server / Oracle / MS
Access:
ALTER TABLE Persons
ADD CONSTRAINT UC_Person UNIQUE (ID,LastName);
ADD CONSTRAINT UC_Person UNIQUE (ID,LastName);
DROP
a UNIQUE Constraint
யுனிக்
கன்ஸ்ட்ரைன்களை எவ்வாறு அகற்றுவது என்பதை விளக்குகின்றது.
MySQL:
ALTER TABLE Persons
DROP INDEX UC_Person;
DROP INDEX UC_Person;
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT UC_Person;
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)
);
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
);
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)
);
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);
ADD PRIMARY KEY (ID);
ஆல்டர்
டேபிள் மூலம் ஒன்றிற்கு மேற்பட்ட காலத்திற்கு எவ்வாறு பிரைமரி கீ பயன்படுத்தலாம்
கீழே உள்ள சான்று விளக்குகின்றது.
MySQL / SQL Server / Oracle / MS
Access:
ALTER TABLE Persons
ADD CONSTRAINT PK_Person PRIMARY KEY (ID,LastName);
ADD CONSTRAINT PK_Person PRIMARY KEY (ID,LastName);
DROP
a PRIMARY KEY Constraint
பிரைமரி
கீயை பின் வருமாறு அகற்றலாம்.
MySQL:
ALTER TABLE Persons
DROP PRIMARY KEY;
DROP PRIMARY KEY;
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT PK_Person;
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)
);
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)
);
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)
);
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);
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);
ADD CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);
DROP
a FOREIGN KEY Constraint
ஃபாரின்
கீயை அகற்றுவதற்கு கீழே கொடுத்துள்ளவ்வாறு பயன்படுத்தவும்.
MySQL:
ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;
DROP FOREIGN KEY FK_PersonOrder;
SQL Server / Oracle / MS Access:
ALTER TABLE Orders
DROP CONSTRAINT FK_PersonOrder;
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)
);
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)
);
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')
);
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);
ADD CHECK (Age>=18);
ஒன்றிற்கு
மேற்பட்ட காலத்திற்கு எவ்வாறு ஆல்டர் டேபிள் மூலம் செக் கன்ஸ்ட்ரைன்ட் பயன்படுத்துவது
என்பதை கீழே உள்ள சான்று விளக்குகின்றது.
MySQL / SQL Server / Oracle / MS
Access:
ALTER TABLE Persons
ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City='Sandnes');
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;
DROP CONSTRAINT CHK_PersonAge;
MySQL:
ALTER TABLE Persons
DROP CHECK CHK_PersonAge;
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'
);
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()
);
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';
ALTER City SET DEFAULT 'Sandnes';
SQL Server:
ALTER TABLE Persons
ADD CONSTRAINT df_City
DEFAULT 'Sandnes' FOR City;
ADD CONSTRAINT df_City
DEFAULT 'Sandnes' FOR City;
MS Access:
ALTER TABLE Persons
ALTER COLUMN City SET DEFAULT 'Sandnes';
ALTER COLUMN City SET DEFAULT 'Sandnes';
Oracle:
ALTER TABLE Persons
MODIFY City DEFAULT 'Sandnes';
MODIFY City DEFAULT 'Sandnes';
DROP
a DEFAULT Constraint
டிஃபால்ட்
கன்ஸ்ட்ரைண்ட்களை அகற்றுதல்
MySQL:
ALTER TABLE Persons
ALTER City DROP DEFAULT;
ALTER City DROP DEFAULT;
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ALTER COLUMN City DROP DEFAULT;
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, ...);
ON table_name (column1, column2, ...);
CREATE
UNIQUE INDEX Syntax
கிரியேட்
யுனிக் இண்டெக்ஸ் ஆனது டூப்ளிகேட் பதிப்புகளை ஏற்காது.
CREATE UNIQUE INDEX index_name
ON table_name (column1, column2, ...);
ON table_name (column1, column2, ...);
CREATE
INDEX Example
கிரியேட்
இண்டெக்ஸ் உதாரணம்.
CREATE INDEX idx_lastname
ON Persons (LastName);
ON Persons (LastName);
ஒன்றிற்கு மேற்பட்ட காலத்திற்கும் ஒரே
நேரத்தில் இண்டெக்ஸ் செய்யலாம்
CREATE INDEX idx_pname
ON Persons (LastName, FirstName);
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;
DROP INDEX index_name;
-நன்றி
முத்து கார்த்திகேயன் மதுரை.
please write feedback.
please write feedback.
No comments:
Post a Comment