إدارة بنية الجداول من المهام الأساسية في SQL، وتقوم على ثلاثة أوامر رئيسية: CREATE TABLE لإنشاء جدول جديد، وALTER TABLE لتعديل بنية جدول قائم، وDROP TABLE لحذفه بالكامل. هذه الأوامر تنتمي إلى ما يُعرف بلغة تعريف البيانات (DDL)، أي الأوامر التي تتعامل مع شكل الجداول وهيكلها لا مع محتواها من الصفوف.
إنشاء جدول باستخدام CREATE TABLE
يُستخدم أمر CREATE TABLE لإنشاء جدول جديد، ونحدد فيه اسم كل عمود ونوع بياناته والقيود المفروضة عليه. لكل عمود نوع يحدد طبيعة القيم التي يقبلها، مثل INT للأعداد الصحيحة وVARCHAR للنصوص وDECIMAL للأرقام العشرية وDATE للتواريخ.
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
email VARCHAR(150) UNIQUE,
age INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
في هذا المثال أنشأنا جدول المستخدمين بمعرّف فريد يزداد تلقائياً، واسم إجباري، وبريد فريد، وتاريخ إنشاء يُملأ تلقائياً بلحظة الإضافة.
تعديل البنية باستخدام ALTER TABLE
بعد إنشاء الجدول قد نحتاج إلى تعديل بنيته دون حذفه وإعادة إنشائه. يتيح أمر ALTER TABLE إضافة عمود جديد، أو تعديل نوع عمود قائم، أو حذف عمود، أو إعادة تسمية الجدول.
-- إضافة عمود جديد
ALTER TABLE users ADD phone VARCHAR(20);
-- تعديل نوع عمود قائم
ALTER TABLE users MODIFY age SMALLINT;
-- حذف عمود
ALTER TABLE users DROP COLUMN phone;
-- إعادة تسمية الجدول
ALTER TABLE users RENAME TO customers;
تختلف بعض هذه الصيغ قليلاً بين أنظمة قواعد البيانات؛ فمثلاً يستخدم PostgreSQL الصيغة ALTER COLUMN بدلاً من MODIFY، لذا يُنصح دائماً بمراجعة توثيق النظام المستخدم.
الحذف باستخدام DROP TABLE
يحذف أمر DROP TABLE الجدول بالكامل: بنيته وبياناته معاً، ولا يمكن التراجع عن العملية بسهولة. لذلك يجب توخّي الحذر الشديد قبل تنفيذه على بيئة إنتاجية.
DROP TABLE customers;
من المفيد التمييز بين DROP TABLE التي تحذف الجدول كله، وTRUNCATE TABLE التي تحذف جميع الصفوف لكنها تُبقي بنية الجدول فارغة جاهزة للاستخدام من جديد.
TRUNCATE TABLE customers;
أخطاء شائعة
- الخلط بين DROP TABLE التي تحذف البنية، وDELETE التي تحذف الصفوف فقط.
- تنفيذ DROP TABLE على بيئة حقيقية دون نسخة احتياطية مسبقة.
- إضافة عمود NOT NULL إلى جدول يحتوي بيانات دون تحديد قيمة افتراضية، ما يسبب خطأً.
- افتراض أن صيغة ALTER واحدة تعمل في كل الأنظمة دون مراجعة الفروق بينها.
تمرين محلول
المطلوب: أنشئ جدول articles يحتوي معرّفاً فريداً تلقائياً وعنواناً إجبارياً وتاريخ نشر افتراضي، ثم أضف إليه لاحقاً عموداً للكاتب.
CREATE TABLE articles (
id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(200) NOT NULL,
published_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
ALTER TABLE articles ADD author VARCHAR(100);
أنشأنا الجدول أولاً بالأعمدة الأساسية، ثم أضفنا عمود الكاتب لاحقاً عبر ALTER دون الحاجة لإعادة بناء الجدول.
الخلاصة
تشكّل أوامر CREATE وALTER وDROP أساس إدارة بنية الجداول في SQL. CREATE تبني الجدول، وALTER تعدّل بنيته بمرونة دون فقدان البيانات، وDROP تحذفه نهائياً. وفهم الفرق بين حذف البنية وحذف الصفوف خطوة مهمة لتجنّب الأخطاء الكارثية في قواعد البيانات.
