SQL BİRİNCİL ANAHTAR: Mevcut Bir Tabloya Kayıt Oluşturma ve Ekleme

⚡ Akıllı Özet

SQL Server'da birincil anahtar, bir tablodaki her satırı benzersiz şekilde tanımlayan değerlere sahip bir sütun veya sütun kümesidir. Her tabloda bir birincil anahtar bulunur ve sütunları asla NULL olmamalıdır.

  • 🔑 Birincil anahtar nedir? Birincil anahtar, değerleri benzersiz olan ve bir tablodaki her satırı tanımlayan bir veya daha fazla sütundur.
  • ???? Temel kurallar: Bir tabloda yalnızca birincil anahtar bulunabilir, her değer benzersiz olmalıdır ve hiçbir anahtar sütunu NULL değeri içermemelidir.
  • 🖱️ İki oluşturma yöntemi: SQL Server Management Studio Tablo Tasarımcısı ve T-SQL CREATE TABLE ifadesi, her ikisi de birincil anahtar tanımlar.
  • 🧱 CONSTRAINT maddesi: CREATE TABLE komutunun içindeki CONSTRAINT … PRIMARY KEY maddesi, anahtarın adını ve sütununu veya sütunlarını listeler.
  • Mevcut bir tabloya ekleme: ALTER TABLE … ADD CONSTRAINT komutu, mevcut bir tablonun NOT NULL sütunlarına birincil anahtar ekler.
  • 🧩 Bileşik anahtar: Birincil anahtar, en fazla 16 sütunu birleştirerek, tüm küme genelinde benzersiz olan bileşik bir anahtar oluşturabilir.

SQL Server Birincil Anahtar: Mevcut Bir Tabloya Nasıl Veri Eklenir ve Yeni Bir Tablo Oluşturulur

SQL'de Birincil Anahtar nedir?

Birincil anahtar SQL Server Birincil anahtar, bir kaydı benzersiz şekilde tanımlayan bir alan veya alan kombinasyonudur. Her değerin benzersiz olduğu bir sütun veya sütun kümesidir. Başka bir deyişle, hiçbir iki satır aynı birincil anahtar değerini paylaşamaz.

Birincil Anahtar Kuralları

  • Her tabloda yalnızca bir adet birincil anahtar bulunabilir.
  • Tüm değerler benzersizdir ve birincil anahtar değeri her satırı benzersiz şekilde tanımlayabilir.
  • Sistem, birincil anahtar değeri tabloda zaten mevcut olan bir satırın eklenmesine izin vermeyecektir.
  • Birincil anahtar NULL olamaz.

Aşağıdaki diyagram, SQL birincil anahtarı hakkında yukarıda belirtilen tüm noktaları özetlemektedir.

SQL birincil anahtar kurallarını özetleyen diyagram: benzersiz değerler, tablo başına bir tane ve NULL olamaz.

SQL Server'da Birincil Anahtar Nasıl Oluşturulur

Birincil anahtarı iki şekilde oluşturabilirsiniz:

Şimdi her yöntemi ayrıntılı olarak inceleyelim.

SQL Server Management Studio

Adım 1) Tablo adına sağ tıklayın ve tıklayın. Tasarım.

Tabloya sağ tıklayın ve SQL Server Management Studio'da Tasarım'ı seçin.

Adım 2) Sütun adına sağ tıklayın ve tıklayın. Birincil Anahtarı Ayarla.

Tablo Tasarımcısında sütuna sağ tıklayın ve Birincil Anahtarı Ayarla seçeneğini seçin.

Sonuç: Course_Id artık birincil anahtardır ve bu durum sütunun yanında bulunan anahtar simgesiyle gösterilmektedir.

Anahtar simgesiyle işaretlenmiş Course_Id sütunu birincil anahtardır.

T-SQL: Yeni Bir Tablo Oluştururken Birincil Anahtar Oluşturma

Aşağıda sözdizimi yer almaktadır. bir tablo oluştur T-SQL'den alınan birincil anahtar ile.

Sözdizimi:

CREATE TABLE <Table_Name>
(
Column1 datatype,
Column2 datatype,CONSTRAINT <Name> PRIMARY KEY (Column name)
.
);

Burada, CONSTRAINT anahtarı belirtir, PRIMARY KEY benzersiz kalması gereken sütunu işaretler ve her sütunun ayrıca bir PRIMARY KEY'e ihtiyacı vardır. veri tipi.

SQL birincil anahtarı olarak tek bir sütun içeren bir tablo oluşturalım.

Sorgu:

CREATE TABLE COURSE_TSQL_PK 
(Course_ID Int not Null,
 Course_name Varchar(20)
 CONSTRAINT PK PRIMARY KEY (Course_ID)	
)

Adım 1) Sorguyu çalıştırmak için tıklayın. Gerçekleştirmek.

Course_ID birincil anahtarını tanımlayan CREATE TABLE sorgusunu yürütme

Sonuç: Course_Id artık COURSE_TSQL_PK tablosunda birincil anahtardır.

Course_ID'nin birincil anahtar olarak ayarlandığı COURSE_TSQL_PK tablosu

Örnek: Aynı Kurs Kimliği ile birden fazla kayıt girilmesine izin verilip verilmediğine bakalım.

Adım 1) Farklı Course_ID değerlerine sahip dört satır ekleyin.

