SQL'deki UNIQUE kısıtlaması, bir sütundaki veya sütun kümesindeki değerlerin farklı olmasını sağlayarak kopyaların önlenmesini sağlar. PRIMARY KEY'den farklı olarak, her NULL benzersiz olarak kabul edildiğinden birden fazla NULL değere izin verir, birincil anahtar ise tüm değerlerin benzersiz ve NULL olmayan olmasını gerektirir.
Özellikler:
- Sütun(lar)ın benzersiz değerlere sahip olmasını sağlar.
- Birden fazla NULL'a izin verilir.
- Bir veya daha fazla sütuna uygulanabilir.
- Otomatik olarak bir dizin oluşturmaz (birçok veritabanı performans için bunu yapsa da).
- ALTER TABLE kullanılarak eklenebilir veya kaldırılabilir.
Sözdizimi:
java indeksi
CREATE TABLE table_name (
column1 datatype UNIQUE
column2 datatype
...
);
Yukarıdaki sözdiziminde:
- TABLO OLUŞTUR tablo_adı: yeni bir tablo oluşturur.
- sütun1 veri türü BENZERSİZ: veri türüne sahip bir sütunu tanımlar ve benzersiz değerleri uygular.
- sütun2 veri türü: benzersiz kısıtlama olmadan başka bir sütunu tanımlar.
- Gerektiğinde ek sütunlar için tekrarlayın.
SQL UNIQUE Kısıtlamasını Kullanma Örneği
Örnek 1: EŞSİZ Kısıtlamalara Sahip Bir Tablo Oluşturma
E-posta sütununun benzersiz olması gereken bir Müşteriler tablosu oluşturalım.
CREATE TABLE Customers (
CustomerID INT PRIMARY KEY
Name VARCHAR(100)
Email VARCHAR(100) UNIQUE
Country VARCHAR(50)
);
Bu durumda her müşterinin benzersiz bir e-posta adresine sahip olması gerekir. Yinelenen bir e-posta eklemeye çalışırsanız SQL bir hata ortaya çıkaracaktır.
INSERT INTO Customers (CustomerID Name Email Country)
VALUES (1 'John Doe' '[email protected]' 'USA');
INSERT INTO Customers (CustomerID Name Email Country)
VALUES (2 'Jane Smith' '[email protected]' 'Canada');
-- This will fail because '[email protected]' already exists
INSERT INTO Customers (CustomerID Name Email Country)
VALUES (3 'Alice Johnson' '[email protected]' 'UK');
Üçüncü ekleme başarısız olacaktır çünkü E-posta [email protected] Müşteriler tablosunda zaten mevcuttur.
Örnek 2: UNIQUE'u Birden Çok Sütunla Kullanmak
Ayrıca UNIQUE kısıtlamasını birden fazla sütuna uygulayarak bu sütunların kombinasyonunun benzersiz olmasını sağlayabiliriz.
CREATE TABLE Orders (
OrderID INT PRIMARY KEY
CustomerID INT
ProductID INT
OrderDate DATE
UNIQUE (CustomerID ProductID)
);
Bu örnekte Müşteri Kimliği ve Ürün Kimliği kombinasyonu benzersiz olmalıdır, yani bir müşteri aynı ürünü birden fazla sipariş edemez.
Örnek 3: Alt Sorguları Kullanarak Benzersiz Değerleri Kontrol Etme
SQL, alt sorgulardaki benzersizliği kontrol etmenize olanak tanır. Sonuçların yinelenen değerler içermediğinden emin olmak için bir alt sorguda UNIQUE anahtar sözcüğünü kullanabilirsiniz.
SELECT CustomerID
FROM Orders
WHERE UNIQUE (
SELECT OrderID
FROM OrderDetails
WHERE Orders.CustomerID = OrderDetails.CustomerID
);
Bu örnekte, Siparişler tablosundaki her müşteri için yinelenen Sipariş Kimliği değerleri olup olmadığını kontrol ediyoruz. Alt sorgu benzersiz değerler döndürürse Müşteri Kimliği seçilecektir.
Önemli Noktalar
- Boş bir alt sorguda true olarak değerlendirilir.
- Yalnızca alt sorgunun çıktısı olarak benzersiz demetler mevcutsa true değerini döndürür (iki demetin herhangi bir niteliğinin değeri farklıysa iki demet benzersizdir).
- Alt sorguda en az bir özelliği NULL olan iki yinelenen satır varsa true değerini döndürür.
UNIQUE kısıtlaması SQL'de neyi sağlar?
- A
Sütun yalnızca yinelenmeyen değerleri depolar
- B
Sütun, kopyaları kontrol etmeden değerlere izin verir
- C
Sütun, satırlarda birden çok aynı değeri kabul eder
- D
Sütun yalnızca her zaman NULL olmayan değerleri saklar
UNIQUE, sütundaki (veya sütun grubundaki) tüm değerlerin farklı olmasını sağlar ve yinelenen girişleri önler.
UNIQUE'un PRIMARY KEY'den farkı nedir?
- A
UNIQUE birçok NULL değere izin verir; birincil anahtar çalışmıyor
- B
UNIQUE, NULL'ları kaldırır; birincil anahtar her zaman NULL'u saklar
- C
BENZERSİZ indekslemeyi zorlar; birincil anahtar dizinleri engeller
- D
UNIQUE sıralamayı zorlar; birincil anahtar sıralamayı önler
UNIQUE birden fazla NULL değerine izin verir çünkü NULL'ları tamamen yasaklayan PRIMARY KEY'den farklı olarak her NULL farklı kabul edilir.
java koleksiyonu
BENZERSİZ bir sütuna yinelenen bir değer eklediğinizde ne olur?
- A
SQL yinelenen satırı kabul eder ve her iki değeri de saklar
- B
SQL önceki değeri en son eklenen değerle değiştirir
- C
SQL kopyayı reddediyor ve bir bütünlük hatası üretiyor
- D
SQL, yinelenen değeri otomatik olarak NULL'a dönüştürür
Bir değer UNIQUE kısıtlamasını ihlal ederse, SQL eklemeyi veya güncellemeyi engeller ve bir hata bildirir.
UNIQUE ve NULL ile ilgili hangi ifade doğrudur?
- A
UNIQUE, tüm NULL değerleri eşit kopyalar olarak ele alır
- B
UNIQUE, tüm NULL değerlerini ayrı benzersiz satırlar olarak ele alır
- C
UNIQUE, tüm NULL girişlerini boş dizelere dönüştürür
- D
UNIQUE, yalnızca sütunda veri bulunmadığında NULL'a izin verir
Her NULL, UNIQUE altında ayrı, karşılaştırılamaz bir değer olarak değerlendirildiğinden, birden fazla NULL'a izin verilir.
Neden birçok veritabanı UNIQUE için bir dizin oluşturuyor?
- A
Değerleri eklemeden önce alfabetik olarak düzenlemek için
- B
Sayısal verileri tabloya kaydetmeden önce biçimlendirmek için
- C
NULL'ları benzersiz sıralı değerlere dönüştürmek için
- D
Doğrulama sırasında kopyaların kontrolünü iyileştirmek için
Bir dizin, motorun yinelenen değerleri hızlı bir şekilde tespit etmesine yardımcı olarak UNIQUE kısıtlama uygulamasını daha verimli hale getirir.
Java dizesine int dök
UNIQUE anahtar sözcüğü bir alt sorguda neyi kontrol eder?
- A
Alt sorgunun tam olarak bir sayısal sütun döndürmesini sağlar
- B
Alt sorgu çıktısının yalnızca farklı satırlar içermesini sağlar
- C
Alt sorgunun, birleştirmeleri kullanmadan değerleri karşılaştırmasını sağlar
- D
Alt sorgunun herhangi bir NULL içeren satırları yok saymasını sağlar
UNIQUE, alt sorgunun yinelenen kayıtlar üretmediğini doğrular; döndürülen her satırın en az bir özellik açısından farklı olması gerekir.
Sınav Başarıyla Tamamlandı Puanınız : 2/6Kesinlik : %0Açıklamayı Görmek İçin Giriş Yapın 1/6 1/6 < Previous Sonraki >