×

CONSTRAINTS و یا قید ها در SQLite

فصل بیست و سوم :

CONSTRAINTS و یا قید ها در SQLite

قید ها قوانینی هستند که به ستونهای جداول تحمیل میشوند . قید ها برای محدود کدن نوع دیتایی که می توند در یک جدول ذخیره شود ، استفاده میشوند و این مساله دقت و قابلیت اطمینان اطلاعات جداول را بالا میبرد.
قید ها می توانند در سطح ستونها و یا در سطح جداول اعمال شوند. قید های در سطح ستونها فقط بروی ان ستون مورد نظر عمل کرده درصورتیکه قید های در سطح جدول به کل جدول اعمال میشوند. رایج ترین قید ها عبارتند از :

NOT NULL Constraint

تضمین میکند که یک ستون نتواند مقدار null را داشته باشد (یعنی حتما مقدار دهی شود)

DEFAULT Constraint

هنگامی که برای یک ستون مقداری را در نظر نمی گیریم مقدار پیشفرضی را در آن درج میکند

UNIQUE Constraint

تضمین میکند که تمامی مقادیر موجود در این ستون در جدول منحصر به فرد باشند (دوستون با مقدار یکسان در جدول نباشند)

PRIMARY Key

بطور منحصر به فردی یک رکورد را در یک جدول مشخص میکند.

CHECK Constraint

تضمین میکند که تمامی مقادیر موجود در یک ستون شروط خاصی را تامین کنند (مثلا نشود در یک ستون عدددی بیش از 100 را درج کرد)



NOT NULL Constraint

بطور پیشفرض یک ستون جدول می تواند مقدار null را در خود داشته باشد اگر بخوواهیم که یک ستون حتما دارای مقدار بااشد و کاربر نتواند آنرا null رها کند از این قید استفاده میکنیم

مثال : در مثال ذیل جدولی را میسازیم که 3 ستون ان نمی توانند مقدار null داشته باشند: CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);

پس وقتی رکوردی در این جدول وجود دارد حتما سه فیلد ID , NAME و AGE آن دارای مقدار هستند.

DEFAULT Constraint

این قید هنگامی که رکوردی را بوسیله دستور INSERT INTO در جدول درج میکینم. اگر ستون خاصی را در دستور insert درج نکرده باشیم به ان ستون که این قید بروی ان فعال شده است مقدار پیشرضی را اختصاص میدهد.
CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL DEFAULT 50000.00
);

در جدول بالا اگر در هنگام درج یک رکورد COMPANY مقداری را به فیلد SALARY اختصاص ندهیم بطور اتوماتیک مقدار 50000 در آن ستون درج خواهد شد.

UNIQUE Constraint

هنگامی که این قید در ستونی تنظیم میشود هیچ دو رکوردی در جدول نم تونادد مقدار تکراری در ان ستون داشته باشند .فرض کنید جدولی از پرسنل داریم و بروی فیلد کد ملی انها یک unique constraint تنظیم میکنیم . تا نتوان بطور تصادفی دو نفر را بایک کد ملی در جدول ذخیره کرد و یا از ذخیره تکراری دو نفر جلوگیری کنیم.
CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL UNIQUE,
ADDRESS CHAR(50),
SALARY REAL DEFAULT 50000.00
);

در مثال بالا هیچ دوشرکتی در جدول ما نمی توانند فیلد Age یکسان داشته باشند.

PRIMARY KEY Constraint

کلید اصلی یا primary key و یا به اختصار PK بطور منحصر به فردی میتواند یک رکورد را در یک جدول مشخص کند. فرض کنید در مثال جدول پرسنل می خواهیم ستونی داشته باشیم که به کمک ان بتوان اطلاعات یک فرد را از جدول بیرون کشید. حال میتوانیم مقداری مثا کد ملی را بعنوان کلید اصلی در نظر بگیریم ون بای هر نفر مقداری منحصر به فرد است.
هر جدول نمی تواند بیش از یک کلید اصلی داشته باشد. ولیکن می تواند ستونهای Unique زیادی داشت باشد. یک کلید اصلی تما نباید شامل یک ستون باشد . می توانم کلید اصلی را داشته باشیم که شامل چند ستون باشد و مجموع قادیر ان چند ستون یک کلید اصلی و منحصر به فرد را بسازد. اگر کلید اصلی شامل چند ستون باشد آنرا composite key و یا کلید مرکب نامند .
CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);

در جدول بالا یک کلید اصل بروی ستون ID ما تنظیم شده است . یعنی بکمک ستون ID می تواند یک company را بطور منحصر به فردی مشخص کرد و از این جدول بیرون کشید.

CHECK Constraint

بوسیله این قید می توانیم شرط هایی را وضع کنیم که یک دیتا هنگام درج در یک ستون باید با ان شرط ها سازگار باش مثلا می خواهیم مقدار ستون Age ما بیشتر از 100 نباشد. و اگر بود رکورد در جدول درج نمی شودو خطایی مبنی بر عدم رعایت این قید بروز میکند.
CREATE TABLE COMPANY3(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL CHECK(SALARY > 0)
);

در مثال بالا ما نمی توانیم رکوردی در جدول داشته باشیم که مقدار ستون SALARY ان صفر و یا کمتر از صفر باشد.


مفاهیم و موضوعات این فصل عبارتند از :

  • NOT NULL Constraint در SQLite

  • DEFAULT Constraint در SQLite

  • UNIQUE Constraint در SQLite

  • PRIMARY Key Constraint در SQLite

  • CHECK Constraint در SQLite

vatantop
نظرات و سوالات درج سوال/ نظر