Veri tanımı sorgusunu kullanarak tablo veya dizin oluşturma ya da değiştirme

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

SQL görünümünde veri tanımı sorguları yazarak tablo, kısıtlama, dizin ve ilişki oluşturabilir ya da bunlarda değişiklik yapabilirsiniz.

Bu makalede veri tanımı sorguları ve bu sorguların tablo, kısıtlama, dizin ve ilişki oluşturmak için nasıl kullanılacağı anlatılmaktadır. Bu makale veri tanımı sorgularını ne zaman kullanacağınıza da yardımcı olabilir.

Not : Web veritabanında bu yordamları kullanamazsınız.

Bu makalede

Genel bakış

Oluşturma veya Tablo değiştirme

Dizin oluşturma

Kısıtlama veya ilişki oluşturma

Genel bakış

Diğer sorgulardan farklı olarak, veri tanımı sorgusu veri almaz. Bunun yerine, veritabanı nesnelerini oluşturmak, değiştirmek veya silmek amacıyla veri tanımı sorgusu Veri Tanımlama Dili'ni kullanır.

Not : Veri Tanımlama Dili (DDL) Yapılandırılmış Sorgu Dili'nin (SQL) bir parçasıdır.

Veri tanımı sorguları çok kullanışlı olabilir. Yalnızca bazı sorguları çalıştırarak veritabanının bölümlerini düzenli olarak silebilir ve yeniden oluşturabilirsiniz. SQL deyimlerine alışkınsanız ve belirli tabloları, kısıtlamaları, dizinleri, ilişkileri silip yeniden oluşturmayı planlıyorsanız veri tanımı sorgularını kullanmayı dikkate alın.

Uyarı : Eylemlerde onay iletişim kutuları bulunmadığından veritabanı nesnelerini değiştirmek için veri tanımı sorgularının kullanılması riskli olabilir. Hata yaparsanız verileri kaybedebilir veya istemeden tablo tasarımını değiştirebilirsiniz. Veritabanındaki verileri değiştirmek için veri tanımı sorgusu kullandığınızda dikkatli olun. Kullandığınız veritabanının korunmasından sorumlu değilseniz veri tanımı sorgusunu çalıştırmadan önce yöneticiyle görüşmeniz gerekir.

Önemli : Veri tanımı sorgusunu çalıştırmadan önce ilgili tabloların yedek kopyasını oluşturun.

DDL anahtar sözcükleri

Anahtar sözcük

Kullanım

CREATE

Henüz varolmayan dizini veya tabloyu oluşturur.

ALTER

Varolan tablo veya sütunu değiştirir.

DROP

Varolan tabloyu, sütunu veya kısıtlamayı siler.

ADD

Tabloya sütun veya kısıtlama ekler.

COLUMN

ADD, ALTER veya DROP ile kullanılır

CONSTRAINT

ADD, ALTER veya DROP ile kullanılır

INDEX

CREATE ile kullanılır

TABLE

ALTER, CREATE veya DROP ile kullanılır

Sayfanın Başı

Tablo oluşturma veya değiştirme

Tablo oluşturmak için CREATE TABLE komutunu kullanabilirsiniz. CREATE TABLE komutunda şu sözdizimi vardır:

