CONSTRAINT Yan Tümcesi

Önemli : Bu makale makine çevisidir. Bkz. yasal uyarı. Bu makalenin İngilizce sürümüne buradan ulaşabilirsiniz.

kısıtlama bir dizin benzer, ama başka bir tabloyla ilişki kurmak için de kullanılabilir.

CONSTRAINT yan tümcesini ALTER TABLE ve CREATE TABLE deyimlerinde, kısıtlama oluşturmak veya silmek üzere kullanabilirsiniz. İki tür CONSTRAINT yan tümcesi vardır: Tek bir alanda kısıtlama oluşturmak için kullanılanlar ve birden çok alanda kısıtlama oluşturmak için kullanılanlar.

Not : Microsoft Access veritabanı altyapısına SINIRLAMA kullanımını veya diğer Microsoft Access veritabanları ile veri tanımlama dili ifadelerini desteklemez. Bunun yerine DAO Create yöntemlerini kullanın.

Sözdizimi

Tek alan kısıtlaması:

SINIRLAMA adı {BİRİNCİL ANAHTAR | BENZERSİZ | NOT NULL |
BAŞVURULAR foreignTablo [(yabancıalan1, yabancıalan2)]
[açık GÜNCELLEŞTİRME art ARDA | NULL AYARLAMA]
[açık SİLME art ARDA | NULL AYARLAMA]}

Çok alan kısıtlaması:

SINIRLAMA adı
{BİRİNCİL ANAHTAR (birincil1[, birincil2 [,...]]) |
BENZERSİZ (benzersiz1[, benzersiz2 [,...]]) |
NOT NULL (nulldeğil1[, notnull2 [,...]]) |
YABANCI ANAHTAR [NO INDEX] (Başv1[, başv2 [,...]]) BAŞVURULAR yabancıtablo [(yabancıalan1 [, yabancıalan2 [,...]])]
[Açık GÜNCELLEŞTİRME art ARDA | NULL AYARLAMA]
[açık SİLME art ARDA | NULL AYARLAMA]}

CONSTRAINT yan tümcesinin bölümleri şunlardır:

Bölüm

Açıklama

ad

Oluşturulacak kısıtlamanın adı.

birincil1, birincil2

birincil anahtar olarak belirlenecek alanın veya alanların adı.

benzersiz1, benzersiz2

Benzersiz anahtar olarak belirlenecek alanın veya alanların adı.

nulldeğil1, nulldeğil2

Alan veya boş olmayan değerlerle sınırlıdır alanların adı.

başvuru1, başvuru2

Başka bir tablodaki alanlara başvuran yabancı anahtar alanının veya alanlarının adı.

yabancıtablo

Yabancıanahtar tarafından belirtilen alanı veya alanları içeren yabancı tablo adı.

yabancıalan1, yabancıalan2

Başvuru1 ve başvuru2 tarafından belirtilen yabancıtablo içindeki alanın veya alanların adı. Başvurulan alan yabancıtablonun birincil anahtarı ise bu yan tümceyi kullanmanız gerekmez.


Açıklamalar

Tek alan kısıtlaması sözdizimini, bir ALTER TABLE veya CREATE TABLE deyiminin alan tanımı yan tümcesinde, alan veri türü belirtiminin hemen ardından kullanabilirsiniz.

ALTER TABLE veya CREATE TABLE deyiminde alan tanımı yan tümcesinin dışında CONSTRAINT özel amaçlı sözcük kullanmak gerektiğinde çok alan kısıtlaması sözdizimi kullanılır.

CONSTRAINT yan tümcesini kullanarak, bir alanı aşağıdaki kısıtlama türlerinden biri olarak belirleyebilirsiniz:

  • UNIQUE özel amaçlı sözcüğünü, bir alanı benzersiz anahtar olarak belirlemek üzere kullanabilirsiniz. Bu, tablodaki iki farklı kaydın bu alanda aynı değere sahip olmaması anlamına gelir. Herhangi bir alanı veya alan grubunu benzersiz olacak biçimde kısıtlayabilirsiniz. Çok alanlı bir kısıtlama benzersiz anahtar olarak belirlendiyse, dizindeki kayıtlar kısıtlama dışındaki alanlarda bir veya birden çok kez yinelense bile, dizin içindeki her alanın değeri benzersiz olmalıdır.

  • PRIMARY KEY özel amaçlı sözcüklerini bir alanı veya alan kümesini tabloda birincil anahtar olarak belirlemek üzere kullanabilirsiniz. Birincil anahtardaki tüm değerlerin benzersiz olması ve Null olmaması gerekir; ayrıca, bir tabloda yalnızca bir tek birincil anahtar olabilir.

    Not : Birincil anahtarı olan bir tabloda PRIMARY KEY kısıtlaması belirlemeyin, aksi takdirde hata oluşur.

  • FOREIGN KEY özel amaçlı sözcüğünü, bir alanı yabancı anahtar olarak belirlemek üzere kullanabilirsiniz. Yabancı tablonun birincil anahtarı birden fazla alandan oluşuyorsa, başvuran tüm alanları, yabancı tablonun adını ve başvuran alanlarla aynı sırada olmak üzere yabancı tablonun başvurulan alanlarını listeleyen çok alanlı bir kısıtlama tanımı kullanmalısınız. Başvurulan alan veya alanlar yabancı tablonun birincil anahtarı ise, başvurulan alanları belirtmeniz gerekmez. Veritabanı altyapısı, varsayılan değer olarak, yabancı tablonun birincil anahtarının başvurulan alanlar olduğunu kabul eder.

    Yabancı anahtar kısıtlamaları, ilgili birincil anahtar değeri değiştiğinde gerçekleştirilecek olan belirli eylemleri tanımlar:

  • CONTRAINT yan tümcesinin tanımlı olduğu tablodaki birincil anahtarda yürütülecek eyleme dayalı olarak yabancı tabloda gerçekleştirilecek eylemleri belirleyebilirsiniz. Örneğin, Müşteriler tablosunda aşağıdaki tanımın yapıldığını düşünelim:

