إنشاء جداول أو فهارس أو تعديلها باستخدام استعلام تعريف البيانات

يمكنك إنشاء جداول وقيود وفهرسات وعلاقات وتعديلها في Access عن طريق كتابة استعلامات تعريف البيانات في طريقة عرض SQL. تشرح هذه المقالة استعلامات تعريف البيانات وكيفية استخدامها لإنشاء الجداول والقيود والمفهرسات والعلاقات. يمكن أن تساعدك هذه المقالة أيضا على تحديد متى يجب استخدام استعلام تعريف البيانات.

في هذه المقالة

نظرة عامة

بخلاف استعلامات Access الأخرى، لا يقوم استعلام تعريف البيانات باسترداد البيانات. بدلا من ذلك، يستخدم استعلام تعريف البيانات لغة تعريف البيانات لإنشاء كائنات قاعدة البيانات أو تعديلها أو حذفها.

ملاحظة: لغة تعريف البيانات (DDL) هي جزء من لغة الاستعلامات المنظمة (SQL).

قد تكون استعلامات تعريف البيانات ملائمة جدا. يمكنك حذف أجزاء من مخطط قاعدة البيانات بشكل منتظم ثم إعادة إنشائها فقط عن طريق تشغيل بعض الاستعلامات. يمكنك استخدام استعلام تعريف البيانات إذا كنت ملما باستخدام عبارات SQL وتخطط لحذف جداول أو قيود أو فهارس أو علاقات معينة أو إعادة إنشائها.

تحذير: قد يكون استخدام استعلامات تعريف البيانات لتعديل كائنات قاعدة البيانات خطرا، لأن الإجراءات غير مصحوبة بمربعات حوار تأكيد. إذا ارتكبت خطأ ما، يمكنك فقدان البيانات أو تغيير تصميم جدول عن غير قصد. كن حذرا عند استخدام استعلام تعريف البيانات لتعديل العناصر في قاعدة البيانات. إذا لم تكن مسؤولا عن الاحتفاظ بقاعدة البيانات التي تستخدمها، يجب استشارة مسؤول قاعدة البيانات قبل تشغيل استعلام تعريف البيانات.

هام: يمكنك إنشاء نسخة احتياطية لأي جداول متدخلة قبل تشغيل استعلام تعريف البيانات.

كلمات DDL الأساسية

الكلمة الأساسية

الاستخدام

CREATE

إنشاء فهرس أو جدول غير موجود بالفعل.

ALTER

تعديل جدول أو عمود موجود.

DROP

حذف جدول أو عمود أو قيد موجود.

ADD

إضافة عمود أو قيد إلى جدول.

COLUMN

استخدام مع ADD أو ALTER أو DROP

CONSTRAINT

استخدام مع ADD أو ALTER أو DROP

INDEX

الاستخدام مع CREATE

TABLE

الاستخدام مع ALTER أو CREATE أو DROP

أعلى الصفحة

إنشاء جدول أو تعديله

لإنشاء جدول، استخدم الأمر CREATE TABLE. الأمر CREATE TABLE له بناء الجملة التالي:

