Thursday, May 14, 2020

8 පාඩම - සම්බාධක සහ සම්බාධක ප්‍රරූප


සීමාවන් යනු වගුවක දත්ත තීරු මත බලාත්මක කරන නීති වේ. වගුවකට යා හැකි දත්ත වර්ගය සීමා කිරීමට මේවා භාවිතා කරයි. මෙය දත්ත සමුදායේ දත්තවල නිරවද්‍යතාවය සහ විශ්වසනීයත්වය සහතික කරයි. සීමාවන් තීරු මට්ටම හෝ වගු මට්ටම විය හැකිය. තීරු මට්ටමේ සීමාවන් තීරුවකට අදාළ වන අතර වගු මට්ටමේ සීමාවන් මුළු වගුවටම අදාළ වේ.

CREATE TABLE ප්‍රකාශය සමඟ වගුව නිර්මාණය කරන විට හෝ ALTER TABLE ප්‍රකාශය සමඟ වගුව නිර්මාණය කිරීමෙන් පසු සීමාවන් නියම කළ හැකිය.

CREATE TABLE table_name (
    column1 datatype constraint,
    column2 datatype constraint,
    column3 datatype constraint,
    ....
);
SQL හි පහත සඳහන් සීමාවන් බහුලව භාවිතා වේ,
NOT NULL - අභිශූන්‍ය නොවනෙ සම්බාධක
තීරුවකට NULL අගයක් තිබිය නොහැකි බව සහතික කරයි
CREATE TABLE CUSTOMERS(
   ID   INT              NOT NULL,
   NAME VARCHAR (20)     NOT NULL,
   AGE  INT              NOT NULL,
   ADDRESS  CHAR (25) ,
   SALARY   DECIMAL (18, 2),       
   PRIMARY KEY (ID)
);


UNIQUE - අනන්‍යම්බාධක
තීරුවක ඇති සියලුම අගයන් වෙනස් බව සහතික කරයි
CREATE TABLE CUSTOMERS(
   ID   INT              NOT NULL,
   NAME VARCHAR (20)     NOT NULL,
   AGE  INT              NOT NULL UNIQUE,
   ADDRESS  CHAR (25) ,
   SALARY   DECIMAL (18, 2),      
   PRIMARY KEY (ID)
);

PRIMARY KEY - ප්‍රාථමික යතුරු ම්බාධක
NULL සහ UNIQUE වල එකතුවකි. කිසි විටෙකත් මෙහි අගයක් ශූන්‍ය විය නොහැක සෑම විටම ඒක් අගයකින් අනෙක් අගය වෙනස් වෙයි.
CREATE TABLE CUSTOMERS(
   ID   INT              NOT NULL,
   NAME VARCHAR (20)     NOT NULL,
   AGE  INT              NOT NULL,
   ADDRESS  CHAR (25) ,
   SALARY   DECIMAL (18, 2),        
   PRIMARY KEY (ID, NAME)
);

FOREIGN KEY - ආගන්තක යතුරු ම්බාධක
වගු දෙකක් අතර සම්බන්ධය පවත්වා ගැනීමට මෙම යතුර බාවිතා කරයි.
CUSTOMERS table
CREATE TABLE CUSTOMERS(
   ID   INT              NOT NULL,
   NAME VARCHAR (20)     NOT NULL,
   AGE  INT              NOT NULL,
   ADDRESS  CHAR (25) ,
   SALARY   DECIMAL (18, 2),       
   PRIMARY KEY (ID)
);
ORDERS table
CREATE TABLE ORDERS (
   ID          INT        NOT NULL,
   DATE        DATETIME, 
   CUSTOMER_ID INT references CUSTOMERS(ID),
   AMOUNT     double,
   PRIMARY KEY (ID)
);

INDEX
දත්ත සමුදායෙන් දත්ත ඉතා ඉක්මණින් නිර්මාණය කිරීමට සහ ලබා ගැනීමට භාවිතා කරයි
CREATE TABLE CUSTOMERS(
   ID   INT              NOT NULL,
   NAME VARCHAR (20)     NOT NULL,
   AGE  INT              NOT NULL,
   ADDRESS  CHAR (25) ,
   SALARY   DECIMAL (18, 2),       
   PRIMARY KEY (ID)
);

CHECK - වගු රීක්ෂා සම්බාධක
චෙක් අවහිරය මඟින් තීරුවක ඇති සියලුම අගයන් යම් යම් කොන්දේසි සපුරාලන බව සහතික කරයි.
CREATE TABLE CUSTOMERS(
   ID   INT              NOT NULL,
   NAME VARCHAR (20)     NOT NULL,
   AGE  INT              NOT NULL CHECK (AGE >= 18),
   ADDRESS  CHAR (25) ,
   SALARY   DECIMAL (18, 2),       
   PRIMARY KEY (ID)
);

DEFAULT
කිසිදු අගයක් නියම කර නොමැති විට තීරුවකට පෙරනිමි අගයක් සකසයි

No comments:

Post a Comment

Thank You..