جملة INSERT في SQL

يُستخدم أمر INSERT في SQL لإضافة صفوف جديدة إلى جدول. وهو نقطة البداية لملء أي جدول بالبيانات، ويتيح إدخال صف واحد أو عدة صفوف دفعةً واحدة. يتكوّن الأمر من اسم الجدول، وقائمة الأعمدة المراد ملؤها، وقائمة القيم المقابلة لها بالترتيب نفسه.

إدراج صف واحد

الصيغة الأساسية تحدد الأعمدة ثم قيمها المقابلة:

INSERT INTO users (name, email, age)
VALUES ('أحمد', 'ahmed@example.com', 28);

يجب أن يتطابق ترتيب القيم في VALUES مع ترتيب الأعمدة المذكورة تماماً. والأعمدة غير المذكورة تأخذ قيمتها الافتراضية أو NULL إن سُمح بذلك.

إدراج عدة صفوف دفعة واحدة

يمكن إدراج عدة صفوف في أمر واحد بفصل مجموعات القيم بفواصل، وهو أسرع بكثير من تنفيذ أوامر منفصلة:

INSERT INTO users (name, email, age)
VALUES
  ('سارة', 'sara@example.com', 25),
  ('خالد', 'khaled@example.com', 31),
  ('منى', 'mona@example.com', 27);

الإدراج من نتيجة استعلام

يمكن إدراج صفوف ناتجة من استعلام SELECT مباشرةً، وهو مفيد لنسخ بيانات بين الجداول:

INSERT INTO archived_users (name, email)
SELECT name, email FROM users
WHERE status = 'غير نشط';

أخطاء شائعة

  • عدم تطابق عدد القيم مع عدد الأعمدة المذكورة، ما يسبب خطأً فورياً.
  • إدخال قيمة في عمود UNIQUE تتكرر مع صف موجود، فترفض قاعدة البيانات الإدراج.
  • محاولة ترك عمود NOT NULL دون قيمة ودون قيمة افتراضية.

تمرين محلول

المطلوب: أضف منتجين جديدين إلى جدول products في أمر واحد، مع تحديد الاسم والسعر والتصنيف.

INSERT INTO products (name, price, category)
VALUES
  ('لوحة مفاتيح', 350, 'إكسسوارات'),
  ('شاشة 24 بوصة', 2800, 'شاشات');

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

الخلاصة

أمر INSERT يضيف البيانات إلى الجداول، سواء صفاً واحداً أو عدة صفوف أو نتيجة استعلام كامل. ومراعاة تطابق الأعمدة مع القيم واحترام القيود المفروضة يضمن إدخالاً سليماً وخالياً من الأخطاء.