MySQL MariaDB

MySQL Benzersiz Kısıtlamalarını Kullanma

MySQL Benzersiz Kısıtlamalarını Kullanma
MySQL CONSTRAINT, satırlara girilebilecek verileri tutabilecek veya sınırlayabilecek alanlardaki değerlere izin veren veya kısıtlayan kuralları tanımlamak için atılıyor. Kısıtlamalar getirmenin amacı, bir veritabanının güvenilirliğini korumaktır. Bunlardan biri UNIQUE kısıtlamasıdır.

UNIQUE kısıtlaması, bir alandaki hemen hemen tüm öğelerin birbirinden farklı olmasını garanti eder. Bir alan veya alan grubu için, BENZERSİZ ve BİRİNCİL ANAHTAR sınırları karşılıklı olarak bir bireysellik güvencesine sahiptir. Bununla birlikte, her tablo için bir PRIMARY KEY limiti olmasına rağmen, her tabloda birkaç BENZERSİZ kısıtlamamız olabilir. Birkaç örnek deneyerek öğrenelim.

Workbench ile Benzersiz Kısıtlama:

Öncelikle MySQL Workbench 8 kullanırken tabloya Unique kısıtlamaları eklemeyi öğrenmeliyiz.0. Yeni kurulan MySQL Workbench 8'inizi açın.0 ve veritabanına bağlayın.

Sorgu alanına 'Kişi' tablosu oluşturmak için aşağıdaki komutu yazmanız gerekmektedir. Bu tablo, bir birincil anahtara sahip 4 sütuna sahiptir. Benzersiz bir sütun belirtmeliyiz. Gördüğünüz gibi, 'Id' sütununu 'UNIQUE' sütunu olarak temizledik:

>> TABLO OLUŞTUR Kişi (ID int PRIMARY KEY NOT NULL, LastName varchar(255) NULL DEĞİL, FirstName varchar(255), Age int, UNIQUE(ID));

Artık “Kişi” tablosu “EŞSİZ” sütunu “Kimlik” ile oluşturulmuştur. Tabloyu “Gezgin” ve “Şemalar” altında, “Tablolar” seçeneğinde listelenirken bulabilirsiniz.

Kayıtları eklerken “Uygula” butonuna bastığınızda aşağıda gösterildiği gibi eklenen kayıtları gözden geçirecektir. 3. ve 4. satırlarda aynı "kimliğe" sahip bir adet yinelenen kaydımız olduğunu görebilirsiniz. Değişiklikleri uygulamak için “Uygula” düğmesine dokunun.

Aşağıdaki resimde, "ID" sütununun kopyaladığı, "13" değeri olan bir hata oluşturuyor.

Kaydı düzelttikten sonra değişiklikleri uyguladığınızda düzgün çalışacaktır.

Komut Satırı Kabuğu aracılığıyla Benzersiz Kısıtlama:

MySQL komut satırı kabuğunda, bir veya birkaç sütuna BENZERSİZ anahtarlar ekleyeceğiz. Aşağıdaki örneklerde her birine bir göz atmak için önce komut satırınızı açın. Komut kabuğunu kullanmak için parolanızı yazın.

Örnek 01: Tek Sütun Üzerinde

Bu sözdiziminde, sütun belirtiminde olduğu gibi, benzersizlik yasasını uygulamak istediğiniz BENZERSİZ terimi kullanıyoruz. Belirli bir sütuna kopyalar oluşturan bir değer eklediğimizde veya değiştirdiğimizde, değişiklik MySQL tarafından reddedilecek ve ayrıca bir istisna verilecektir. Bu Özel limitte bir sütun kısıtlaması olacaktır. Ve bunu bir alanın benzersiz kuralını uygulamak için de kullanabilirsiniz. İşte tek sütunlu UNIQUE anahtarının sözdizimi:

>> TABLO OLUŞTUR tablo_adı( col veri türü UNIQUE, sütun veri türü);

İçinde üç sütun bulunan “veri” veritabanında bir “tedarikçi” tablosu oluşturalım. "Kimlik" sütunu "EŞSİZ" olarak tanımlanır.

>> TABLO verisi OLUŞTUR.tedarikçi( id INT AUTO_INCREMENT NOT NULL UNIQUE, Adı VARCHAR(50) NOT NULL, Alan VARCHAR(50));

Kontrol ettiğinizde, tablonun henüz kaydı olmadığını görebilirsiniz.

>> verilerden * SEÇİN.Tedarikçi;

Kayıtları tabloya ekleyelim. İlk kayıt, aşağıda gösterildiği gibi sorunsuz bir şekilde tabloya eklenecektir.

İkinci kayıt, “ID” sütununda mükerrer değerler olmadığı için tekrar sorunsuz bir şekilde eklenecektir. Öte yandan, “Alan” sütununda ilk sorguda kullandığı değeri alıyor.

Üçüncü kaydı eklerken, ilk ekleme ifadesinde sağladığımız gibi yinelenen “1” değerini sağladık. Aşağıdaki resimde gösterildiği gibi "ID" sütununun yinelenen bir değer aldığına dair bir hata üretecektir.

Tekrar kontrol ederken, tablonun sadece ilk iki insert ifadesinin kaydına sahip olduğunu görebilirsiniz. Üçüncü insert ifadesinden kayıt yokken.

>> verilerden * SEÇİN.Tedarikçi;

Örnek 02: Birden Çok Sütun Üzerinde

Bu formatla, UNIQUE teriminden sonra, parantez içinde virgülle ayrılmış bir dizi sütun uygularız. Col1 ve col2 alanındaki değerlerin bileşimi, benzersizliği belirlemek için MySQL tarafından kullanılır.

>> TABLO OLUŞTUR tablo_adı( sütun1 veri türü, sütun2 veri türü, BENZERSİZ(sütun1, sütun2));

Beş sütunlu “veri” veritabanında “bakan” tablosu oluşturuyoruz. "ID" sütunu "EŞSİZ" ve "PRİMARY" olarak tanımlanır. "CONSTRAINT" anahtar sözcüğü, benzersiz bir anahtar kısıtlamasını "uc_add_sal" olarak adlandırmak için kullanılır. “UNIQUE” anahtar sözcüğü, parantez içinde belirtilen sütunlar üzerinde bir UNIQUE kısıtlaması tanımlamak için kullanılır, e.g., Adres ve “Maaş”. Şimdi üzerlerinde “EŞSİZ” kısıtlamaya sahip toplam üç sütunumuz var.

>> TABLO verisi OLUŞTUR.bakan( Mid INT AUTO_INCREMENT BİRİNCİL ANAHTAR NULL DEĞİL, VARCHAR(50) DEĞİL NULL, Adres VARCHAR(50), İş VARCHAR(50), Maaş VARCHAR(50), CONSTRAINT uc_add_sal UNIQUE (Adres, Maaş));

Masayı kontrol ettiğinizde, masanın şu anda boş olduğunu görebilirsiniz.

>> verilerden * SEÇİN.bakan;

İçine bazı kayıtlar ekleyelim. İlk satır olduğu ve eşleştirilecek satır olmadığı için ilk kayıt tabloya başarıyla eklenecektir.

Aşağıda gösterildiği gibi, herhangi bir sütunda yinelenen değer içermeyen başka bir benzersiz kayıt girin.

Üzerinde “EŞSİZ” kısıtlaması olmayan sütunlar için yinelenen değerleri girdiğimizde etkilenmez. Aşağıdaki sorguya bir göz atın. "Ad" ve "İş" sütunlarında yinelenen bir değere sahip. Bu iki sütun üzerinde tanımlanmış “EŞSİZ” kısıtlaması olmadığı için düzgün çalışıyor.

Öte yandan, yinelenen değeri eklediğimizde, e.g., “13” ve “Rawalpindi”, aşağıda gösterildiği gibi bir hata üretecektir. Bunun nedeni, “13” ve “Rawalpindi”nin daha önce belirtilmiş olmasıdır.

Kontrol ederken, ilk üç sorgu tarafından eklenen tabloda yalnızca üç kaydımız var.

>> verilerden * SEÇİN.bakan;

Sonuç:

MySQL Workbench 8'i kullanırken tekli ve çoklu sütunlarda UNIQUE kısıtlamaları tanımlamanın tüm örneklerini zarif bir şekilde yaptık.0 ve MySQL komut satırı istemci kabuğu. EŞSİZ anahtarlarla ilgili sorunları çözerken umarım sorun yaşamazsınız.

Battle for Wesnoth Tutorial
The Battle for Wesnoth is one of the most popular open source strategy games that you can play at this time. Not only has this game been in developmen...
0 A.D. Tutorial
Out of the many strategy games out there, 0 A.D. manages to stand out as a comprehensive title and a very deep, tactical game despite being open sourc...
Unity3D Tutorial
Introduction to Unity 3D Unity 3D is a powerful game development engine. It is cross platform that is it allows you to create games for mobile, web, d...