تخطَّ إلى المحتوى

INSERT

إضافة صف جديد إلى جدول INSERT

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

INSERT يُدخِل صفًا جديدًا بتحديد اسم الجدول، قائمة الأعمدة (اختيارية إن أدرجت قيمة لكل عمود بترتيبه)، وقائمة القيم المقابلة. يدعم إدراج عدة صفوف في أمر واحد بفصل مجموعات القيم بفاصلة، وهو أسرع من تنفيذ أمر INSERT منفصل لكل صف.

يمكن أيضًا إدراج نتيجة SELECT مباشرة من جدول آخر (INSERT INTO ... SELECT) بدل كتابة القيم يدويًا، وهو نمط شائع لنسخ أو أرشفة بيانات بين جداول.

الصياغة

INSERT INTO table (col1, col2) VALUES (val1, val2);

📄 مثال

INSERT INTO users (name, email)
VALUES ('سارة', 'sara@example.com'), ('علي', 'ali@example.com');

أهم النقاط

النقطةالوظيفة
INSERT بصفوف متعددةفصل عدة مجموعات (val, val) بفواصل في أمر واحد
INSERT INTO ... SELECTإدراج نتيجة استعلام آخر مباشرة بدل قيم يدوية
الأعمدة الافتراضيةأي عمود لا تذكره يأخذ قيمته الافتراضية (DEFAULT) أو NULL إن سُمح بذلك

💡 نصائح عملية

  • اذكر أسماء الأعمدة صراحة دائمًا بدل الاعتماد على ترتيبها في الجدول — أوضح وأكثر أمانًا عند تغيّر بنية الجدول لاحقًا
  • لمنع أخطاء تكرار مفتاح فريد أثناء الإدراج المتزامن استخدم UPSERT (ON CONFLICT أو ON DUPLICATE KEY UPDATE) بدل تحقّق مسبق منفصل

⚠️ أخطاء شائعة

  • الاعتماد على ترتيب الأعمدة الافتراضي في الجدول بدل تحديد الأعمدة صراحة
  • تنفيذ INSERT لكل صف على حدة داخل حلقة برمجية بدل إدراج دفعة واحدة متعددة الصفوف

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار SQL الكامل بالعربي.