CREATE TABLE table_name 
(field1 type [(size)] [NOT NULL] [index1]
[, field2 type [(size)] [NOT NULL] [index2]
[, ...][, CONSTRAINT constraint1 [, ...]])

العناصر المطلوبة فقط من الأمر CREATE TABLE هي الأمر CREATE TABLE نفسه واسم الجدول، ولكن عادة ما تريد تعريف بعض الحقول أو جوانب أخرى من الجدول. فكر في هذا المثال البسيط.

لنفترض أنك تريد إنشاء جدول لتخزين اسم السيارات المستخدمة التي تفكر في شرائها، السنة والسعر. تريد السماح بما يصل إلى 30 حرفا للاسم و4 أحرف في السنة. لاستخدام استعلام تعريف البيانات لإنشاء الجدول، قم بما يلي:

ملاحظة: قد تحتاج أولا إلى تمكين محتويات قاعدة البيانات لكي يتم تشغيل استعلام تعريف البيانات:

  • على "شريط الرسائل"، انقر فوق تمكين المحتوى.

إنشاء جدول

  1. على علامة التبويب "إنشاء"، في المجموعة "وحدات & التعليمات البرمجية"، انقر فوق "تصميم الاستعلام".

  2. على علامة التبويب "تصميم"، في المجموعة "نوع الاستعلام"، انقر فوق "تعريف البيانات".

    تكون شبكة التصميم مخفية، كما يتم عرض علامة تبويب كائن طريقة عرض SQL.

  3. اكتب بيان SQL التالي:

    CREATE TABLE Cars (Name TEXT(30), Year TEXT(4), Price CURRENCY)

  4. على علامة التبويب تصميم، في مجموعة النتائج، انقر فوق تشغيل.

تعديل جدول

لتعديل جدول، استخدم الأمر ALTER TABLE. يمكنك استخدام الأمر ALTER TABLE لإضافة أعمدة أو قيود أو تعديلها أو إسقاطها (إزالة). الأمر ALTER TABLE له بناء الجملة التالي:

ALTER TABLE table_name predicate

حيث يمكن أن تكون عملية التكريس أي واحد من الحالات التالية:

ADD COLUMN field type[(size)] [NOT NULL] [CONSTRAINT constraint]

ADD CONSTRAINT multifield_constraint

ALTER COLUMN field type[(size)]

DROP COLUMN field

DROP CONSTRAINT constraint

لنفترض أنك تريد إضافة حقل نصي من 10 أحرف لتخزين معلومات حول حالة كل سيارة. يمكنك القيام بما يلي:

  1. على علامة التبويب "إنشاء"، في المجموعة "وحدات & التعليمات البرمجية"، انقر فوق "تصميم الاستعلام".

  2. على علامة التبويب "تصميم"، في المجموعة "نوع الاستعلام"، انقر فوق "تعريف البيانات".

    تكون شبكة التصميم مخفية، كما يتم عرض علامة تبويب كائن طريقة عرض SQL.

  3. اكتب بيان SQL التالي:

    ALTER TABLE Cars ADD COLUMN Condition TEXT(10)

  4. على علامة التبويب تصميم، في مجموعة النتائج، انقر فوق تشغيل.

أعلى الصفحة

إنشاء فهرس

لإنشاء فهرس على جدول موجود، استخدم الأمر CREATE INDEX. الأمر CREATE INDEX له بناء الجملة التالي:

CREATE [UNIQUE] INDEX index_name
ON table (field1 [DESC][, field2 [DESC], ...])
[WITH {PRIMARY | DISALLOW NULL | IGNORE NULL}]

العناصر المطلوبة فقط هي الأمر CREATE INDEX واسم الفهرس وال الوسيطة ON واسم الجدول الذي يحتوي على الحقول التي تريد فهرستها وقائمة الحقول التي سيتم تضمينها في الفهرس.

  • تتسبب وسيطة DESC في إنشاء الفهرس بترتيب تنازلي، مما قد يكون مفيدا إذا كنت تقوم بشكل متكرر بتشغيل الاستعلامات التي تبحث عن القيم العليا في الحقل المفهرس، أو التي تقوم بفرز الحقل المفهرس بترتيب تنازلي. بشكل افتراضي، يتم إنشاء فهرس في ترتيب تصاعدي.

  • تنشئ الوسيطة WITH PRIMARY الحقل أو الحقول المفهرسة مفتاح أساسي الجدول.

  • تتسبب الوسيطة WITH DISALLOW NULL في أن يتطلب الفهرس إدخال قيمة في الحقل المفهرس— أي أن القيم Null غير مسموحة.

لنفترض أن لديك جدولا باسم "السيارات" مع حقول تخزن اسم السيارات المستخدمة التي تفكر في شرائها، السنة والسعر وحالتها. لنفترض أيضا أن الجدول أصبح كبيرا وأنك تقوم بتضمين حقل السنة في الاستعلامات بشكل متكرر. يمكنك إنشاء فهرس في الحقل "السنة" لمساعدة الاستعلامات على إرجاع النتائج بسرعة أكبر باستخدام الإجراء التالي:

  1. على علامة التبويب "إنشاء"، في المجموعة "وحدات & التعليمات البرمجية"، انقر فوق "تصميم الاستعلام".

  2. على علامة التبويب "تصميم"، في المجموعة "نوع الاستعلام"، انقر فوق "تعريف البيانات".

    تكون شبكة التصميم مخفية، كما يتم عرض علامة تبويب كائن طريقة عرض SQL.

  3. اكتب بيان SQL التالي:

    CREATE INDEX YearIndex ON Cars (Year)

  4. على علامة التبويب تصميم، في مجموعة النتائج، انقر فوق تشغيل.

أعلى الصفحة

إنشاء قيد أو علاقة

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

العلاقة هي نوع من القيود التي تشير إلى قيم حقل أو مجموعة حقول في جدول آخر لتحديد ما إذا كان يمكن إدراج قيمة في الحقل المقيد أو مجموعة الحقول. لا تستخدم كلمة أساسية خاصة للإشارة إلى أن القيد علاقة.

لإنشاء قيد، استخدم عبارة CONSTRAINT في الأمر CREATE TABLE أو ALTER TABLE. هناك نوعان من عبارات CONSTRAINT: واحدة لإنشاء قيد في حقل واحد، وأخرى لإنشاء قيد على حقول متعددة.

قيود مفردة الحقل

تتبع عبارة CONSTRAINT ذات الحقل الواحد تعريف الحقل الذي تقيده مباشرة، وهي ذات بناء الجملة التالي:

CONSTRAINT constraint_name {PRIMARY KEY | UNIQUE | NOT NULL |
REFERENCES foreign_table [(foreign_field)]
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

لنفترض أن لديك جدولا باسم "السيارات" مع حقول تخزن اسم السيارات المستخدمة التي تفكر في شرائها، السنة والسعر وحالتها. لنفترض أيضا أنك نسيت بشكل متكرر إدخال قيمة لشرط السيارة، وأنك تريد دائما تسجيل هذه المعلومات. يمكنك إنشاء قيد في الحقل "شرط" يمنعك من ترك الحقل فارغا، باستخدام الإجراء التالي:

  1. على علامة التبويب "إنشاء"، في المجموعة "وحدات & التعليمات البرمجية"، انقر فوق "تصميم الاستعلام".

  2. على علامة التبويب "تصميم"، في المجموعة "نوع الاستعلام"، انقر فوق "تعريف البيانات".

    تكون شبكة التصميم مخفية، كما يتم عرض علامة تبويب كائن طريقة عرض SQL.

  3. اكتب بيان SQL التالي:

    ALTER TABLE Cars ALTER COLUMN Condition TEXT CONSTRAINT ConditionRequired NOT NULL

  4. على علامة التبويب تصميم، في مجموعة النتائج، انقر فوق تشغيل.

لنفترض الآن أنه بعد مرور بعض الوقت، ستلاحظ وجود العديد من القيم المماثلة في حقل "الشرط" يجب أن تكون متماثلة. على سبيل المثال، بعض السيارات لديها قيمة شرط من رديئة والبعض الآخر لها قيمة سيئة.

ملاحظة: إذا كنت تريد اتباع الإجراءات المتبقية، أضف بعض البيانات الزائفة إلى جدول "السيارات" الذي أنشأته في الخطوات السابقة.

بعد تنظيف القيم بحيث تكون أكثر تناسقا، يمكنك إنشاء جدول، يسمى CarCondition، يتضمن حقلا واحدا، يسمى الشرط، يحتوي على كل القيم التي تريد استخدامها في حالة السيارات:

  1. على علامة التبويب "إنشاء"، في المجموعة "وحدات & التعليمات البرمجية"، انقر فوق "تصميم الاستعلام".

  2. على علامة التبويب "تصميم"، في المجموعة "نوع الاستعلام"، انقر فوق "تعريف البيانات".

    تكون شبكة التصميم مخفية، كما يتم عرض علامة تبويب كائن طريقة عرض SQL.

  3. اكتب بيان SQL التالي:

    CREATE TABLE CarCondition (Condition TEXT(10))

  4. على علامة التبويب تصميم، في مجموعة النتائج، انقر فوق تشغيل.

  5. إنشاء مفتاح أساسي الجدول باستخدام العبارة ALTER TABLE:

    ALTER TABLE CarCondition ALTER COLUMN Condition TEXT CONSTRAINT CarConditionPK PRIMARY KEY

  6. لإدراج القيم من الحقل "الشرط" في جدول "السيارات" في جدول CarCondition الجديد، اكتب SQL التالي في علامة تبويب كائن طريقة عرض SQL:

    INSERT INTO CarCondition SELECT DISTINCT CONDITION FROM CarCondition;

    ملاحظة: إن بيان SQL في هذه الخطوة هو استعلام الإلحاق. على عكس استعلام تعريف البيانات، ينتهي استعلام ال إلحاق بفورية منعكسة.

  7. على علامة التبويب تصميم، في مجموعة النتائج، انقر فوق تشغيل.

إنشاء علاقة باستخدام قيد

لمتطلب أن تطابق أي قيمة جديدة تم إدراجها في الحقل "شرط" في جدول "السيارات" قيمة حقل "الشرط" في جدول CarCondition، يمكنك بعد ذلك إنشاء علاقة بين CarCondition و"السيارات" في الحقل المسمى "الشرط"، باستخدام الإجراء التالي:

  1. على علامة التبويب "إنشاء"، في المجموعة "وحدات & التعليمات البرمجية"، انقر فوق "تصميم الاستعلام".

  2. على علامة التبويب "تصميم"، في المجموعة "نوع الاستعلام"، انقر فوق "تعريف البيانات".

    تكون شبكة التصميم مخفية، كما يتم عرض علامة تبويب كائن طريقة عرض SQL.

  3. اكتب بيان SQL التالي:

    ALTER TABLE Car ALTER COLUMN CONDITION TEXT CONSTRAINT FKeyCondition REFERENCES CarCondition (Condition)

  4. على علامة التبويب تصميم، في مجموعة النتائج، انقر فوق تشغيل.

قيود متعددة الحقول

يمكن استخدام عبارة CONSTRAINT متعددة الحقول خارج عبارة تعريف الحقل فقط، وهي ذات بناء الجملة التالي:

CONSTRAINT constraint_name 
{PRIMARY KEY (pk_field1[, pk_field2[, ...]]) |
UNIQUE (unique1[, unique2[, ...]]) |
NOT NULL (notnull1[, notnull2[, ...]]) |
FOREIGN KEY [NO INDEX] (ref_field1[, ref_field2[, ...]])
REFERENCES foreign_table
[(fk_field1[, fk_field2[, ...]])] |
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

فكر في مثال آخر يستخدم جدول "السيارات". لنفترض أنك تريد التأكد من عدم وجود سجلين في جدول "السيارات" بنفس مجموعة القيم "الاسم" و"السنة" و"الشرط" و"السعر". يمكنك إنشاء قيد UNIQUE ينطبق على هذه الحقول، باستخدام الإجراء التالي:

  1. على علامة التبويب "إنشاء"، في المجموعة "وحدات & التعليمات البرمجية"، انقر فوق "تصميم الاستعلام".

  2. على علامة التبويب "تصميم"، في المجموعة "نوع الاستعلام"، انقر فوق "تعريف البيانات".

    تكون شبكة التصميم مخفية، كما يتم عرض علامة تبويب كائن طريقة عرض SQL.

  3. اكتب بيان SQL التالي:

    ALTER TABLE Cars ADD CONSTRAINT NoDupes UNIQUE (name, year, condition, price)

  4. على علامة التبويب تصميم، في مجموعة النتائج، انقر فوق تشغيل.

أعلى الصفحة

هل تحتاج إلى مزيد من المساعدة؟

تعزيز مهارات Office
استكشاف التدريب
الحصول على الميزات الجديدة أولاً
الانضمام إلى Office Insider

هل كانت المعلومات مفيدة؟

×