Microsoft hesabıyla oturum açın
Oturum açın veya hesap oluşturun.
Merhaba,
Farklı bir hesap seçin.
Birden çok hesabınız var
Oturum açmak istediğiniz hesabı seçin.

Access'te SQL görünümünde veri tanımı sorguları yazarak tablolar, kısıtlamalar, dizinler ve ilişkiler oluşturabilir ve değiştirebilirsiniz. Bu makalede veri tanımı sorguları ve bunları tablo, kısıtlama, dizin ve ilişkiler oluşturmak için nasıl kullanabileceğiniz açıklanmıştır. Bu makale, veri tanımı sorgusunu ne zaman kullanabileceğinize karar vermede de yardımcı olabilir.

Bu makalede

Genel bakış

Diğer Access sorgularının aksine, veri tanımı sorgusu verileri almaz. Bunun yerine, veri tanımı sorgusu veritabanı nesnelerini oluşturmak, değiştirmek veya silmek için Veri Tanımlama Dilini 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. Veritabanı şemanın bölümlerini yalnızca bazı sorguları çalıştırarak düzenli olarak silebilir ve yeniden oluşturabilirsiniz. SQL deyimlerini biliyorsanız ve belirli tabloları, kısıtlamaları, dizinleri veya ilişkileri silebilir ve yeniden oluşturabilirsiniz.

Uyarı: Veritabanı nesnelerini değiştirmek için veri tanımı sorguları kullanmak riskli olabilir, çünkü eylemler onay iletişim kutularıyla birlikte değildir. Hata yapıyorsanız, verileri kaybedebilir veya tablonun tasarımını istemeden değiştirebilirsiniz. Veritabanınızdaki nesneleri değiştirmek için veri tanımı sorgusu kullanırken dikkatli olun. Kullanmakta olduğu veritabanını korumakla sorumlu değilseniz, veri tanımı sorgusunu çalıştırmadan önce veritabanının yöneticisine başvurmanız gerekir.

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

DDL anahtar sözcükleri

Anahtar Sözcük

Kullanım

CREATE

Henüz var olmayan bir dizin veya tablo oluşturun.

ALTER

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

DROP

Varolan tablo, sütun veya kısıtlamayı silme.

ADD

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

COLUMN

ADD, ALTER veya DROP ile kullanma

CONSTRAINT

ADD, ALTER veya DROP ile kullanma

INDEX

CREATE ile kullanma

TABLE

ALTER, CREATE veya DROP ile kullanma

Sayfanın Başı

Tablo oluşturma veya değiştirme

Tablo oluşturmak için, CREATE TABLE komutunu kullanırsınız. TABLO OLUŞTUR komutunun söz dizimi aşağıdaki şekildedir:

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

CREATE TABLE komutunun yalnızca gerekli öğeleri CREATE TABLE komutunun kendisi ve tablonun adıdır, ancak genellikle tablonun bazı alanlarını veya diğer yönlerini tanımlamak istersiniz. Bu basit örneği düşünün.

Satın almak istediğiniz otomobilin adını, yılı ve fiyatını depolamak için bir tablo oluşturmak istediğiniz varsayalım. Ad için en çok 30 karaktere ve yıl için 4 karaktere izin vermek istediğiniz. Tabloyu oluşturmak üzere veri tanımı sorgusu kullanmak için, şunları yapın:

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

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

Tablo oluşturma

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

  2. Tasarım sekmesinin Sorgu Türü grubunda Veri Tanımı'nıtıklatın.

    Tasarım kılavuzu gizlidir ve SQL görünümü nesne sekmesi görüntülenir.

  3. Aşağıdaki SQL deyimini yazın:

    CREATE TABLE Cars (Name TEXT(30), Year TEXT(4), Price CURRENCY)

  4. Tasarım sekmesinin Sonuçlar grubunda Çalıştır'a tıklayın.

Bir tabloyu değiştirme

Tabloyu değiştirmek için ALTER TABLE komutunu kullanırsınız. Sütun veya kısıtlama eklemek, değiştirmek veya kaldırmak (kaldırmak) için ALTER TABLE komutunu kullanabilirsiniz. ALTER TABLE komutunun söz dizimi aşağıdaki şekildedir:

ALTER TABLE table_name predicate

burada, herhangi bir neden aşağıdaki gibi 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 araba koşuluyla ilgili bilgileri depolamak için 10 karakterlik bir metin alanı eklemek istediğiniz varsayalım. Aşağıdakileri yapabilirsiniz:

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

  2. Tasarım sekmesinin Sorgu Türü grubunda Veri Tanımı'nıtıklatın.

    Tasarım kılavuzu gizlidir ve SQL görünümü nesne sekmesi görüntülenir.

  3. Aşağıdaki SQL deyimini yazın:

    ALTER TABLE Cars ADD COLUMN Condition TEXT(10)

  4. Tasarım sekmesinin Sonuçlar grubunda Çalıştır'a tıklayın.

Sayfanın Başı

Dizin oluşturma

Var olan bir tabloda dizin oluşturmak için CREATE INDEX komutunu kullanırsınız. CREATE INDEX komutunun söz dizimi şu şekildedir:

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

Tek gerekli öğeler CREATE INDEX komutu, dizinin adı, ON bağımsız değişkeni, dizine almak istediğiniz alanları içeren tablonun adı ve dizine dahil edilecek alanların listesidir.

  • DESC bağımsız değişkeni dizinin azalan düzende oluşturulmalarına neden olur; dizine alan için en yüksek değerlerin bakılan sorgularını sık sık çalıştırıyorsanız veya dizine alan azalan düzende sıralanmışsa yararlı olabilir. Varsayılan olarak, dizin artan düzende oluşturulur.

  • WITH PRIMARY bağımsız değişkeni, dizine alan veya alanları tablonun birincil anahtar olarak hesaplar.

  • WITH DISALLOW NULL bağımsız değişkeni, dizinin dizine alan için bir değer girilemesine neden olur; başka bir ifadeyle null değerlere izin verilmez.

Satın almada dikkate aldığınız, kullanılan araçların adını, yılı, fiyatını ve koşullarını depolar alanlarıyla Birlikte Otomobiller adlı bir tablon olduğunu varsayalım. Ayrıca, tablonun büyük olduğunu ve sorgulara sık sık yıl alanı dahil etmekte olduğunu varsayalım. Aşağıdaki yordamı kullanarak, sorgularının sonuçları daha hızlı bir şekilde geri adelemelerine yardımcı olmak için Yıl alanında bir dizin oluşturabilirsiniz:

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

  2. Tasarım sekmesinin Sorgu Türü grubunda Veri Tanımı'nıtıklatın.

    Tasarım kılavuzu gizlidir ve SQL görünümü nesne sekmesi görüntülenir.

  3. Aşağıdaki SQL deyimini yazın:

    CREATE INDEX YearIndex ON Cars (Year)

  4. Tasarım sekmesinin Sonuçlar grubunda Çalıştır'a tıklayın.

Sayfanın Başı

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

Kısıtlama, bir alan veya alan bileşiminin değerler eklenirken karşılaması gereken mantıksal bir koşul sağlar. Örneğin UNIQUE kısıtlaması, kısıtlanmış alanın alan için var olan bir değeri yineleyen bir değeri kabul etmelerini engelleyebilirsiniz.

İlişki, bir değerin kısıtlanmış alana mı yoksa alanların bileşimine mi eklenemez? Kısıtlamanın bir ilişki olduğunu göstermek için özel bir anahtar sözcük kullanmazsiniz.

Kısıtlama oluşturmak için CREATE TABLE veya ALTER TABLE komutunda constraint yan tümcesi kullanırsınız. İki tür CONSTRAINT yan tümcesi vardır: biri tek bir alanda kısıtlama oluşturmak için, diğeri de birden çok alanda kısıtlama oluşturmak için.

Tek alanlı kısıtlamalar

Tek alanlı CONSTRAINT yan tümcesi, sınırlaması olan alanın tanımını hemen izler ve aşağıdaki söz dizimlerini içerir:

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 almada dikkate aldığınız, kullanılan araçların adını, yılı, fiyatını ve koşullarını depolar alanlarıyla Birlikte Otomobiller adlı bir tablon olduğunu varsayalım. Ayrıca, araba koşulu için değer girişini sık sık unutup her zaman bu bilgileri kaydetmek istediğinizi varsayalım. Koşul alanında, aşağıdaki yordamı kullanarak alanı boş bırakmanızı engelleyen bir kısıtlama oluşturabilirsiniz:

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

  2. Tasarım sekmesinin Sorgu Türü grubunda Veri Tanımı'nıtıklatın.

    Tasarım kılavuzu gizlidir ve SQL görünümü nesne sekmesi görüntülenir.

  3. Aşağıdaki SQL deyimini yazın:

    ALTER TABLE Cars ALTER COLUMN Condition TEXT CONSTRAINT ConditionRequired NOT NULL

  4. Tasarım sekmesinin Sonuçlar grubunda Çalıştır'a tıklayın.

Şimdi, bir süre sonra Koşul alanında aynı olması gereken birçok benzer değer olduğunu fark edersiniz. Örneğin, bazı otomobillerin Koşul değeri kötü, bazıları ise kötü değerine sahip.

Not: Kalan yordamları da takip etmek için, önceki adımlarda oluşturduğunuz Otomobiller tablosuna bazı sahte veriler ekleyin.

Değerleri daha tutarlı olacak şekilde temizledikten sonra, araba koşulu için kullanmak istediğiniz tüm değerleri içeren Koşul adlı tek bir alanla CarCondition adlı bir tablo oluşturabilirsiniz:

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

  2. Tasarım sekmesinin Sorgu Türü grubunda Veri Tanımı'nıtıklatın.

    Tasarım kılavuzu gizlidir ve SQL görünümü nesne sekmesi görüntülenir.

  3. Aşağıdaki SQL deyimini yazın:

    CREATE TABLE CarCondition (Condition TEXT(10))

  4. Tasarım sekmesinin Sonuçlar grubunda Çalıştır'a tıklayın.

  5. ALTER TABLE deyimi kullanarak tablo için birincil anahtar oluşturma:

    ALTER TABLE CarCondition ALTER COLUMN Condition TEXT CONSTRAINT CarConditionPK PRIMARY KEY

  6. Otomobiller tablosuna Koşul alanından yeni CarCondition tablosuna değerleri eklemek için, SQL görünümü nesne sekmesine aşağıdaki SQL'i yazın:

    INSERT INTO CarCondition SELECT DISTINCT Condition FROM Cars;

    Not: Bu adımda sql deyimi bir ekleme sorgusu. Veri tanımı sorgusunun aksine, ekleme sorgusu noktalı virgülle sona erer.

  7. Tasarım sekmesinin Sonuçlar grubunda Çalıştır'a tıklayın.

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

Otomobiller tablosuna Koşul alanına eklenen herhangi bir yeni değerin, Araç Koşul tablosunda Koşul alanı değeriyle eşleşmesini gerektirmek için, aşağıdaki yordamı kullanarak Koşul adlı alanda Araç Koşul ve Otomobiller arasında bir ilişki oluşturabilirsiniz:

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

  2. Tasarım sekmesinin Sorgu Türü grubunda Veri Tanımı'nıtıklatın.

    Tasarım kılavuzu gizlidir ve SQL görünümü nesne sekmesi görüntülenir.

  3. Aşağıdaki SQL deyimini yazın:

    ALTER TABLE Cars ALTER COLUMN Condition TEXT CONSTRAINT FKeyCondition REFERENCES CarCondition (Condition)

  4. Tasarım sekmesinin Sonuçlar grubunda Çalıştır'a tıklayın.

Çok alanlı kısıtlamalar

Çok alanlı CONSTRAINT yan tümcesi yalnızca alan tanımı yan tümcesi dışında kullanılabilir ve aşağıdaki söz dizimlerini içerir:

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}]}

Arabaları tablosu kullanan başka bir örneği göz önünde bulundurabilirsiniz. Otomobiller tablosunda Ad, Yıl, Koşul ve Fiyat için aynı değer kümesine sahip iki kaydın olmadığını varsayalım. Aşağıdaki yordamı kullanarak bu alanlara uygulanan bir UNIQUE kısıtlaması oluşturabilirsiniz:

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

  2. Tasarım sekmesinin Sorgu Türü grubunda Veri Tanımı'nıtıklatın.

    Tasarım kılavuzu gizlidir ve SQL görünümü nesne sekmesi görüntülenir.

  3. Aşağıdaki SQL deyimini yazın:

    ALTER TABLE Cars ADD CONSTRAINT NoDupes UNIQUE (ad, yıl, koşul, fiyat)

  4. Tasarım sekmesinin Sonuçlar grubunda Çalıştır'a tıklayın.

Sayfanın Başı

Daha fazla yardıma mı ihtiyacınız var?

Yeteneklerinizi geliştirin

Eğitimleri keşfedin >

Yeni özellikleri ilk olarak siz edinin

MICROSOFT 365 INSIDER’LARA KATILIN >

Bu bilgi yararlı oldu mu?

Dil kalitesinden ne kadar memnunsunuz?
Deneyiminizi ne etkiledi?

Geri bildiriminiz için teşekkürler!

×