🔒 فهم قيد UNIQUE في SQL: منع التكرار الذكي
قيد UNIQUE هو أحد أهم القيود في SQL الذي يضمن عدم وجود قيم مكررة في عمود معين من الجدول. يعمل هذا القيد على حماية تكامل البيانات ومنع الأخطاء الناتجة عن التكرار غير المرغوب فيه.
🎯 ما هو قيد UNIQUE؟
قيد UNIQUE يضمن أن جميع القيم في عمود معين تكون فريدة ومميزة. على عكس PRIMARY KEY الذي يمنع القيم الفارغة أيضاً، يسمح UNIQUE بقيمة NULL واحدة فقط في العمود (في معظم أنظمة إدارة قواعد البيانات).
مثال بسيط: تخيل جدول "المستخدمين" حيث يجب أن يكون البريد الإلكتروني لكل مستخدم فريداً لا يتكرر.
📝 كيفية تطبيق قيد UNIQUE
يمكن تطبيق قيد UNIQUE بطريقتين رئيسيتين:
1. أثناء إنشاء الجدول
CREATE TABLE users (
user_id INT PRIMARY KEY,
email VARCHAR(100) UNIQUE,
username VARCHAR(50) UNIQUE NOT NULL
);
2. بإضافة القيد لجدول موجود
ALTER TABLE users
ADD CONSTRAINT unique_email UNIQUE (email);
💡 مثال عملي شامل
لننشئ جدول "المنتجات" حيث نريد确保 أن كل منتج له رمز فريد:
CREATE TABLE products (
product_id INT PRIMARY KEY,
product_code VARCHAR(20) UNIQUE, -- كل منتج له رمز فريد
product_name VARCHAR(100) NOT NULL,
price DECIMAL(10, 2)
);
إدخال بيانات صحيح:
INSERT INTO products VALUES
(1, 'P001', 'لابتوب', 1500.00),
(2, 'P002', 'هاتف', 800.00);
إدخال خاطئ (سيسبب خطأ):
INSERT INTO products VALUES (3, 'P001', 'تابلت', 500.00);
-- خطأ: قيمة مكررة في العمود product_code
⚠️ الفروق المهمة بين UNIQUE و PRIMARY KEY
| الخاصية | UNIQUE | PRIMARY KEY |
|---|---|---|
| عدد الأعمدة | يمكن تطبيقه على عمود أو أكثر | مفتاح رئيسي واحد |
| القيم الفارغة | يسمح بقيمة NULL واحدة | لا يسمح بأي قيمة NULL |
| عدد القيود | يمكن وجود عدة قيود UNIQUE | مفتاح رئيسي واحد فقط |
🛠️ إزالة قيد UNIQUE
إذا احتجت إلى إزالة قيد UNIQUE، يمكنك استخدام:
ALTER TABLE products
DROP CONSTRAINT unique_email;
📊 حالات عملية لاستخدام UNIQUE
- عنوان البريد الإلكتروني في جدول المستخدمين
- رقم الهاتف لضمان عدم التكرار
- الرموز التسلسلية للمنتجات
- أرقام الهوية في السجلات الحكومية
🎓 ماذا سنتعلم في الدرس القادم؟
في الدرس التالي، سنتعرف على قيد FOREIGN KEY وكيفية ربط الجداول معاً لإنشاء علاقات قوية بينها. سنتعلم كيفية بناء قواعد بيانات مرتبطة ومنظمة بشكل احترافي! 🚀
🎓 اختبر معلوماتك
التعليقات
شاركنا رأيك أو أسئلتك حول هذا المقال