مفتاح SQL الأساسي: إنشاء وإضافة إلى جدول موجود

⚡ ملخص ذكي

المفتاح الأساسي في SQL Server هو عمود أو مجموعة أعمدة تحدد قيمها كل صف في الجدول بشكل فريد. يحتوي كل جدول على مفتاح أساسي واحد، ويجب ألا تكون أعمدته فارغة (NULL).

  • 🔑 ما هو المفتاح الأساسي؟ المفتاح الأساسي هو عمود واحد أو أكثر تكون قيمه فريدة وتحدد كل صف في الجدول.
  • 🚫 القواعد الأساسية: يسمح الجدول بمفتاح أساسي واحد فقط، ويجب أن تكون كل قيمة فريدة، ولا يجوز أن يحتوي أي عمود مفتاح على قيمة فارغة (NULL).
  • 🖱️ طريقتان للإنشاء: يُعرّف كل من مصمم الجداول في SQL Server Management Studio وعبارة T-SQL CREATE TABLE مفتاحًا أساسيًا.
  • 🧱 بند القيد: داخل عبارة CREATE TABLE، تقوم عبارة CONSTRAINT … PRIMARY KEY بتسمية المفتاح وسرد عموده أو أعمدته.
  • ➕ أضف إلى جدول موجود: يقوم الأمر ALTER TABLE … ADD CONSTRAINT بإضافة مفتاح أساسي إلى أعمدة NOT NULL في جدول موجود.
  • 🧩 مفتاح مركب: يمكن للمفتاح الأساسي أن يجمع ما يصل إلى 16 عمودًا، مما يشكل مفتاحًا مركبًا فريدًا عبر المجموعة بأكملها.

مفتاح SQL Server الأساسي: كيفية إنشاء وإضافة إلى جدول موجود

ما هو المفتاح الأساسي في SQL؟

المفتاح الأساسي في ملقم SQL هو حقل، أو مجموعة حقول، تُعرّف السجل بشكل فريد. وهو عمود أو مجموعة أعمدة تكون كل قيمة فيها فريدة. بمعنى آخر، لا يمكن لصفين أن يشتركا في نفس قيمة المفتاح الأساسي.

قواعد المفتاح الأساسي

  • لا يمكن أن يحتوي كل جدول إلا على مفتاح أساسي واحد.
  • جميع القيم فريدة، ويمكن لقيمة المفتاح الأساسي أن تحدد كل صف بشكل فريد.
  • لن يسمح النظام بإدراج صف توجد قيمة مفتاحه الأساسي بالفعل في الجدول.
  • لا يمكن أن يكون المفتاح الأساسي فارغًا (NULL).

يلخص الرسم البياني أدناه جميع النقاط المذكورة أعلاه حول المفتاح الأساسي في لغة SQL.

مخطط يلخص قواعد المفتاح الأساسي في SQL: قيم فريدة، قيمة واحدة لكل جدول، وليست فارغة (NULL).

كيفية إنشاء مفتاح أساسي في SQL Server

يمكنك إنشاء مفتاح أساسي بطريقتين:

دعونا ندرس كل طريقة بالتفصيل.

مزود خدمة إدارة ستوديو

الخطوة 1) انقر بزر الماوس الأيمن على اسم الجدول ثم انقر تصميم.

انقر بزر الماوس الأيمن على الجدول واختر "تصميم" في SQL Server Management Studio

الخطوة الثانية) انقر بزر الماوس الأيمن على اسم العمود ثم انقر تعيين المفتاح الأساسي.

انقر بزر الماوس الأيمن على العمود واختر "تعيين المفتاح الأساسي" في مصمم الجداول

النتيجة: أصبح Course_Id الآن مفتاحًا أساسيًا، ويظهر ذلك من خلال رمز المفتاح الموجود بجانب العمود.

عمود Course_Id المميز برمز مفتاح باعتباره المفتاح الأساسي

لغة T-SQL: إنشاء مفتاح أساسي أثناء إنشاء جدول جديد

فيما يلي صيغة إنشاء جدول باستخدام مفتاح أساسي من لغة T-SQL.

بناء الجملة:

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

هنا، يُحدد CONSTRAINT المفتاح، ويُحدد PRIMARY KEY العمود الذي يجب أن يظل فريدًا، ويحتاج كل عمود أيضًا إلى نوع البيانات.

لنقم بإنشاء جدول يحتوي على عمود واحد كمفتاح أساسي في لغة SQL.

الاستعلام:

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

الخطوة 1) قم بتشغيل الاستعلام بالنقر تنفيذ.

تنفيذ استعلام CREATE TABLE الذي يُعرّف المفتاح الأساسي Course_ID

النتيجة: أصبح Course_Id الآن مفتاحًا أساسيًا في جدول COURSE_TSQL_PK.

جدول COURSE_TSQL_PK يعرض معرف الدورة التدريبية (Course_ID) كمفتاح أساسي

مثال: دعونا نرى ما إذا كان يسمح بإدخال سجلات متعددة بنفس معرف الدورة التدريبية.

الخطوة 1) أدخل أربعة صفوف بقيم مختلفة لـ Course_ID.

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');

الخطوة 2) تحقق من إدخال جميع البيانات بنجاح عن طريق تشغيل استعلام SELECT.

