loading...
طراحی وب سایت

marjan بازدید : 17 دوشنبه 25 شهریور 1392 نظرات (0)

SQL - محدوديت CHECK

توسط: عليرضا مسگري | ?-مهر-???? |

محدوديت check تعيين ميکند که چه بازه اي از مقادير و يا داده با چه مشخصاتي ميتواند در ستون پايگاه داده قرار بگيرد.

همچنين ميتوان براي جدول با توجه به ستونهايش محدوديت check ايجاد کنيم

ميخواهيم محدوديت check  را هنگام ساخت جدول اعمال کنيم ، به دستورات زير دقت کنيد ، پس از ساخت جدول طراحی وب سایت شما فقط ميتوانيد مقدار integer  را براي P_Id وارد کنيد

 

My SQL:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

CHECK (P_Id>0)

)

SQL Server / Oracle / MS Access:

CREATE TABLE Persons

(

P_Id int NOT NULL CHECK (P_Id>0),

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

 

و براي محدود کردن چند ستون به طور همزمان هم از دستور زير استفاده ميکنيم

 

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')

)

 

براي ايجاد دستور check در جدولي که قبلا ساخته شده است از دستور زير بهره ميگيريم

 

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons

ADD CHECK (P_Id>0)

 

و همچنين اين عمل براي محدوديت چندين ستون به صورت زير اعمال ميشود

 

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons

ADD CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')

 

براي حذف يک محدوديت check نيز به اين صورت عمل ميکنيم

 

SQL Server / Oracle / MS Access:

ALTER TABLE Persons

DROP CONSTRAINT chk

SQL - محدوديت FOREIGN KEY

توسط: عليرضا مسگري | ?-مهر-???? |

محدوديت foreign key  در يک جدول به کليد اصلي يک جدول ديگر يا همان primary key  در يک جدول ديگر اشاره دارد .

 

بيايد براي درک بهتر به مثال زير ديقت کنيم:

 

جدول "person"

 

P_IdLastNameFirstNameAddressCity

1HansenOlaTimoteivn 10Sandnes

2SvendsonToveBorgvn 23Sandnes

3PettersenKariStorgt 20Stavanger

جدول "order"

 

O_IdOrderNoP_Id

1778953

2446783

3224562

4245621

دقت کنيد که عنصر P_Id درجدول order به عنصر همنام خود طراحی سایت يعني P_Id در جدول person اشره دارد و حاوي همان اطلاعات ميباشد P_Id در order يک  foreign key  و در person يک |primary key  ميباشد.

 

foreign key  در واقع از وارد شدن اطلاعات نا معتبر در جدول و همچنين هرچيز که ارتباط بين دو جدول را تخريب کند جلوگيري ميکند زيرا که به مقدار يکتايي در جدول اصلي اشاره دارد.

 

ايجاد foreign key هنگام ساخت جدول

براي انجام عمل فوق از دستور زير استفاده ميکنيم

 

MySQL:

CREATE TABLE Orders

(

O_Id int NOT NULL,

OrderNo int NOT NULL,

P_Id int,

PRIMARY KEY (O_Id),

FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)

)

SQL Server / Oracle / MS Access:

CREATE TABLE Orders

(

O_Id int NOT NULL PRIMARY KEY,

OrderNo int NOT NULL,

P_Id int FOREIGN KEY REFERENCES Persons(P_Id)

)

 

و براي محدود کردن چند ستون در جدول به عنوان foreign key  از دستور زير استفاده کنيد

 

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Orders

(

O_Id int NOT NULL,

OrderNo int NOT NULL,

P_Id int,

PRIMARY KEY (O_Id),

CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)

REFERENCES Persons(P_Id)

)

 

براي ساخت يک foreign key در جدولي که قبلا ساخته شده است بايد از دستور زير استفاده کرد.

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders

ADD FOREIGN KEY (P_Id)

REFERENCES Persons(P_Id)

و همچنين براي ساخت چند ستون به عنوان طراحی وب سایت يک foreign key از دستور زير استفاده کنيد

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders

ADD CONSTRAINT fk_PerOrders

FOREIGN KEY (P_Id)

REFERENCES Persons(P_Id)

و براي حذف يک foreign key از دستورات زير بهره بگيريد

 

MySQL:

ALTER TABLE Orders

DROP FOREIGN KEY fk_PerOrders

SQL Server / Oracle / MS Access:

ALTER TABLE Orders

DROP CONSTRAINT fk_PerOrders_Person

ارسال نظر برای این مطلب

کد امنیتی رفرش
اطلاعات کاربری
  • فراموشی رمز عبور؟
  • آرشیو
    آمار سایت
  • کل مطالب : 17
  • کل نظرات : 0
  • افراد آنلاین : 2
  • تعداد اعضا : 0
  • آی پی امروز : 8
  • آی پی دیروز : 13
  • بازدید امروز : 10
  • باردید دیروز : 1
  • گوگل امروز : 0
  • گوگل دیروز : 0
  • بازدید هفته : 10
  • بازدید ماه : 11
  • بازدید سال : 67
  • بازدید کلی : 928