انتقل إلى محتوى الدرس
الدرس 13
دورة MySQL

تعديل هيكل الجداول وإدارة الأعمدة في MySQLMySQL Altering Tables and Managing Columns

تعلّم تعديل هيكل الجداول وإدارة الأعمدة في MySQL بأسلوب MySQL 8 الحديث مع أمثلة استعلامات SQL وتطبيقات تفاعلية.
أقسام الدرس
6
الأمثلة
5
اللغة
العربية
تاريخ النشر
غير محدد
المشاهدات
8
محتوى الدرس
في هذا الدرس 6تصفّح المواضيع

مع تطور متطلبات البرمجيات، تحتاج الجداول القائمة إلى حقول جديدة باستمرار. يضيف الأمر ALTER TABLE table_name ADD COLUMN col_name DATA_TYPE عموداً جديداً في نهاية هيكل الجدول. كما يمكنك إضافة عدة أعمدة دفعة واحدة داخل نفس الجملة عبر الفصل بين عبارات ADD COLUMN بفاصلة.

مخطط تعديل هيكل الجداول وإدارة الأعمدة عبر ALTER TABLE في MySQL 8
SQL
-- Add one or more new columns to an existing table
ALTER TABLE products
  ADD COLUMN brand_name VARCHAR(80),
  ADD COLUMN weight_kg DECIMAL(6, 2);

تُلحق MySQL الأعمدة المضافة حديثاً بآخر الجدول افتراضياً. وعندما ترغب في تنظيم ترتيب الأعمدة منطقياً لتسهيل قراءتها، يمكنك إلحاق الكلمة المفتاحية FIRST لوضع العمود في صدارة الجدول، أو العبارة AFTER existing_col لإدراجه مباشرة بعد عمود معين.

SQL
-- Position new columns explicitly using FIRST and AFTER
ALTER TABLE products
  ADD COLUMN internal_code CHAR(8) FIRST,
  ADD COLUMN summary VARCHAR(255) AFTER title;

عند الحاجة إلى تعديل نوع بيانات عمود قائم أو توسيع سعته—مثل زيادة VARCHAR(150) إلى VARCHAR(250) أو ترقية INT إلى BIGINT—نستخدم الصيغة ALTER TABLE table_name MODIFY COLUMN col_name NEW_TYPE. ويمكن أيضاً دمج MODIFY COLUMN مع FIRST أو AFTER لتغيير موضع العمود.

SQL
-- Widen a VARCHAR column and upgrade numeric precision
ALTER TABLE products
  MODIFY COLUMN title VARCHAR(250),
  MODIFY COLUMN unit_price DECIMAL(12, 2);

في الإصدارات القديمة، كانت إعادة تسمية العمود تتطلب استخدام العبارة التقليدية CHANGE COLUMN old_name new_name FULL_TYPE مع إعادة كتابة نوع البيانات كاملاً. أما في MySQL 8 الحديثة، فيوفّر الأمر المخصص ALTER TABLE table_name RENAME COLUMN old_name TO new_name طريقة آمنة تغيّر اسم العمود فقط مع الحفاظ التام على نوعه وخصائصه تلقائياً.

SQL
-- Rename a column cleanly in MySQL 8 without retyping its type
ALTER TABLE products
  RENAME COLUMN unit_price TO retail_price;
DESCRIBE products;

لحذف عمود لم يعد مستخدماً مع كافة القيم المخزنة بداخله نهائياً، نفّذ الأمر ALTER TABLE table_name DROP COLUMN col_name. وعند إجراء عدة تعديلات هيكلية على جدول واحد، احرص دائماً على تجميع عمليات الإضافة والتعديل والتسمية والحذف داخل جملة ALTER TABLE واحدة ليطبقها المحرك في تمريرة واحدة.

SQL
-- Drop obsolete columns and batch changes in one ALTER TABLE pass
ALTER TABLE products
  DROP COLUMN internal_code,
  DROP COLUMN weight_kg;
معامل ALTER TABLEيغيّر اسم العمود؟يغيّر نوع البيانات؟يتطلب كتابة النوع؟خوارزمية التنفيذ المعتادة في MySQL 8
ADD COLUMN col TYPE [FIRST|AFTER]ينشئ عموداً جديداًيحدد النوع الابتدائينعم (عمود جديد)INSTANT فوري (في 8.0.29+)
MODIFY COLUMN col NEW_TYPEلانعم (النوع أو الموضع)نعمINPLACE أو COPY
RENAME COLUMN old TO newنعملا (يُحفظ تلقائياً بأمان)لاINSTANT / INPLACE (وصف فقط)
CHANGE COLUMN old new NEW_TYPEنعمنعمنعم (إلزامي)INPLACE أو COPY
DROP COLUMN colيزيل العمود نهائياًيحذف بيانات العمودلاINSTANT فوري (في 8.0.29+)