CREATE TABLE table_name 
(field1 type [(size)] [NOT NULL] [index1]
[, field2 type [(size)] [NOT NULL] [index2]
[, ...][, CONSTRAINT constraint1 [, ...]])

CREATE TABLE komutuna gereken tek öğe CREATE TABLE komutunun kendisi ve tablo adıdır; ancak bazı alanları veya tablonun diğer yönlerini de tanımlamanız gerekebilir. Bu basit örneği dikkate alın.

Satın almaya karar verdiğiniz kullanılmış araçların adını, üretim yılını ve fiyatını depolayacak bir tablo oluşturmak istediğinizi varsayalım. Ad için en çok 30, yıl için de 4 karaktere izin vermek istiyorsunuz. Tablo oluşturmak amacıyla veri tanımı sorgusu kullanmak için şunları yapın:

Not : Veri tanımı sorgusunun çalışması için önce veritabanı içeriğini etkinleştirmeniz gerekebilir:

  • İleti Çubuğu'nda İçeriği Etkinleştir'i tıklatın.

Tablo oluşturma

  1. Oluştur sekmesinin Makrolar ve Kod grubunda Sorgu Tasarımı'nı tıklatın.

  2. Tabloyu Göster iletişim kutusunu kapatın.

  3. Tasarım sekmesinde, Sorgu Türü grubunda Veri Tanımı'nı tıklatın.

    Tasarım kılavuzu gizli, SQL görünüm nesnesi ise görünür durumdadır.

  4. Şu SQL deyimi girin:

    TABLO araba (adı TEXT(30), yıl TEXT(4), fiyat para BİRİMİ) OLUŞTURMA

  5. Tasarım sekmesinde, Sonuçlar grubunda, Çalıştır'ı tıklatın.

Tablo değiştirme

Tablo değiştirmek için ALTER TABLE komutunu kullanırsınız. Sütunları veya kısıtlamaları eklemek, değiştirmek, çıkarmak (kaldırmak) için ALTER TABLE komutunu kullanabilirsiniz. ALTER TABLE komutunda şu sözdizimi vardır:

ALTER TABLE table_name predicate

Burada karşılaştırma aşağıdakilerden herhangi biri olabilir:

ADD COLUMN field type[(size)] [NOT NULL] [CONSTRAINT constraint]

ADD CONSTRAINT multifield_constraint

ALTER COLUMN field type[(size)]

DROP COLUMN field

DROP CONSTRAINT constraint

Her araçla ilgili tek tek koşullar hakkındaki bilgileri depolamak amacıyla 10 karakterlik bir alan eklemek istediğinizi varsayalım. Aşağıdakileri yapabilirsiniz:

  1. Oluştur sekmesinin Makrolar ve Kod grubunda Sorgu Tasarımı'nı tıklatın.

  2. Tabloyu Göster iletişim kutusunu kapatın.

  3. Tasarım sekmesinde, Sorgu Türü grubunda Veri Tanımı'nı tıklatın.

    Tasarım kılavuzu gizli, SQL görünüm nesnesi ise görünür durumdadır.

  4. Şu SQL deyimi girin:

    ALTER TABLO araba Ekle SÜTUN koşulu TEXT(10)

  5. Tasarım sekmesinde, Sonuçlar grubunda, Çalıştır'ı tıklatın.

Sayfanın Başı

Dizin oluşturma

Dizin veya varolan tabloyu oluşturmak için CREATE INDEX komutunu kullanabilirsiniz. CREATE INDEX komutunda şu sözdizimi vardır:

CREATE [UNIQUE] INDEX index_name
ON table (field1 [DESC][, field2 [DESC], ...])
[WITH {PRIMARY | DISALLOW NULL | IGNORE NULL}]

Gerekli öğeler yalnızca CREATE INDEX komutu, dizin adı, ON bağımsız değişkeni, dizinini oluşturmak istediğiniz alanların bulunduğu tablonun adı ve dizine alınacak olan alanların listesidir.

  • DESC bağımsız değişkeni azalan düzende dizine neden olur; bu da, dizini oluşturulan alanın en üst değerlerini arayan ya da dizini oluşturulan alanı azalan düzende sıralayan sorguları sık olarak yürütüyorsanız yararlıdır.

  • Bağımsız değişkeni İLE BİRİNCİL dizinli alan veya alanların birincil anahtar tablonun oluşturur.

  • WITH DISALLOW NULL bağımsız değişkeni, dizini oluşturulan alana girilen değerin gerektiği dizine neden olur; diğer bir deyişle boş değerlere izin verilmez.

Satın almaya karar verdiğiniz kullanılmış araçların adının, üretim yılının, fiyatının ve koşulunun depolandığı Araçlar adlı bir tablonuz olduğunu varsayalım. Bu tablonun zamanla büyüyeceğini ve sık olarak yıl alanının sorgulara katılacağını da varsayalım. Yıl alanının sonuçları daha hızlı döndürmesine yardımcı olması amacıyla dizin oluşturmak için şu yordamı kullanın:

  1. Oluştur sekmesinin Makrolar ve Kod grubunda Sorgu Tasarımı'nı tıklatın.

  2. Tabloyu Göster iletişim kutusunu kapatın.

  3. Tasarım sekmesinde, Sorgu Türü grubunda Veri Tanımı'nı tıklatın.

    Tasarım kılavuzu gizli, SQL görünüm nesnesi ise görünür durumdadır.

  4. Şu SQL deyimi girin:

    DİZİN YearIndex açık araba (yıl) OLUŞTURMA

  5. Tasarım sekmesinde, Sonuçlar grubunda, Çalıştır'ı tıklatın.

Sayfanın Başı

Kısıtlama veya ilişki oluşturma

Kısıtlama, değerler eklendiğinde alan veya alan bileşiminin karşıladığı mantıksal koşulu başlatır. Örneğin, UNIQUE kısıtlaması, kısıtlı alanın, alanla ilgili varolan değeri çoğaltabilecek değeri kabul etmesini engeller.

İlişki, bir değerin kısıtlı alana veya alan bileşimine eklenip eklenmeyeceğini saptamak amacıyla başka tablodaki alana ya da alan bileşimine ait verilere başvuran kısıtlama türüdür. Kısıtlamanın ilişki olduğunu belirtmek için özel anahtar sözcük kullanmazsınız.

Kısıtlama oluşturmak CREATE TABLE veya ALTER TABLE komutunda CONSTRAINT yan tümcesini kullanırsınız. İ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.

Tek alanlı kısıtlamalar:

Tek alanlı CONSTRAINT yan tümcesi kısıtlanan alan tanımının hemen arkasında yer alır ve şu sözdizimine sahiptir:

CONSTRAINT constraint_name {PRIMARY KEY | UNIQUE | NOT NULL |
REFERENCES foreign_table [(foreign_field)]
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

Satın almaya karar verdiğiniz kullanılmış araçların adının, üretim yılının, fiyatının ve koşulunun depolandığı Araçlar adlı bir tablonuz olduğunu varsayalım. Sık sık araba koşullarıyla ilgili değeri girmeyi ve her zaman bu bilgileri kaydetmek istediğinizi unuttuğunuzu da varsayalım. Koşul alanını boş bırakmanızı engelleyecek kısıtlamayı bu alanda oluşturmak amacıyla şu yordamı kullanın:

  1. Oluştur sekmesinin Makrolar ve Kod grubunda Sorgu Tasarımı'nı tıklatın.

  2. Tabloyu Göster iletişim kutusunu kapatın.

  3. Tasarım sekmesinde, Sorgu Türü grubunda Veri Tanımı'nı tıklatın.

    Tasarım kılavuzu gizli, SQL görünüm nesnesi ise görünür durumdadır.

  4. Şu SQL deyimi girin:

    ALTER TABLO araba ALTER SÜTUN koşul METİN SINIRLAMA ConditionRequired BOŞ DEĞİL

  5. Tasarım sekmesinde, Sonuçlar grubunda, Çalıştır'ı tıklatın.

Şimdi de, bir süre geçtikten sonra Koşul alanında aynı olması gereken pek çok benzer değerin olduğunu gördüğünüzü varsayalım. Örneğin, bazı araçlarda zayıf, diğerlerinde de kötü Koşul değeri vardır.

Not : Kalan yordamları uygulamaya devam etmek isterseniz, önceki adımlarda oluşturduğunuz Araçlar tablosuna bazı yalancı veriler ekleyin.

Değerleri daha tutarlı olacak şekilde temizledikten sonra, Koşul adında tek alanı olan AraçKoşulu adlı bir tablo oluşturabilirsiniz; burada araç koşullarıyla ilgili olarak kullanmak istediğiniz değerlerin tümü bulunur:

  1. Oluştur sekmesinin Makrolar ve Kod grubunda Sorgu Tasarımı'nı tıklatın.

  2. Tabloyu Göster iletişim kutusunu kapatın.

  3. Tasarım sekmesinde, Sorgu Türü grubunda Veri Tanımı'nı tıklatın.

    Tasarım kılavuzu gizli, SQL görünüm nesnesi ise görünür durumdadır.

  4. Şu SQL deyimi girin:

    TABLO CarCondition (koşul TEXT(10)) OLUŞTURMA

  5. Tasarım sekmesinde, Sonuçlar grubunda, Çalıştır'ı tıklatın.

  6. ALTER TABLE deyimi kullanarak tablo için birincil anahtar oluşturun:

    TABLO CarCondition ALTER SÜTUN koşul METİN SINIRLAMA CarConditionPK BİRİNCİL ANAHTARI DEĞİŞTİRME

  7. Değerleri Araçlar tablosunun Koşul alanından yeni AraçKoşulu tablosuna eklemek için SQL görünüm nesnesi sekmesine şu SQL deyimini yazın:

    EKLE CarCondition SELECT DISTINCT İÇİNE koşulu otomobilleri;

    Not : Bu adım SQL deyiminde bir ekleme sorgusuolur. Veri tanımı sorgusu farklı olarak, bir ekleme sorgusu noktalı virgül biter.

  8. Tasarım sekmesinde, Sonuçlar grubunda, Çalıştır'ı tıklatın.

Kısıtlama kullanarak ilişki oluşturma

Araçlar tablosunun Koşul alanına eklenen yeni değerlerin AraçKoşulu tablosundaki Koşul alanının değeriyle eşleştirilmesinin gerekmesini sağlamak amacıyla Koşul adlı alandaki AraçKoşulu ve Araçlar arasında ilişkiyi şu yordamı kullanarak oluşturabilirsiniz:

  1. Oluştur sekmesinin Makrolar ve Kod grubunda Sorgu Tasarımı'nı tıklatın.

  2. Tabloyu Göster iletişim kutusunu kapatın.

  3. Tasarım sekmesinde, Sorgu Türü grubunda Veri Tanımı'nı tıklatın.

    Tasarım kılavuzu gizli, SQL görünüm nesnesi ise görünür durumdadır.

  4. Şu SQL deyimi girin:

    ALTER TABLO araba ALTER SÜTUN koşul METİN SINIRLAMA FKeyCondition BAŞVURULAR CarCondition (koşul)

  5. Tasarım sekmesinde, Sonuçlar grubunda, Çalıştır'ı tıklatın.

Çok alanlı kısıtlamalar:

Çok alanlı CONSTRAINT yan tümcesi yalnızca alan tanımı deyiminin dışında kullanılabilir ve şu sözdizimine sahiptir:

CONSTRAINT constraint_name 
{PRIMARY KEY (pk_field1[, pk_field2[, ...]]) |
UNIQUE (unique1[, unique2[, ...]]) |
NOT NULL (notnull1[, notnull2[, ...]]) |
FOREIGN KEY [NO INDEX] (ref_field1[, ref_field2[, ...]])
REFERENCES foreign_table
[(fk_field1[, fk_field2[, ...]])] |
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

Araçlar tablosunu kullanan başka bir örnek olduğunu düşünelim. Ad, Yıl, Koşul ve Fiyat değerlerinin aynı kümesine sahip Araçlar tablosunda iki kayıttan fazlası olmadığından emin olmak istediğinizi varsayalım. Bu alanlara uygulanana UNIQUE kısıtlamasını şu yordamı kullanarak oluşturabilirsiniz:

  1. Oluştur sekmesinin Makrolar ve Kod grubunda Sorgu Tasarımı'nı tıklatın.

  2. Tabloyu Göster iletişim kutusunu kapatın.

  3. Tasarım sekmesinde, Sorgu Türü grubunda Veri Tanımı'nı tıklatın.

    Tasarım kılavuzu gizli, SQL görünüm nesnesi ise görünür durumdadır.

  4. Şu SQL deyimi girin:

    ALTER TABLO araba ekleme SINIRLAMA NoDupes BENZERSİZ (ad, yıl, koşul, Fiyat)

  5. Tasarım sekmesinde, Sonuçlar grubunda, Çalıştır'ı tıklatın.

Sayfanın Başı

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.

×