Xarici açar (ing. foreign key) — SQL verilənlər bazalarında bir cədvəldəki bir sütunun (və ya bir neçə sütunun) başqa bir cədvəlin bir sütunu ilə əlaqəli olduğunu göstərən bir məhdudiyyətdir.[1][2]
Xarici açarlar, verilənlər bazasında cədvəllər arasındakı əlaqələri müəyyən etmək və bu əlaqələrin düzgünlüyünü qorumaq üçün istifadə olunur. Onlar verilənlər bazasında məlumatların bütövlüyünü təmin etməyə kömək edir.[3]
category_id
sütunu xarici açar kimi təyin edilə bilər ki, bu da onu kateqoriya cədvəlindəki id
sütunu ilə əlaqələndirir.[4]category_id
varsa, bu dəyər kateqoriya cədvəlindəki id
sütununda mövcud olmalıdır.[5]ON DELETE
— əsas cədvəldən bir qeydi sildikdə xarici açara malik qeydlərlə nə baş verəcəyini idarə edir. Məsələn:CASCADE
— əsas qeydi silərkən əlaqəli xarici açar qeydləri də avtomatik olaraq silinir.SET NULL
— əsas qeydi silərkən əlaqəli xarici açar dəyəri NULL-a təyin olunur.[6][7]RESTRICT
— əsas qeydi silmək qadağan olunur, əgər ona bağlı xarici açar qeydləri varsa.ON UPDATE
— əsas qeydin dəyərini yeniləyərkən xarici açar qeydlərinin necə yenilənəcəyini idarə edir. Oxşar olaraq CASCADE
, SET NULL
, və RESTRICT
kimi seçimlər mövcuddur.[8]Bir cədvəldə xarici açar yaratmaq üçün SQL-də FOREIGN KEY
ifadəsi istifadə olunur. Məsələn, orders
(sifarişlər) cədvəli və customers
(müştərilər) cədvəli arasında əlaqə yaratmaq üçün aşağıdakı sintaksisdən istifadə olunur:[9]
CREATE TABLE orders (
order_id INT PRIMARY KEY,
order_date DATE,
customer_id INT,
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
Bu misalda, orders
cədvəlindəki customer_id
sütunu xarici açar kimi təyin olunur və bu, customers
cədvəlindəki customer_id
sütununa istinad edir.[10]
Xarici açarlar cədvəllər arasında əlaqələrin düzgün və məntiqli olmasını təmin edir.