CREATE TABLE Customers (CustId INTEGER PRIMARY KEY, CLstNm NCHAR VARYING (50))

Siparişler tablosunda da, Müşteriler tablosunun birincil anahtarına başvuran yabancı anahtar ilişkisinin tanımlandığını düşünelim:

CREATE TABLE Orders (OrderId INTEGER PRIMARY KEY, CustId INTEGER, OrderNotes NCHAR VARYING (255), CONSTRAINT FKOrdersCustId FOREIGN KEY (CustId) REFERENCES Customers ON UPDATE CASCADE ON DELETE CASCADE

Yabancı anahtarda hem ON UPDATE CASCADE hem de ON DELETE CASCADE yan tümcesi tanımlıdır. ON UPDATE CASCADE yan tümcesi, Müşteriler tablosunda müşterinin numarası (MüştNo) güncelleştirildiğinde, Siparişler tablosunda da art arda güncelleştirme yapılmasını sağlar. İlgili müşteri numarası değerini içeren her sipariş, otomatik olarak yeni değer ile güncelleştirilir. ON DELETE CASCADE yan tümcesi, Müşteriler tablosunda bir müşteri silindiğinde Siparişler tablosundaki aynı müşteri numarası değerini içeren tüm satırların silinmesini sağlar.

Şimdi de, Siparişler tablosunda CASCADE eylemi yerine SET NULL eylemini kullanarak farklı bir tanım yapıldığını düşünelim:

CREATE TABLE Orders (OrderId INTEGER PRIMARY KEY, CustId INTEGER, OrderNotes NCHAR VARYING (255), CONSTRAINT FKOrdersCustId FOREIGN KEY (CustId) REFERENCES Customers ON UPDATE SET NULL ON DELETE SET NULL

ON UPDATE SET NULL yan tümcesi, Müşteriler tablosunda müşterinin numarası (MüştNo) güncelleştirildiğinde, Siparişler tablosunda otomatik olarak ilgili yabancı anahtar değerlerinin NULL olarak belirlenmesini sağlar. Benzer biçimde, ON DELETE SET NULL yan tümcesi, Müşteriler tablosundan bir müşteri silindiğinde, Siparişler tablosunda otomatik olarak tüm ilgili yabancı anahtarların NULL olarak belirlenmesini sağlar.

Yabancı anahtarlar için dizinlerin otomatik olarak oluşturulmasını engellemek amacıyla NO INDEX değiştiricisi kullanılabilir. Bu yabancı anahtar tanımı şekli, yalnızca elde edilen dizin değerleri sık sık yinelenecekse kullanılmalıdır. Yabancı anahtar dizinindeki değerlerin sık sık yinelendiği durumlarda, bir dizin kullanmak, tabloyu taramaktan daha az verimli olabilir. Tablodan satırların silindiği ve tabloya satırların eklendiği bu tür bir dizini tutmak, performansı düşürür ve herhangi bir yarar sağlamaz.



Not : Makine Çevirisi Yasal Uyarısı: Bu makale, insan müdahalesi olmadan bir bilgisayar sistemi tarafından çevrilmiştir. Microsoft bu makine çevirilerini İngilizce bilmeyen kullanıcıların Microsoft ürünleri, hizmetleri ve teknolojileriyle ilgili içeriklerden yararlanmasına yardımcı olmak için sunar. Bu makale makine çevirisi olduğundan sözcük, cümle dizilimi ve gramer hataları içerebilir.

Yeteneklerinizi geliştirin
Eğitimleri keşfedin
Yeni özellikleri ilk olarak siz edinin
Office Insider Programına Katılın

Bu bilgi yararlı oldu mu?

Görüşleriniz için teşekkür ederiz!

Geri bildiriminiz için teşekkürler! Office destek temsilcilerimizden biriyle görüşmeniz yararlı olabilir.

×