ملخص الدرس: أتقنّا في هذا الدرس تعديل هياكل الجداول في MySQL 8 عبر ALTER TABLE، بما يشمل إضافة الأعمدة وتحديد موضعها بـ FIRST وAFTER، وتعديل الأنواع بـ MODIFY COLUMN، وإعادة التسمية الآمنة بـ RENAME COLUMN، والحذف عبر DROP COLUMN.
الخطوة التالية والدرس القادم: في الدرس القادم سندرس إعادة تسمية الجداول ذرياً، ونسخ هياكلها عبر CREATE TABLE ... LIKE، وإنشاء الجداول المؤقتة المعزولة بالجلسة.

خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

أتقنّا في هذا الدرس تعديل هياكل الجداول في MySQL 8 عبر ALTER TABLE، بما يشمل إضافة الأعمدة وتحديد موضعها بـ FIRST وAFTER، وتعديل الأنواع بـ MODIFY COLUMN، وإعادة التسمية الآمنة بـ RENAME COLUMN، والحذف عبر DROP COLUMN. الخطوة التالية: في الدرس القادم سندرس إعادة تسمية الجداول ذرياً، ونسخ هياكلها عبر CREATE TABLE ... LIKE، وإنشاء الجداول المؤقتة المعزولة بالجلسة.

مشاركة

هل كان هذا الدرس مفيدًا؟

جارٍ تحميل الآراء…

ابنِ لغتك البرمجية

المصطلحات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 Altering Tables تعديل الجداول
تعلّم تعديل هيكل الجداول وإدارة الأعمدة في MySQL بأسلوب MySQL 8 الحديث مع أمثلة استعلامات SQL وتطبيقات تفاعلية.
للمراجعة
02 Adding New Table Columns إضافة أعمدة جديدة للجدول
المفهوم الهندسي الأساسي لقسم إضافة أعمدة جديدة للجدول في قواعد بيانات MySQL 8 الحديثة.
للمراجعة
03 Positioning With FIRST and AFTER تحديد موضع العمود بدقة
الصياغة القياسية وقواعد التنفيذ العملي لقسم تحديد موضع العمود بدقة.
للمراجعة
04 Modifying Column Data Types تعديل نوع بيانات العمود
آلية التخزين وأفضل ممارسات محرك InnoDB الخاصة بقسم تعديل نوع بيانات العمود.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

حروف قليلة. معنى كامل.

الاختصارات2

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 2 مفهومةأول بطاقة، أول خطوة
01 INSTANT INSTANT
InnoDB Online DDL INSTANT Algorithm
طور تنفيذ فوري لتعديلات الجداول في MySQL 8 يطبّق إضافة أو حذف الأعمدة داخل قاموس البيانات فقط دون نسخ الصفوف.
للمراجعة
02 INPLACE INPLACE
InnoDB Online DDL INPLACE Algorithm
طور تعديل هيكلي يعمل داخل محرك InnoDB مباشرة دون الحاجة لإنشاء نسخة جدول مؤقتة كاملة على القرص.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

من الفهم للتطبيق

مهامك قبل الاختبار

خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.

0/2مهام منجزة
  1. افتح عميل MySQL 8 المحلي ونفّذ استعلام SQL المشروح في قسم إضافة أعمدة جديدة للجدول للتحقق من النتائج.

  2. بدّل بين الحالات الثلاث في المحاكي التفاعلي ضمن قسم تحديد موضع العمود بدقة وقارن مخرجات MySQL 8.

تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.

مساحة التحدي

اختبر فهمك.
ووصلها للإتقان.

كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.

4أسئلة 1أنواع تحديات 100%هدف الإتقان
تصحيح تلقائي. فرص بلا حدود.

أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.

الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.

لمحة عن التحدي4 أسئلة تنتظرك
01

ما هي الكلمة المفتاحية التي تضع العمود المضاف حديثاً في أول موضع (بداية) الجدول في MySQL؟

اختر الكلمة المخصصة لوضع العمود في صدارة الجدول.

02

أي عبارة ضمن ALTER TABLE تعدّل نوع بيانات عمود موجود دون تغيير اسمه؟

ميّز بين عبارة تعديل النوع وعبارتي التسمية والحذف.

03

لماذا يُفضّل استخدام RENAME COLUMN بدلاً من CHANGE COLUMN عندما نريد تغيير اسم العمود فقط في MySQL 8؟

تذكّر ميزة الأمان في RENAME COLUMN مقارنةً بـ CHANGE COLUMN.

04

ما هي خوارزمية التعديل الهيكلي في MySQL 8 التي تضيف أو تحذف العمود خلال أجزاء من المللي ثانية عبر تحديث قاموس البيانات فقط؟

حدّد أسرع خوارزمية تعديل هيكلي في MySQL 8.