قيود SQL هي عناصر أساسية في تصميم قاعدة البيانات العلائقية التي تضمن نزاهة دقة و مصداقية من البيانات المخزنة في قاعدة البيانات. من خلال فرض قواعد محددة على أعمدة الجدول، تساعد قيود SQL في الحفاظ على تناسق البيانات، مما يمنع إدخالات البيانات غير الصالحة وتحسين أداء الاستعلام.
سنشرح في هذه المقالة قيود SQL الأكثر شيوعًا بالتفصيل مع تقديم أمثلة واضحة وشرح كيفية تنفيذها بشكل فعال.
ما هي قيود SQL؟
قيود SQL هي القواعد المطبقة على أعمدة أو الجداول في أ قاعدة بيانات علائقية للحد من نوع البيانات التي يمكن أن تكون تم إدراجها محدث أو تم حذفه . تضمن هذه القواعد أن البيانات صالحة ومتسقة وتلتزم بمنطق العمل أو متطلبات قاعدة البيانات . يمكن فرض القيود أثناء إنشاء الجدول أو لاحقًا باستخدام ALTER TABLE إفادة. إنهم يلعبون دورًا حيويًا في الحفاظ على جودة وسلامة قاعدة البيانات الخاصة بك.
أنواع قيود SQL
توفر SQL عدة أنواع من القيود لإدارة الجوانب المختلفة لتكامل البيانات. تعتبر هذه القيود ضرورية لضمان تلبية البيانات لمتطلبات دقة تناسق و صحة . دعنا نتناول كل واحد منهم مع شرح وأمثلة مفصلة.
ميغابايت إلى غيغابايت
1. ليس القيد الفارغ
ال ليست فارغة يضمن القيد أن العمود لا يمكن أن يحتوي على قيم فارغة. يعد هذا مهمًا بشكل خاص للأعمدة التي تكون فيها القيمة ضرورية لتحديد السجلات أو إجراء العمليات الحسابية. إذا تم تعريف العمود على أنه ليست فارغة يجب أن يتضمن كل صف قيمة لهذا العمود.
مثال:
CREATE TABLE Student
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
ADDRESS varchar(20)
);
توضيح: في المثال أعلاه كلا منIDوNAMEيتم تعريف الأعمدة باستخدام ليست فارغة القيد يعني أن كل طالب يجب أن يكون لديهIDوNAMEقيمة.
2. القيد الفريد
ال فريد يضمن القيد أن تكون جميع القيم الموجودة في العمود مميزة عبر جميع الصفوف في الجدول. على عكس المفتاح الأساسي الذي يتطلب التفرد ولا يسمح بالقيم الخالية (NULLs)، القيد الفريد يسمح بالقيم الخالية (NULL) ولكنه لا يزال يفرض التفرد على الإدخالات غير الفارغة.
مثال:
CREATE TABLE Student
(
ID int(6) NOT NULL UNIQUE
NAME varchar(10)
ADDRESS varchar(20)
);
توضيح : هناIDيجب أن يحتوي العمود على قيم فريدة تضمن عدم إمكانية مشاركة أي طالبين في نفس القيمID. يمكن أن يكون لدينا أكثر من واحد فريد القيد في الجدول.
3. القيد الرئيسي الأساسي
أ المفتاح الأساسي القيد هو مزيج من ليست فارغة و فريد قيود. فهو يحدد بشكل فريد كل صف في الجدول. يمكن أن يحتوي الجدول على واحد فقط المفتاح الأساسي ولا يمكنه قبول القيم الخالية. يُستخدم هذا عادةً للعمود الذي سيكون بمثابة معرف السجلات.
مثال:
CREATE TABLE Student
(
ID int(6) NOT NULL UNIQUE
NAME varchar(10)
ADDRESS varchar(20)
PRIMARY KEY(ID)
);
توضيح: في هذه الحالةIDيتم تعيين العمود كمفتاح أساسي لضمان أن معرف كل طالب فريد ولا يمكن أن يكون فارغًا.
4. قيد المفتاح الخارجي
أ المفتاح الأجنبي يربط القيد عمودًا في جدول واحد بـ المفتاح الأساسي في جدول آخر. تساعد هذه العلاقة في الحفاظ عليها التكامل المرجعي من خلال التأكد من أن القيمة في المفتاح الخارجي يتطابق العمود مع سجل صالح في الجدول المشار إليه.
جدول الطلبات:
| O_ID | ORDER_NO | C_ID |
|---|---|---|
| 1 | 2253 | 3 |
| 2 | 3325 | 3 |
| 3 | 4521 | 2 |
| 4 | 8532 | 1 |
جدول العملاء:
| C_ID | اسم | عنوان |
|---|---|---|
| 1 | راميش | دلهي |
| 2 | سوريش | نويدا |
| 3 | دارمش | جورجاون |
كما يمكننا أن نرى بوضوح أن هذا المجال C_ID في جدول الطلبات هو المفتاح الأساسي في جدول العملاء، أي أنه يحدد بشكل فريد كل صف في الجدول عملاء طاولة. لذلك فهو مفتاح خارجي في جدول الطلبات.
مثال:
تقسيم سلسلة في C++
CREATE TABLE Orders
(
O_ID int NOT NULL
ORDER_NO int NOT NULL
C_ID int
PRIMARY KEY (O_ID)
FOREIGN KEY (C_ID) REFERENCES Customers(C_ID)
)
توضيح: في هذا المثالC_IDالعمود فيOrdersالجدول هو مفتاح خارجي يشير إلىC_IDالعمود فيCustomersطاولة. وهذا يضمن إمكانية إدراج معرفات العملاء الصالحة فقط في الملفOrdersطاولة.
5. التحقق من القيد
ال يفحص يسمح لنا القيد بتحديد شرط يجب أن تستوفيه البيانات قبل إدراجها في الجدول. يمكن استخدام هذا لفرض قواعد مثل التأكد من أن قيمة العمود تستوفي معايير معينة (على سبيل المثال، يجب أن يكون العمر أكبر من 18 عامًا)
مثال:
CREATE TABLE Student
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
AGE int NOT NULL CHECK (AGE >= 18)
);
توضيح: في الجدول أعلاه يفحص يضمن القيد إمكانية إدراج الطلاب الذين تبلغ أعمارهم 18 عامًا أو أكبر فقط في الجدول.
6. القيد الافتراضي
ال تقصير يوفر القيد قيمة افتراضية للعمود عندما لا يتم تحديد أي قيمة أثناء الإدراج. يعد هذا مفيدًا لضمان أن بعض الأعمدة لها دائمًا قيمة ذات معنى حتى لو لم يقدم المستخدم واحدة
مثال:
CREATE TABLE Student
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
AGE int DEFAULT 18
);
توضيح: هنا إذا لم يتم توفير قيمة لAGEأثناء عملية الإدراج، سيتم تعيين القيمة الافتراضية البالغة 18 تلقائيًا.
الربيع والربيع MVC
كيفية تحديد القيود في SQL
يمكن تحديد القيود أثناء عملية إنشاء الجدول باستخدام الأمر CREATE TABLE إفادة. بالإضافة إلى ذلك، يمكن تعديل القيود أو إضافتها إلى الجداول الموجودة باستخدام الأمرALTER TABLEإفادة.
بناء الجملة لإنشاء القيود:
إنشاء جدول table_name
(
نوع بيانات العمود 1 [اسم_القيود]
نوع بيانات العمود 2 [اسم القيد]
نوع بيانات العمود 3 [اسم القيد]
...
);
يمكننا أيضًا إضافة أو إزالة القيود بعد إنشاء الجدول:
مثال لإضافة قيد:
ALTER TABLE Student
ADD CONSTRAINT unique_student_id UNIQUE (ID);
خاتمة
قيود SQL ضرورية للصيانة سلامة البيانات وضمان الاتساق في قواعد البيانات العلائقية. إن فهم هذه القيود وتنفيذها بشكل فعال سيساعد في تصميم قواعد بيانات قوية خالية من الأخطاء. بالاستفادة ليس مفتاحًا أساسيًا فريدًا فارغًا، فحص المفتاح الخارجي، الافتراضي والفهرس يمكنك التأكد من تحسين قاعدة البيانات الخاصة بك دقة و أداء .
إنشاء اختبار