MySQL veritabanı kullanıyorum. Birincil anahtar ile benzersiz anahtar arasında bir karışıklık var.
Lütfen birincil ve benzersiz anahtarı nerede oluşturmalıyım. Yani hangi durumda benzersiz anahtar veya birincil anahtar oluşturuyoruz.
MySQL veritabanı kullanıyorum. Birincil anahtar ile benzersiz anahtar arasında bir karışıklık var.
Lütfen birincil ve benzersiz anahtarı nerede oluşturmalıyım. Yani hangi durumda benzersiz anahtar veya birincil anahtar oluşturuyoruz.
Yanıtlar:
Birincil anahtar:
NULL
- örneğin MySQL eklerNOT NULL
Benzersiz anahtarı:
NULL
değerleri olabilirNULL
; birden çok satırın NULL
değerleri olabilir ve bu nedenle "benzersiz" olarak değerlendirilemezBenzersiz Anahtar (İngiltere) : Bir satırdaki benzersizliği tanımlayabilen bir sütun veya sütun grubudur.
Birincil Anahtar (PK) : Her şey de üst üste bir teklik belirleyebilir sütun sütun veya grup.
Bu nedenle, Birincil anahtar benzersiz anahtar için başka bir addır, ancak SQL Server'daki varsayılan uygulama Birincil ve Benzersiz Anahtar için farklıdır.
Varsayılan olarak:
Bir İngiltere veya PK oluşturmaya karar verirken amacınız gerçekten bağlıdır. "Üç kişilik bir ekip varsa, hepsi akran, ancak bir çift akran olacak biri olacak: PK ve İngiltere benzer bir ilişkiye sahip." Bu makaleyi okumanızı tavsiye ederim: Yazar tarafından verilen örnek uygun görünmeyebilir, ancak genel bir fikir edinmeye çalışın.
http://tsqltips.blogspot.com/2012/06/difference-between-unique-key-and.html
[table_name]_pkey
, tabloya yeni bir sütun (varsayılan adla ) eklendiği anlamına gelir ( bunun yedek anahtar olarak adlandırıldığını duydum). Kaynak: postgresqltutorial.com/postgresql-primary-key Tüm bunlara yeniyim, bu yüzden özlediğim nüansları göstermek için daha bilgili bir posteri takdir ediyorum.
Bir kuruluş veya işletme için çok fazla fiziksel varlık (insanlar, kaynaklar, makineler vb.) Ve sanal varlıklar (Görevleri, işlemleri, etkinlikleri) vardır. Tipik olarak, işletmelerin bu işletmelerin bilgilerini kaydetmesi ve işlemesi gerekir. Bu ticari varlıklar, bir işletme alanı içinde bir Anahtar ile tanımlanır.
RDBMS ileriye yönelik olarak Anahtar (diğer adıyla Aday Anahtar) bir varlığı benzersiz şekilde tanımlayan bir değer veya değer kümesidir.
Bir DB Tablosu için çok fazla anahtar vardır ve Birincil Anahtar için uygun olabilir. Böylece tüm anahtarlar, birincil anahtar, benzersiz anahtar vb. Toplu olarak Aday Anahtar olarak adlandırılır. Ancak DBA, kayıt aramak için aday anahtardan bir anahtar seçti ve Birincil anahtar denir.
Birincil Anahtar ve Benzersiz anahtar arasındaki fark
1. Davranış: Birincil Anahtar, bir tablodaki bir satırı (kaydı) tanımlamak için kullanılırken, Benzersiz anahtar, bir sütundaki yinelenen değerleri (boş giriş dışında) önlemek içindir.
2. Dizin Oluşturma: Varsayılan olarak SQL motoru, yoksa birincil anahtarda Kümelenmiş Dizin ve Benzersiz anahtarda Kümelenmemiş Dizin oluşturur.
3. Nullability: Birincil anahtar Null değerleri içermez, oysa Benzersiz anahtar olabilir.
4. Varlık: Bir tablonun en fazla bir birincil anahtarı olabilir, ancak birden fazla Benzersiz anahtarı olabilir.
5. Değiştirilebilirlik: Birincil değerleri değiştiremez veya silemezsiniz, ancak Benzersiz anahtar değerleri değiştirebilir.
Daha fazla bilgi ve Örnekler için:
Birincil anahtar benzersiz olmalıdır.
Benzersiz bir anahtarın birincil anahtar olması gerekmez - bkz. Aday anahtarı .
Yani, bir tabloda bir satırı benzersiz bir şekilde tanımlayabilen birden fazla sütun kombinasyonu olabilir - bunlardan yalnızca biri birincil anahtar olarak seçilebilir. Diğerleri benzersiz olsa da aday anahtarlar.
Birincil Anahtar ve Benzersiz Anahtar arasındaki fark
+-----------------------------------------+-----------------------------------------------+ | Primary Key | Unique Key | +-----------------------------------------+-----------------------------------------------+ | Primary Key can't accept null values. | Unique key can accept only one null value. | +-----------------------------------------+-----------------------------------------------+ | By default, Primary key is clustered | By default, Unique key is a unique | | index and data in the database table is | non-clustered index. | | physically organized in the sequence of | | | clustered index. | | +-----------------------------------------+-----------------------------------------------+ | We can have only one Primary key in a | We can have more than one unique key in a | | table. | table. | +-----------------------------------------+-----------------------------------------------+ | Primary key can be made foreign key | In SQL Server, Unique key can be made foreign | | into another table. | key into another table. | +-----------------------------------------+-----------------------------------------------+
Ayrıntılı bilgileri şu adreste bulabilirsiniz:
http://www.dotnet-tricks.com/Tutorial/sqlserver/V2bS260912-Difference-between-Primary-Key-and-Unique-Key.html
Birincil anahtar, bir veritabanının satırını tanımlama semantiğine sahiptir. Bu nedenle, belirli bir tablo için yalnızca bir birincil anahtar olabilirken, birçok benzersiz anahtar olabilir.
Aynı nedenden ötürü birincil anahtar NULL olamaz (en azından Oracle'da, diğer veritabanlarından emin değilim)
Satırı tanımladığı için asla değişmemelidir. Birincil anahtarların değiştirilmesi ciddi acıya ve muhtemelen ebedi lanetlemeye neden olacaktır.
Bu nedenle, çoğu durumda birincil anahtar için tablodaki tek satırları tanımlamaktan başka bir şey için kullanılmayan yapay bir kimlik istersiniz.
Diğer yandan benzersiz tuşlar istediğiniz kadar değişebilir.
Birincil anahtar benzersiz bir anahtardır.
Her tablonun en fazla ONE birincil anahtarı olmalıdır, ancak birden fazla benzersiz anahtarı olabilir. Bir tablo satırı benzersiz bir şekilde tanımlamak için birincil anahtar kullanılır. Birincil anahtar olamaz NULL
çünkü NULL
bir değer değildir.
Bu sorunun birkaç yaşında olduğunu biliyorum, ancak bunun nedenini açıklamak yerine nedenini açıklayan bir cevap vermek istiyorum
Birincil Anahtarın Amacı : Veritabanındaki bir satırı benzersiz bir şekilde tanımlamak => Satır, tablo tarafından modellenen varlık türünün tek bir örneğini temsil eder. Birincil anahtar, bir işletmenin bütünlüğünü, AKA Varlık Bütünlüğünü zorunlu kılar. Birincil Anahtar kümelenmiş bir dizin olur, yani verilerin fiziksel olarak bir tabloda depolanma sırasını tanımlar.
Benzersiz Anahtarın Amacı : Tamam, Birincil Anahtar ile bir satırı benzersiz bir şekilde tanımlamanın bir yolu var. Ama başka bir sütun / sütun kümesi benzersiz değerlere sahip olması gereken bir iş ihtiyacım var. Teknik olarak, bu sütun (lar) ın benzersiz olduğu göz önüne alındığında, varlık bütünlüğünü uygulamak için bir aday olabilir. Ancak bildiğimiz her şey için bu sütun, benzersiz olmaktan şüphe duyabileceğim bir dış kuruluştan gelen verileri içerebilir. Varlık bütünlüğünü sağladığına güvenemeyebilirim. Ben sadece iş gereksinimi karşılamak için benzersiz bir anahtar yapmak.
İşte böyle!
Veritabanı tasarımınız yabancı anahtar gerektirmeyecek şekildeyse, Benzersiz anahtarla gidebilirsiniz ( ancak benzersiz anahtarın tek null değere izin verdiğini unutmayın ).
Eğer yabancı anahtar veritabanı talep ederseniz o zaman hiçbir seçenek ile birincil anahtar ile gitmek zorunda bırakın.
Benzersiz ve birincil anahtar arasındaki farkı görmek için burayı ziyaret edin
Benzersiz anahtar: - Benzersiz değer vermek zorunda olduğunuzda kullanılmalıdır. Benzersiz anahtar durumunda boş değerlere de izin verilir demektir. Benzersiz anahtarlar, bu sütunda benzersiz ve benzer olmayan, örneğin evcil hayvanınızın adı .it null gibi bir şey olamaz ve veritabanı bağlamında soruyorsanız o zaman her null veritabanındaki başka bir null farklı olduğunu belirtmek gerekir. EXCEPT-SQL Server burada null = null doğru
birincil anahtar: - Benzersiz olarak bir satır tanımlamanız gerektiğinde kullanılmalıdır. birincil, bir veritabanı kısıtlamasındaki her satır için benzersiz olan anahtardır. otomatik artan bir sütuna sahiptir ve tablonun birincil anahtarıdır. artı olabilir ki başka table.example yabancı anahtar olarak kullanılabilir bir düzen Tablo üzerinde sipariş numarası , bir fatura Tablo billId .
şimdi ne zaman kullanılacağı duruma geri dönüyor: -
1) sütunda tabloda boş olmayan birincil anahtar ve ilişki oluşturmak için başka bir tabloda yabancı anahtar olarak kullanıyorsunuz
2) Tabloda veya tüm veritabanında etkilemediği benzersiz anahtar, restoranda atıştırmalıklar gibi belirli bir sütun için null alıp almamanız, bir restoranda atıştırmalık almamanız mümkündür
Birincil Anahtar ve Benzersiz Anahtar arasındaki fark
Her ikisi de Primary key
ve Unique Key
bir tablodaki bir satırı benzersiz bir şekilde tanımlamak için kullanılır.
sütunu Primary Key
oluşturur .clustered index
Unique creates an unclustered index of the column
A Primary Key
izin vermez NULL value
, ancak a Unique Key
izin verir one NULL value
.
Basitçe Birincil Anahtar benzersizdir ve boş olamaz, benzersiz boş olabilir ve benzersiz olmayabilir.
may not be unique
Burada ne anlama geliyor?
Birincil anahtarın ana amacı, tablodaki her bir kaydı tanımlamak için bir araç sağlamaktır.
Birincil anahtar, satır içindeki verileri kullanarak satırı tanımlamak için bir araç sağlar. Birincil anahtar, ad ve soyadı gibi bir veya daha fazla sütuna dayanabilir; ancak, birçok tasarımda birincil anahtar, bir kimlik sütunundan otomatik olarak oluşturulan bir sayıdır.
Birincil anahtar aşağıdaki özelliklere sahiptir:
Benzersiz bir anahtara benzersiz sınırlama da denir. Satırların veritabanı içinde benzersiz olmasını sağlamak için benzersiz bir kısıtlama kullanılabilir.
Bunu birincil anahtarla yapmıyor muyuz? Evet, var, ancak bir tabloda benzersiz olmasını istediğiniz birkaç sütun kümesi olabilir.
SQL Server'da benzersiz anahtar aşağıdaki özelliklere sahiptir:
kaynak: burada
Birincil anahtarın ana özellikleri şunlardır:
Her veri satırı için benzersiz bir değer içermelidir. Boş değerler içeremez. Tabloda yalnızca bir Birincil anahtar.
Benzersiz bir anahtarın ana özellikleri şunlardır:
Ayrıca her veri satırı için benzersiz bir değer içerebilir.
Boş değerler de içerebilir.
Bir tabloda birden çok benzersiz anahtar.
PRIMARY KEY = UNIQUE KEY + Not Null CONSTRAINT