Insert into COURSE_TSQL_PK values (1,'SQL');
Insert into COURSE_TSQL_PK values (2,'Python');
Insert into COURSE_TSQL_PK values (3,'SQL');
Insert into COURSE_TSQL_PK values (4,'C');

Adım 2) SELECT sorgusunu çalıştırarak tüm verilerin başarıyla eklendiğini doğrulayın.

SELECT sorgusunun sonucu, birbirinden farklı Course_ID değerlerine sahip dört satırı göstermektedir.

Not: Birincil anahtar olmayan bir sütuna yinelenen değerler ekleyebilirsiniz.

3. Adım) Şimdi, birincil anahtar olan mevcut Course_ID'yi kullanarak yeni bir kayıt eklemeyi deneyelim.

Insert into COURSE_TSQL_PK values (4,'JAVA');

Sonuç: Sistem, Course_ID sütununda (birincil anahtar) 4 değeri zaten mevcut olduğundan yeni değerin eklenmesine izin vermiyor.

Course_ID için yinelenen birincil anahtar değerini reddeden hata mesajı.

SQL'de Mevcut Tabloya Birincil Anahtar Nasıl Eklenir?

Şimdi SQL'de mevcut bir tabloya birincil anahtar eklemeyi göreceğiz.

ALTER ifadesini kullanarak birincil anahtar oluşturabilirsiniz. Ancak, birincil anahtar yalnızca NOT NULL olarak tanımlanmış sütunlarda oluşturulabilir. NULL değerlere izin veren bir sütunda birincil anahtar oluşturamazsınız; eğer bir sütun şu anda NULL değerlere izin veriyorsa, önce onu NOT NULL olarak değiştirmeniz veya tabloyu silip yeniden oluşturmanız gerekir.

İşte sözdizimi:

ALTER TABLE tableName
ADD CONSTRAINT constraintName PRIMARY KEY (column_1, column_2, ... column_n);

Örneğin:

ALTER TABLE students
ADD CONSTRAINT students_pk PRIMARY KEY (admission);

ALTER TABLE ifadesi, students_pk adında birincil anahtar kısıtlaması ekliyor.

Zaten mevcut bir tabloya birincil anahtar kısıtlaması ekledik. Kısıtlama kabul sütununa eklendi ve Students_pk adı verildi.

İlginç gerçekler!

  • Birincil anahtar, birden fazla sütunun birleşimi olabilir. Bu birleşime bileşik birincil anahtar denir.
  • Birincil anahtar en fazla 16 sütun içerebilir.

SSS

Her ikisi de benzersizliği sağlar. Bir tablo yalnızca birincil anahtar içerebilir ve sütunları NULL olamaz. Bir tablo birden fazla benzersiz anahtar içerebilir ve benzersiz bir sütun bir NULL değeri kabul edebilir. Birincil anahtarlar genellikle ana satır tanımlayıcısını belirler.

Evet. SQL Server, birincil anahtarın geçerliliğini sağlamak için otomatik olarak benzersiz bir dizin oluşturur. Varsayılan olarak bu dizin kümelenmiştir, yani satırlar fiziksel olarak sıralanmıştır. Başka bir sütun zaten kümelenmiş dizini içeriyorsa, bunun yerine NONCLUSTERED belirtebilirsiniz.

Birleşik birincil anahtar, iki veya daha fazla sütunu bir araya getirerek, her sütun ayrı ayrı tekrarlansa bile değerlerinin birlikte benzersiz olmasını sağlar. SQL Server, birincil anahtarın 16 sütuna kadar uzanmasına ve toplam 900 baytlık bir anahtar uzunluğuna izin verir.

Birincil anahtar, kendi tablosundaki her satırı benzersiz bir şekilde tanımlar ve asla boş (NULL) değerlere izin vermez. yabancı anahtar Başka bir tablodaki birincil veya benzersiz anahtarla eşleşmesi gereken değerleri saklar ve bu sayede iki tablo arasında bir ilişki oluşturur.

ALTER TABLE table_name DROP CONSTRAINT constraint_name komutunu çalıştırın. Kısıtlama adını bilmeniz gerekir; bu adı sys.key_constraints tablosunda bulabilirsiniz. Silme işlemini gerçekleştirin.ping Birincil anahtar, onu destekleyen benzersiz dizini ve ona referans veren tüm yabancı anahtarları da kaldırır.

Sayıları otomatik olarak üreten bir IDENTITY sütunu, dar, istikrarlı ve asla NULL olmayan bir yapıya sahip olduğu için popüler bir vekil birincil anahtardır. Bunun yerine doğal bir anahtar yalnızca, ürün kodu gibi mevcut bir sütunun zaten benzersiz olduğu garanti edildiğinde tercih edilir.

Evet. GitHub Yardımcı Pilotu Doğal dil komutlarından CREATE TABLE ifadeleri ve PRIMARY KEY kısıtlamaları yazabilir ve uygun anahtar sütunları önerebilirsiniz. Oluşturulan anahtarları, veri türlerini ve boş değer kabul etme özelliğini her zaman gözden geçirin, ardından üretimde çalıştırmadan önce betiği test edin.

Yapay zeka ve makine öğrenimi araçları, örnek verileri ve sorgu kalıplarını analiz ederek hangi sütun veya sütunların birincil anahtar olması gerektiğini önerir, yinelenen veya NULL değerler içeren aday anahtarları işaretler ve vekil anahtarlar önerir. Geliştirici, uygulamadan önce her öneriyi onaylar.

Bu yazıyı şu şekilde özetleyin: