MySQL'deki benzersiz anahtar, sütunda saklanacak tüm değerlerin benzersiz olmasını sağlayan tek bir alandır veya alanların birleşimidir. Bu, bir sütunun depolanamayacağı anlamına gelir yinelenen değerler . Örneğin, 'öğrenci_info' tablosundaki öğrencilerin e-posta adresleri ve rulo numaraları veya 'Çalışan' tablosundaki çalışanların iletişim numaraları benzersiz olmalıdır.
javascript uyarı kutusu
MySQL, bir tabloda UNIQUE kısıtlamasıyla birden fazla sütun kullanmamıza olanak tanır. Bir kabul edebilir hükümsüz değer, ancak MySQL sütun başına yalnızca bir boş değere izin verdi. şunları sağlar: bütünlük Farklı değerleri bir tabloya depolamak için sütunun veya sütun grubunun.
Benzersiz Anahtarın İhtiyaçları
- İki kaydın aynı değerleri sütunda saklamasını önlemek açısından kullanışlıdır.
- Bilgiye düzenli bir şekilde erişmek için veritabanının bütünlüğünü ve güvenilirliğini koruyan yalnızca farklı değerleri saklar.
- Ayrıca bir tablonun benzersizliğini korumak için yabancı anahtarla da çalışır.
- Tabloya null değer içerebilir.
Sözdizimi
Aşağıdaki sözdizimi benzersiz bir anahtar oluşturmak için kullanılır MySQL .
Bir tabloda yalnızca bir benzersiz anahtar sütunu oluşturmak istiyorsak aşağıdaki sözdizimini kullanın:
CREATE TABLE table_name( col1 datatype, col2 datatype UNIQUE, ... );
Bir tabloda birden fazla benzersiz anahtar sütunu oluşturmak istiyorsak aşağıdaki sözdizimini kullanın:
CREATE TABLE table_name( col1 col_definition, col2 col_definition, ... [CONSTRAINT constraint_name] UNIQUE(column_name(s)) );
Eğer benzersiz bir kısıtlama için isim belirtmemişsek, MySQL bu sütun için otomatik olarak bir isim oluşturur. Bu nedenle tablo oluştururken kısıtlama adının kullanılması önerilir.
Parametre Açıklaması
Aşağıdaki tabloda parametreler ayrıntılı olarak açıklanmaktadır.
Parametre adı | Açıklamalar |
---|---|
Tablo ismi | Oluşturacağımız tablonun adıdır. |
sütun1, sütun2 | Tabloda yer alan sütun adlarıdır. |
kısıtlama_adı | Benzersiz anahtarın adıdır. |
sütun_adı(ları) | Benzersiz bir anahtar olacak olan sütun adlarıdır. |
Benzersiz Anahtar Örneği
Aşağıdaki örnek, MySQL'de benzersiz bir anahtarın nasıl kullanıldığını açıklamaktadır.
Bu ifade bir tablo oluşturur ' Öğrenci2 ' UNIQUE kısıtlamasıyla:
CREATE TABLE Student2 ( Stud_ID int NOT NULL UNIQUE, Name varchar(45), Email varchar(45), Age int, City varchar(25) );
Daha sonra, nasıl çalıştığını anlamak için aşağıda listelenen ekleme sorgularını yürütün:
mysql> INSERT INTO Student2 (Stud_ID, Name, Email, Age, City) VALUES (1, 'Peter', '[email protected]', 22, 'Texas'), (2, 'Suzi', '[email protected]', 24, 'California'), (3, 'Joseph', '[email protected]', 23, 'Alaska'); mysql> INSERT INTO Student2 (Stud_ID, Name, Email, Age, City) VALUES (1, 'Stephen', '[email protected]', 22, 'Texas');
Çıktı
Aşağıdaki çıktıda ilkini görebiliriz. INSERT sorgusu doğru şekilde yürütülür, ancak ikinci ifade başarısız olur ve şunu söyleyen bir hata verir: Stud_ID anahtarı için yinelenen giriş '1'.
Benzersiz anahtarı tanımlamak istiyorsanız birden çok sütun sorguyu aşağıdaki gibi kullanın:
CREATE TABLE Student3 ( Stud_ID int, Roll_No int, Name varchar(45) NOT NULL, Email varchar(45), Age int, City varchar(25), CONSTRAINT uc_rollno_email Unique(Roll_No, Email) );
Çıktıda, benzersiz anahtar değerinin iki sütun içerdiğini görebiliriz. Rulo_Hayır Ve E-posta .
Bunu doğrulamak için aşağıdaki ifadeyi yürütün:
mysql> SHOW INDEX FROM Student3;
Burada benzersiz kısıtlamanın tabloya başarıyla eklendiğini görebiliriz:
DROP Benzersiz Anahtarı
ALTER TABLE ifadesi ayrıca benzersiz anahtarı tablodan çıkarmamıza da olanak tanır. Benzersiz anahtarı bırakmak için aşağıdaki sözdizimi kullanılır:
ALTER TABLE table_name DROP INDEX constraint_name;
Yukarıdaki sözdiziminde, Tablo ismi değiştirmek istediğimiz tablonun adıdır ve kısıtlama_adı kaldıracağımız benzersiz anahtarın adıdır.
Örnek
Bu açıklama şunları kaldıracak: uc_rollno_email tablodan kalıcı olarak kısıtlama.
mysql> ALTER TABLE Student3 DROP INDEX uc_rollno_email;
Bunun için SHOW INDEX deyimini çalıştırabiliriz.
ALTER TABLE İfadesini Kullanan Benzersiz Anahtar
Bu ifade mevcut tabloda değişiklik yapmamızı sağlar. Bazen mevcut bir tablonun sütununa benzersiz bir anahtar eklemek isteriz; daha sonra bu ifade, o sütuna benzersiz anahtarı eklemek için kullanılır.
Sözdizimi
Benzersiz bir anahtar eklemek için ALTER TABLE ifadesinin sözdizimi aşağıdadır:
ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(column_list);
Örnek
Bu ifade bir tablo oluşturur ' Öğrenciler3 ' Tablo tanımında benzersiz bir anahtar sütunu olmayanlar.
CREATE TABLE Student3 ( Stud_ID int, Roll_No int, Name varchar(45) NOT NULL, Email varchar(45), Age int, City varchar(25) );
Bir tablo oluşturduktan sonra bu tabloya benzersiz bir anahtar eklemek istersek ALTER TABLE deyimini aşağıdaki gibi çalıştırmamız gerekir:
mysql> ALTER TABLE Student3 ADD CONSTRAINT uc_rollno_email UNIQUE(Roll_No, Email);
Her iki ifadenin de başarıyla yürütüldüğü çıktıyı görebiliriz.
Bunu doğrulamak için aşağıdaki ifadeyi yürütün:
mysql> SHOW INDEX FROM Student3;
Burada benzersiz kısıtlamanın tabloya başarıyla eklendiğini görebiliriz: