PostgreSQL تغيير الجدول: إضافة عمود، إعادة تسمية أمثلة العمود/الجدول
يتم استخدام أمر ALTER TABLE لتغيير بنية ملف PostgreSQL طاولة. هو الأمر المستخدم لتغيير أعمدة الجدول أو اسم الجدول.
بناء الجملة
هنا هو بناء الجملة ل PostgreSQL أمر تغيير الجدول:
ALTER TABLE table-name action;
معلمة اسم الجدول هي اسم الجدول الذي تحتاج إلى تغييره.
معلمة الإجراء هي الإجراء الذي يتعين عليك تنفيذه، مثل تغيير اسم العمود، أو تغيير نوع بيانات العمود، وما إلى ذلك.
الوصف
يقوم الأمر ALTER TABLE بتغيير تعريف الجدول الموجود. ويأخذ النماذج الفرعية التالية:
- إضافة عمود: يستخدم هذا بناء جملة مشابهًا لأمر CREATE TABLE لإضافة عمود جديد إلى الجدول.
- إسقاط العمود: لإسقاط عمود الجدول. سيتم أيضًا إسقاط القيود والفهارس المفروضة على الأعمدة.
- تعيين/إسقاط الافتراضي: يُستخدم لإزالة القيمة الافتراضية لعمود. ومع ذلك، فإن التغيير لن ينطبق إلا على اللاحقة إدراج البيانات.
- تعيين/إسقاط ليس فارغًا: يغير ما إذا كان العمود سيسمح بالقيم الخالية أم لا.
- تعيين الإحصائيات: لتعيين هدف جمع الإحصائيات لكل عمود لعمليات التحليل.
- ضبط التخزين: لتعيين وضع التخزين لعمود. سيحدد هذا مكان حفظ العمود، سواء كان سطريًا أو في جدول إضافي.
- مجموعة بدون مواد: يستخدم لإزالة العمود القديم من الجدول.
- إعادة تسمية: لتغيير اسم الجدول أو اسم العمود.
- إضافة table_constraint: يستخدم لإضافة قيد جديد إلى جدول ويستخدم نفس بناء الجملة إنشاء الجدول أمر.
- قيود السقوط: يُستخدم لإسقاط قيد الجدول.
- OWNER: لتغيير مالك جدول أو تسلسل أو فهرس أو طريقة عرض لمستخدم معين.
- CLUSTER:لتحديد جدول سيتم استخدامه لتنفيذ عمليات المجموعة المستقبلية.
تعديل عمود
يمكن تعديل العمود بعدة طرق. يمكن إجراء مثل هذه التعديلات باستخدام أمر ALTER TABLE. دعونا نناقش هذه:
إضافة عمود جديد
لإضافة عمود جديد إلى أ PostgreSQL الجدول، يتم استخدام الأمر ALTER TABLE مع بناء الجملة التالي:
ALTER TABLE table-name ADD new-column-name column-definition;
اسم الجدول هو اسم الجدول المراد تعديله.
اسم العمود الجديد هو اسم العمود الجديد المراد إضافته.
تعريف العمود هو نوع البيانات من العمود الجديد.
انظر جدول الكتاب الموضح أدناه:
يحتوي الجدول على عمودين، id وname. نحتاج إلى إضافة عمود جديد إلى الجدول وإعطائه اسم author. ما عليك سوى تشغيل الأمر التالي:
ALTER TABLE Book ADD author VARCHAR(50);
بعد تشغيل الأمر أعلاه، أصبح جدول الكتاب الآن كما يلي:
تمت إضافة العمود الجديد بنجاح.
إعادة تسمية عمود الجدول
يمكننا استخدام الأمر ALTER TABLE لتغيير اسم العمود. في هذه الحالة، يتم استخدام الأمر بالصيغة التالية:
ALTER TABLE table-name RENAME COLUMN old-name TO new-name;
اسم الجدول هو اسم الجدول الذي سيتم إعادة تسمية عموده.
الاسم القديم هو الاسم القديم/الحالي للعمود.
الاسم الجديد هو الاسم الجديد للعمود. خذ بعين الاعتبار كتاب الجدول الموضح أدناه:
كتاب:
نحن بحاجة إلى اسم مؤلف العمود book_author. هنا هو الأمر:
ALTER TABLE Book RENAME COLUMN author TO book_author;
بعد تشغيل الأمر، يمكننا عرض بنية الجدول:
تم تغيير اسم العمود بنجاح.
تحديد القيمة الافتراضية للعمود
يمكننا تعيين قيمة افتراضية لعمود بحيث يتم استخدام القيمة الافتراضية حتى عندما لا تحدد قيمة لهذا العمود أثناء عمليات INSERT. في هذه الحالة، يمكن استخدام أمر ALTER TABLE مع بناء الجملة التالي:
ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];
اسم الجدول هو اسم الجدول الذي سيتم تعديل عموده.
اسم العمود هو الاسم الذي سيتم تعيين قيمته الافتراضية.
القيمة هي القيمة الافتراضية للعمود.
خذ بعين الاعتبار جدول الكتاب الموضح أدناه:
نحتاج إلى تعيين قيمة افتراضية لعمود book_author. يمكننا تشغيل الأمر التالي:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
الآن دعونا نقوم بإدراج صف في الجدول:
INSERT INTO Book (id, name) VALUES (6, 'PostgreSQL for Beginners');
لاحظ أننا قمنا بإدراج قيم لعمودين فقط، المعرف والاسم. ومع ذلك، تم استخدام القيمة الافتراضية لعمود book_author:
إضافة قيد التحقق
يساعد قيد التحقق في التحقق من صحة السجلات التي يتم إدراجها في الجدول. يمكننا القيام بذلك عن طريق دمج الأمر ALTER TABLE مع عبارة ADD CHECK. بناء الجملة:
ALTER TABLE table-name ADD CHECK expression;
اسم الجدول هو اسم الجدول المراد تغييره.
التعبير هو القيد الذي سيتم فرضه على عمود الجدول.
دعونا نعدل عمود book_author في جدول Book بحيث يقبل فقط القيمتين Nicholas وSamuel:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));
الآن، دعونا نحاول إدراج قيمة أخرى غير Nicholas أو Samuel في عمود book_author في جدول Book:
INSERT INTO Book VALUES(7, 'أفضل PostgreSQL Book', 'Gregory Bush');
سيؤدي هذا البيان إلى إرجاع الخطأ التالي:
فشلت عملية الإدراج بسبب انتهاكنا لقيد الفحص.
إعادة تسمية الجدول
فيما يلي بناء جملة الأمر ALTER TABLE لإعادة تسمية الجدول:
ALTER TABLE table-name RENAME TO new-table-name;
اسم الجدول هو الاسم الحالي للجدول.
اسم الجدول الجديد هو الاسم الجديد الذي سيتم تعيينه للجدول.
على سبيل المثال، دعونا نغير اسم جدول الكتب إلى الكتب:
ALTER TABLE Book RENAME TO Books;
باستخدام pgAdmin
الآن دعونا نرى كيف يمكن تنفيذ هذه الإجراءات باستخدام pgAdmin.
إضافة عمود جديد
لإنجاز الأمر نفسه من خلال pgAdmin، قم بما يلي:
الخطوة 1) قم بتسجيل الدخول إلى حساب pgAdmin الخاص بك.
الخطوة 2)
- من شريط التنقل الموجود على اليسار، انقر فوق قواعد البيانات.
- انقر فوق العرض التوضيحي.
الخطوة 3) اكتب الاستعلام في محرر الاستعلام:
ALTER TABLE Book ADD author VARCHAR(50);
الخطوة 4) انقر فوق الزر "تنفيذ".
الخطوة 5) للتأكد من إضافة العمود، قم بما يلي:
- انقر فوق قواعد البيانات من شريط التنقل الأيمن.
- قم بتوسيع العرض التوضيحي.
- قم بتوسيع المخططات.
- قم بتوسيع عام.
- قم بتوسيع الجداول.
- قم بتوسيع الكتاب.
- قم بتوسيع الأعمدة.
يجب إضافة العمود كما هو موضح أدناه:
إعادة تسمية عمود الجدول
لإنجاز الأمر نفسه من خلال pgAdmin، قم بما يلي:
الخطوة 1) قم بتسجيل الدخول إلى حساب pgAdmin الخاص بك.
الخطوة 2)
- من شريط التنقل الموجود على اليسار، انقر فوق قواعد البيانات.
- انقر فوق العرض التوضيحي.
الخطوة 3) اكتب الاستعلام في محرر الاستعلام:
ALTER TABLE Book RENAME COLUMN author TO book_author;
الخطوة 4) انقر فوق الزر "تنفيذ".
الخطوة 5) للتأكد من نجاح التغيير، قم بما يلي:
- انقر فوق قواعد البيانات من شريط التنقل الأيمن.
- قم بتوسيع العرض التوضيحي.
- قم بتوسيع المخططات.
- قم بتوسيع عام.
- قم بتوسيع الجداول.
- قم بتوسيع الكتاب.
- قم بتوسيع الأعمدة.
يجب أن تكون الأعمدة الآن كما يلي:
تم تغيير العمود بنجاح.
تحديد القيمة الافتراضية للعمود
لإنجاز الأمر نفسه من خلال pgAdmin، قم بما يلي:
الخطوة 1) قم بتسجيل الدخول إلى حساب pgAdmin الخاص بك.
الخطوة 2)
- من شريط التنقل الموجود على اليسار، انقر فوق قواعد البيانات.
- انقر فوق العرض التوضيحي.
الخطوة 3) اكتب الاستعلام في محرر الاستعلام:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
الخطوة 4) انقر فوق الزر "تنفيذ".
الخطوة 5) لاختبار ذلك، قم بتشغيل الأمر التالي في محرر الاستعلام:
INSERT INTO Book (id, name) VALUES (6, 'PostgreSQL for Beginners')
الخطوة 6) يمكننا الآن الاستعلام عن الجدول للتحقق مما إذا كانت القيمة الافتراضية قد تم إدراجها في عمود book_author:
إضافة قيد التحقق
لإنجاز الأمر نفسه من خلال pgAdmin، قم بما يلي:
الخطوة 1) قم بتسجيل الدخول إلى حساب pgAdmin الخاص بك.
الخطوة 2)
- من شريط التنقل الموجود على اليسار، انقر فوق قواعد البيانات.
- انقر فوق العرض التوضيحي.
الخطوة 3) اكتب الاستعلام في محرر الاستعلام:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))
الخطوة 4) انقر فوق الزر "تنفيذ".
الخطوة 5) لاختبار ذلك، قم بما يلي:
- اكتب الاستعلام التالي في محرر الاستعلام:
INSERT INTO Book VALUES(7, 'أفضل PostgreSQL Book', 'Gregory Bush');
- انقر فوق الزر "تنفيذ".
سوف يعود ما يلي:
إعادة تسمية الجدول
لإنجاز الأمر نفسه من خلال pgAdmin، قم بما يلي:
الخطوة 1) قم بتسجيل الدخول إلى حساب pgAdmin الخاص بك.
الخطوة 2)
- من شريط التنقل الموجود على اليسار، انقر فوق قواعد البيانات.
- انقر فوق العرض التوضيحي.
الخطوة 3) اكتب الاستعلام في محرر الاستعلام:
ALTER TABLE Book RENAME TO Books;
الخطوة 4) انقر فوق الزر "تنفيذ".
الخطوة 5) للتحقق مما إذا كان قد تم تغيير اسم الجدول، قم بما يلي:
- انقر فوق قواعد البيانات من شريط التنقل الأيمن.
- قم بتوسيع العرض التوضيحي.
- قم بتوسيع المخططات.
- قم بتوسيع عام.
- قم بتوسيع الجداول.
تمت إعادة تسمية الجدول بنجاح.
الملخص
- يتم استخدام عبارة ALTER TABLE لتعديل بنية الجدول.
- يتخذ أمر ALTER TABLE أشكالًا مختلفة اعتمادًا على المهمة التي تحتاج إلى تنفيذها.
- يمكن أن يكون الهيكل عبارة عن أعمدة الجدول أو الجدول نفسه.
- يمكننا استخدام هذا البيان لتغيير اسم الجدول.
- يمكن استخدام أمر ALTER TABLE لتعيين القيمة الافتراضية للعمود.
- يمكن استخدام العبارة للتحقق من صحة القيم التي تم إدخالها في عمود الجدول.
قم بتنزيل قاعدة البيانات المستخدمة في هذا البرنامج التعليمي