Cara Buat Kekunci Asing dalam Microsoft SQL Server

Salah satu konsep yang paling penting dalam pangkalan data adalah mewujudkan hubungan antara jadual pangkalan data. Hubungan ini menyediakan satu mekanisme untuk menghubungkan data yang disimpan dalam beberapa jadual dan mengambilnya dengan cara yang efisien. Untuk membuat hubungan antara dua jadual, anda mesti menentukan kunci asing dalam satu jadual yang merujuk lajur dalam jadual lain.

Jadual dan Hubungan Pangkalan Data

Anda mungkin sudah tahu bahawa pangkalan data hanya satu siri jadual , sama seperti yang anda mungkin gunakan dalam program spreadsheet , seperti Microsoft Excel. Malah, anda juga boleh menukar hamparan Excel ke pangkalan data. Walau bagaimanapun, di mana pangkalan data menyimpang dari spreadsheet, adalah apabila membina hubungan kuat antara jadual.

Sebagai contoh, pertimbangkan pangkalan data yang digunakan oleh syarikat untuk mengesan maklumat sumber manusia. Pangkalan data itu mungkin mempunyai jadual yang dipanggil Kakitangan yang mengandungi maklumat berikut untuk setiap ahli kakitangan syarikat:

Dalam contoh ini, ID pekerja adalah integer unik yang ditugaskan kepada setiap pekerja apabila mereka ditambahkan ke pangkalan data. ID kedudukan ialah kod kerja yang digunakan untuk merujuk kedudukan pekerja dalam syarikat. Dalam skim ini, seseorang pekerja hanya mempunyai satu kedudukan, tetapi pekerja (atau tidak) boleh mengisi setiap kedudukan. Contohnya, anda mungkin mempunyai beratus pekerja dengan kedudukan "Tunai".

Pangkalan data mungkin juga mengandungi jadual yang dipanggil Posisi dengan maklumat tambahan berikut mengenai setiap kedudukan:

Medan ID Kedudukan dalam jadual ini adalah sama dengan medan ID Kakitangan dalam jadual Pekerja - ia adalah integer yang dihasilkan secara unik yang dibuat apabila kedudukan ditambahkan ke pangkalan data.

Apabila kita pergi untuk menarik senarai pekerja dari pangkalan data, adalah wajar untuk meminta nama setiap orang dan tajuk mereka. Walau bagaimanapun, maklumat ini disimpan dalam pelbagai jadual pangkalan data, jadi hanya boleh diambil menggunakan pertanyaan JOIN yang memerlukan hubungan yang ada di antara jadual.

Apabila anda melihat struktur jadual, bidang yang menentukan hubungannya mungkin jelas - bidang ID Kedudukan. Setiap pekerja hanya mempunyai satu kedudukan dan kedudukan tersebut dikenal pasti dengan memasukkan ID Kedudukan dari entri yang berkaitan dengan jadual Pos. Sebagai tambahan sebagai kunci utama untuk jadual Posisi, dalam contoh ini, medan Posisi ID juga merupakan kunci asing dari jadual Pekerja ke jadual Pos. Pangkalan data kemudiannya boleh menggunakan medan ini untuk menghubungkan maklumat dari beberapa jadual dan memastikan bahawa sebarang perubahan atau penambahan pada pangkalan data terus menguatkuasakan integriti rujukan .

Sebaik sahaja anda telah mengenal pasti kekunci asing, anda boleh meneruskan dan menarik maklumat yang dikehendaki dari pangkalan data menggunakan pertanyaan berikut:

PILIH FirstName, LastName, Judul FROM Pekerja INNER JOIN Positions ON Employees.PositionID = Positions.PositionID

Mewujudkan Kekunci Asing dalam SQL Server

Secara teknikal, anda tidak perlu mendefinisikan hubungan secara jelas untuk dapat melakukan pertanyaan seperti yang di atas. Walau bagaimanapun, jika anda secara jelas menyatakan hubungan menggunakan kekangan utama asing, pangkalan data akan dapat melaksanakan beberapa kerja pengemasan untuk anda:

Berikut adalah cara anda mencipta kunci asing dalam SQL Server:

Ubah Meja JADUAL Kakitangan MENAMBAH KELEBIHAN PENTING (PosisiID) PENDEDAHAN Posisi (PositionID)

Anda juga boleh membuat kunci asing apabila anda membuat jadual dengan menambah fasal:

PEMELIHARA DUNIA UTAMA Posisi (PositionID)

hingga akhir definisi lajur untuk lajur utama asing.