- Katılım
- 21 May 2024
- Konular
- 1,450
- Mesajlar
- 2,451
- Çözüm
- 7
- Online süresi
- 3mo 25d
- Reaksiyon Skoru
- 2,564
- Altın Konu
- 1,027
- Başarım Puanı
- 274
- Yaş
- 51
- MmoLira
- 36,853
- DevLira
- 110
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
SQL Kısıtlamaları Oluşturma Nasıl Yapılır?
SQL Kısıtlamaları
SQL Kısıtlamaları, bir tabloya girebilecek veri türünü sınırlamak için bir veri sütununa veya tüm tabloya uygulanan kurallardır. Tabloda herhangi bir INSERT, UPDATE veya DELETE işlemi gerçekleştirmeye çalıştığınızda, RDBMS bu verinin mevcut kısıtlamaları ihlal edip etmediğini kontrol eder ve tanımlanan kısıtlama ile veri eylemi arasında herhangi bir ihlal varsa, işlemi iptal eder ve bir hata döndürür.Bir sütun düzeyi veya tablo düzeyi kısıtlamaları tanımlayabiliriz. Sütun düzeyi kısıtlamaları yalnızca bir sütuna uygulanırken, tablo düzeyi kısıtlamaları tüm tabloya uygulanır.
SQL Kısıtlamaları Oluşturma
Bir tablonun oluşturulması sırasında CREATE TABLE ifadesini kullanarak tablo üzerinde kısıtlamalar oluşturabiliriz veya tablo oluşturulduktan sonra ALTER TABLE ifadesini kullanarak tablo kısıtlamaları oluşturabilir veya silebiliriz.CREATE TABLE table_name (
column1 datatype constraint,
column2 datatype constraint,
....
columnN datatype constraint
);
Farklı RDBMS'ler farklı kısıtlamalar tanımlamaya izin verir. Bu eğitim MySQL'de bulunan en önemli 7 kısıtlamayı ele alacaktır.
NOT NULL Kısıtlaması
Bir sütuna uygulandığında, NOT NULL kısıtlaması bir sütunun NULL değerine sahip olamayacağını garanti eder. Aşağıda bir NOT NULL kısıtlaması oluşturma örneği verilmiştir:
Kod:
CREATE TABLE CUSTOMERS (
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25),
SALARY DECIMAL (18, 2)
);
UNIQUE Anahtar Kısıtlama
Bir sütuna uygulandığında, UNIQUE Key kısıtlaması bir sütunun yalnızca UNIQUE değerlerini kabul etmesini sağlar. Aşağıda, sütun ID'sinde UNIQUE Key kısıtlaması oluşturma örneği verilmiştir. Bu kısıtlama oluşturulduktan sonra, sütun ID'si boş olamaz ve yalnızca UNIQUE değerlerini kabul eder.
Kod:
CREATE TABLE CUSTOMERS (
ID INT NOT NULL UNIQUE,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25),
SALARY DECIMAL (18, 2)
);
DEFAULT Değer Kısıtlaması
Bir sütuna uygulandığında, DEFAULT Değer kısıtlaması, belirtilmediğinde bir sütun için varsayılan bir değer sağlar. Aşağıda, NAME sütununda bir DEFAULT kısıtlaması oluşturma örneği verilmiştir. Bu kısıtlama oluşturulduktan sonra, NAME bir değere ayarlanmamışsa NAME sütunu "Kullanılamaz" değerine ayarlanır.
Kod:
CREATE TABLE CUSTOMERS (
ID INT NOT NULL UNIQUE,
NAME VARCHAR (20) DEFAULT 'Not Available',
AGE INT NOT NULL,
ADDRESS CHAR (25),
SALARY DECIMAL (18, 2)
);
PRIMARY Anahtar Kısıtlama
Bir sütuna uygulandığında, PRIMARY Key kısıtlaması bir sütunun yalnızca UNIQUE değerini kabul etmesini sağlar ve bir tabloda tek bir PRIMARY Key olabilir ancak birden fazla sütun bir PRIMARY Key oluşturabilir. Aşağıda, sütun ID'sinde bir PRIMARY Key kısıtlaması oluşturma örneği verilmiştir. Bu kısıtlama oluşturulduktan sonra, sütun ID'si boş olamaz ve yalnızca benzersiz değerleri kabul eder.
Kod:
CREATE TABLE CUSTOMERS(
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25),
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID)
);
FOREIGN Anahtar Kısıtlama
FOREIGN Anahtar kısıtlaması başka bir tablodaki bir sütunla eşleşir ve o tabloda bir satırı/kaydın benzersiz bir şekilde tanımlar. Aşağıda, aşağıdaki ifadede gösterildiği gibi CUSTOMERS tablosunda bulunan sütun kimliğinde bir yabancı anahtar kısıtlaması oluşturmanın bir örneği verilmiştir.
Kod:
CREATE TABLE ORDERS (
ID INT NOT NULL,
DATE DATETIME,
CUSTOMER_ID INT FOREIGN KEY REFERENCES CUSTOMERS(ID),
AMOUNT DECIMAL,
PRIMARY KEY (ID)
);
Değer Kısıtlamasını Kontrol Edin
Bir sütuna uygulandığında, CHECK Değer kısıtlaması bir doğrulama gibi çalışır ve tablonun belirli sütununa girilen verilerin geçerliliğini kontrol etmek için kullanılır. tablo ve o tabloda bir satırı/kaydın benzersiz bir şekilde tanımlanmasını sağlar. Aşağıda, değeri 18'in altındaysa kabul etmeyecek olan AGE sütununda bir CHECK doğrulaması oluşturma örneği verilmiştir.
Kod:
CREATE TABLE CUSTOMERS(
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL CHECK(AGE>=18),
ADDRESS CHAR (25),
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID)
);
INDEX Kısıtlaması
INDEX kısıtlamaları, veritabanından veri alma işlemini hızlandırmak için oluşturulur. Bir tabloda tek bir sütun veya sütun grubu kullanılarak bir Endeks oluşturulabilir. Bir tablonun tek bir PRIMARY Anahtarı olabilir ancak birden fazla INDEXES'i olabilir. Bir Endeks, gereksinimlere göre Benzersiz veya Benzersiz Olmayan olabilir. Aşağıda, CUSTOMERS tablosunun Age Sütununda bir Endeks oluşturmaya yönelik bir örnek verilmiştir.CREATE INDEX idx_age ON CUSTOMERS ( AGE );
SQL Kısıtlamalarını Bırakma
Tanımladığınız herhangi bir kısıtlama, DROP CONSTRAINT seçeneğiyle ALTER TABLE komutunu kullanarak bırakılabilir. Örneğin, birincil anahtar kısıtlamasını CUSTOMERS tablosundan bırakmak için aşağıdaki komutu kullanabilirsiniz.ALTER TABLE CUSTOMERS DROP CONSTRAINT PRIMARY KEY;
Bazı RDBMS'ler kısıtlamaları veritabanından kalıcı olarak kaldırmak yerine devre dışı bırakmanıza izin verir; kısıtlamaları geçici olarak devre dışı bırakmak ve daha sonra yeniden etkinleştirmek isteyebilirsiniz.
Veri Bütünlüğü Kısıtlamaları
Veri bütünlüğü kısıtlamaları, verilerin genel doğruluğunu, eksiksizliğini ve tutarlılığını sağlamak için kullanılır. Günümüzde veri bütünlüğü, GDPR uyumluluğu vb. gibi düzenleyici uyumluluk açısından veri güvenliğini de ifade eder.Veri bütünlüğü, ilişkisel bir veritabanında referans bütünlüğü kavramı aracılığıyla ele alınır. Referans Bütünlüğünde (RI) rol oynayan birçok türde bütünlük kısıtlaması vardır . Bu kısıtlamalar arasında Birincil Anahtar, Yabancı Anahtar, Benzersiz Kısıtlamalar ve yukarıda belirtilen diğer kısıtlamalar bulunur.