نتيجة استعلام SELECT تُظهر أربعة صفوف بقيم Course_ID مميزة

ملاحظة: يمكنك إدخال قيم مكررة في عمود ليس مفتاحًا أساسيًا.

الخطوة 3) الآن دعونا نحاول إدراج سجل جديد باستخدام معرف الدورة التدريبية الحالي، وهو المفتاح الأساسي.

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

النتيجة: لا يسمح النظام بإدخال القيمة الجديدة، لأن الرقم 4 موجود بالفعل في عمود Course_ID، وهو مفتاح أساسي.

رسالة خطأ ترفض قيمة المفتاح الأساسي المكررة لـ Course_ID

كيفية إضافة المفتاح الأساسي إلى الجدول الموجود في SQL؟

سنرى الآن كيفية إضافة مفتاح أساسي إلى جدول موجود في لغة SQL.

يمكنك استخدام عبارة ALTER لإنشاء مفتاح أساسي. مع ذلك، لا يُمكن إنشاء مفتاح أساسي إلا على الأعمدة المُعرّفة بأنها NOT NULL. لا يُمكنك إنشاء مفتاح أساسي على عمود يسمح بقيم NULL؛ إذا كان العمود يسمح حاليًا بقيم NULL، فيجب عليك أولًا تغييره إلى NOT NULL، أو حذف الجدول وإعادة إنشائه.

هنا بناء الجملة:

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

فمثلا:

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

عبارة ALTER TABLE لإضافة قيد مفتاح أساسي باسم students_pk

لقد أضفنا قيد المفتاح الأساسي إلى جدول موجود بالفعل. تمت إضافة القيد في عمود القبول وتم تعيين الاسم للطلاب_pk.

حقائق مثيرة للاهتمام!

  • يمكن أن يكون المفتاح الأساسي مزيجًا من عدة أعمدة. يُعرف هذا المزيج بالمفتاح الأساسي المركب.
  • يمكن أن يحتوي المفتاح الأساسي على 16 عمودًا كحد أقصى.

الأسئلة الشائعة

كلا النظامين يفرضان التفرد. يسمح الجدول بمفتاح أساسي واحد فقط، ولا يمكن أن تكون أعمدته فارغة (NULL). يمكن أن يحتوي الجدول على عدة مفاتيح فريدة، ويمكن أن يقبل العمود الفريد قيمة فارغة واحدة (NULL). عادةً ما تحدد المفاتيح الأساسية مُعرّف الصف الرئيسي.

نعم. يقوم SQL Server تلقائيًا بإنشاء فهرس فريد لفرض المفتاح الأساسي. افتراضيًا، يكون هذا الفهرس مُجمّعًا، مما يُرتب الصفوف ترتيبًا فعليًا. يمكنك تحديد NONCLUSTERED بدلاً من ذلك عندما يكون هناك عمود آخر يحمل بالفعل الفهرس المُجمّع.

يجمع المفتاح الأساسي المركب بين عمودين أو أكثر بحيث تكون قيمها فريدة معًا، حتى لو تكرر كل عمود على حدة. يسمح SQL Server بأن يمتد المفتاح الأساسي إلى ما يصل إلى 16 عمودًا، ويبلغ طوله الإجمالي 900 بايت.

يُعرّف المفتاح الأساسي كل صف بشكل فريد داخل جدوله الخاص، ولا يسمح أبدًا بقيم فارغة (NULL). المفتاح الخارجي يخزن القيم التي يجب أن تتطابق مع مفتاح أساسي أو فريد في جدول آخر، مما يؤدي إلى إنشاء علاقة بين الجدولين.

نفّذ الأمر ALTER TABLE table_name DROP CONSTRAINT constraint_name. يجب أن تعرف اسم القيد، والذي يمكنك إيجاده في sys.key_constraints. ثم احذف القيد.ping كما يقوم المفتاح الأساسي بإزالة الفهرس الفريد الداعم له وأي مفتاح خارجي يشير إليه.

يُعد عمود الهوية الذي يُولّد أرقامًا تلقائيًا مفتاحًا أساسيًا بديلًا شائعًا لأنه يظل ضيقًا وثابتًا ولا يحتوي على قيمة فارغة أبدًا. اختر مفتاحًا طبيعيًا فقط عندما يكون هناك عمود موجود، مثل رمز المنتج، مضمون التفرد بالفعل.

نعم. مساعد الطيار جيثب يمكن كتابة أوامر إنشاء الجداول وقيود المفتاح الأساسي بناءً على توجيهات اللغة الطبيعية، واقتراح أعمدة مفاتيح مناسبة. يُرجى مراجعة المفاتيح المُنشأة وأنواع البيانات وإمكانية قبول القيم الفارغة، ثم اختبار البرنامج النصي قبل تشغيله في بيئة الإنتاج.

تقوم أدوات الذكاء الاصطناعي والتعلم الآلي بتحليل بيانات العينة وأنماط الاستعلامات لتحديد العمود أو الأعمدة التي ينبغي أن تكون المفتاح الأساسي، وتحديد المفاتيح المرشحة التي تحتوي على قيم مكررة أو فارغة، واقتراح مفاتيح بديلة. ويؤكد المطور كل توصية قبل تطبيقها.

تلخيص هذه التدوينة بـ: