شرح INSERT INTO في SQL: كيفية إدخال البيانات إلى الجداول مع أمثلة عملية

دقائق القراءة: 5

ما هي جملة INSERT INTO في SQL؟

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

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

شرح استخدام INSERT INTO في SQL لإدخال البيانات إلى الجداول

الصيغة الأساسية لأمر INSERT INTO

في أبسط صورة، يُستخدم الأمر بهذه البنية:

INSERT INTO table_name (column1, column2, column3, etc)
VALUES (value1, value2, value3, etc);

يتكوّن هذا الأمر من جزأين رئيسيين:

  • الجزء الأول يحدد اسم الجدول والأعمدة التي ستُدرج فيها البيانات.
  • الجزء الثاني يحتوي على القيم الفعلية التي سيتم حفظها في الصف الجديد.

من الضروري أن يتطابق عدد القيم داخل VALUES مع عدد الأعمدة المحددة، وإلا ستظهر رسالة خطأ عند التنفيذ.

كيفية إضافة صف واحد إلى جدول SQL

لنفترض أن لدينا جدولاً باسم dogs ويحتوي على الأعمدة التالية:

  • id
  • name
  • gender

إذا أردنا إضافة كلب واحد باسم AXEL، فسيكون الاستعلام كالتالي:

INSERT INTO dogs( id , name , gender)
VALUES ( 1 , 'AXEL' , 'M' );

بهذا الشكل سيتم إنشاء صف جديد داخل الجدول بالقيم المحددة.

مثال على إضافة صف واحد إلى جدول dogs باستخدام INSERT INTO في SQL

ماذا يحدث إذا لم يتطابق عدد القيم مع عدد الأعمدة؟

من أكثر الأخطاء شيوعاً عند استخدام INSERT INTO هو تمرير عدد قيم أقل أو أكثر من عدد الأعمدة المحددة في الاستعلام.

على سبيل المثال، إذا كتبنا الاستعلام التالي:

INSERT INTO dogs( id , name , gender)
VALUES ( 1 , 'AXEL' );

فسيؤدي ذلك إلى خطأ، لأننا حددنا 3 أعمدة لكننا مررنا قيمتين فقط.

خطأ ناتج عن عدم تطابق عدد القيم مع عدد الأعمدة في INSERT INTO

القاعدة هنا بسيطة:

  1. إذا حددت أعمدة معينة، فيجب أن توفر قيمة لكل عمود.
  2. ترتيب القيم يجب أن يطابق ترتيب الأعمدة المكتوبة.
  3. أي نقص أو زيادة سيؤدي عادة إلى فشل تنفيذ الاستعلام.

تأثير قيود الأعمدة عند الإدخال

عند إنشاء الجداول في SQL، من الشائع إضافة قيود مثل NOT NULL أو UNIQUE أو PRIMARY KEY. هذه القيود تُعد قواعد إلزامية يجب احترامها عند إدخال البيانات.

في جدول dogs، لنفترض أن العمودين name وgender يحتويان على القيد NOT NULL. هذا يعني أنه لا يمكن ترك أي منهما بدون قيمة.

إذا حاولنا إدخال NULL في العمود gender، فسيظهر خطأ:

INSERT INTO dogs( id , name , gender)
VALUES ( 1 , 'AXEL' , NULL );

مثال على خطأ انتهاك قيد NOT NULL عند استخدام INSERT INTO في SQL

لذلك، قبل تنفيذ أي عملية إدخال، تأكد من مراجعة بنية الجدول والقيود المعرفة على الأعمدة، لأن تجاهلها سيؤدي إلى رفض البيانات.

كيفية إدخال عدة صفوف دفعة واحدة في SQL

إذا كنت تريد إضافة أكثر من صف في استعلام واحد، فإن SQL توفر طريقة عملية وفعالة لذلك، وتكون الصيغة كالتالي:

INSERT INTO table_name (column1, column2, column3, etc)
VALUES (value1, value2, value3, etc),
       (value1, value2, value3, etc),
       (value1, value2, value3, etc);

تُعد هذه الطريقة أفضل من تنفيذ عدة أوامر منفصلة، خصوصاً عندما تتعامل مع كمية كبيرة من البيانات المتقاربة في البنية.

لكن انتبه إلى النقاط التالية:

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

صيغة إدخال عدة صفوف دفعة واحدة باستخدام INSERT INTO في SQL

مثال عملي على إدخال 8 صفوف

فيما يلي مثال يضيف ثمانية كلاب إلى جدول dogs دفعة واحدة:

INSERT INTO dogs( id , name , gender)
VALUES ( 1 , 'AXEL' , 'M' ),
       ( 2 , 'Annie' , 'F' ),
       ( 3 , 'Ace' , 'M' ),
       ( 4 , 'Zelda' , 'F' ),
       ( 5 , 'Diesel' , 'M' ),
       ( 6 , 'Tilly' , 'F' ),
       ( 7 , 'Leroy' , 'M' ),
       ( 8 , 'Olivia' , 'F' );

هذا الأسلوب يساعد على تقليل عدد الاستعلامات المرسلة إلى قاعدة البيانات، وقد يحسن الأداء في كثير من الحالات.

نتيجة إدخال عدة صفوف إلى جدول dogs باستخدام SQL INSERT INTO

كيفية نسخ البيانات من جدول إلى آخر باستخدام INSERT INTO و SELECT

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

الصيغة الأساسية تكون كالتالي:

INSERT INTO table_name1 ( columns )
SELECT columns FROM table_name2;

تُعد هذه الطريقة مفيدة في سيناريوهات مثل:

  • نقل البيانات بين الجداول.
  • إنشاء أرشيف للسجلات.
  • دمج بيانات من مصدر إلى آخر.
  • إعادة استخدام بيانات موجودة دون إدخالها يدوياً.

مثال عملي على نسخ الصفوف بين جدولين

لنفترض أن لدينا جدولاً باسم cats يحتوي على ثلاثة صفوف، ويملك نفس أسماء الأعمدة الموجودة في جدول dogs.

جدول cats يحتوي على بيانات جاهزة للنسخ إلى جدول dogs في SQL

يمكننا نسخ جميع البيانات من cats إلى dogs عبر الاستعلام التالي:

INSERT INTO dogs
SELECT * FROM cats;

بعد التنفيذ، ستُضاف سجلات cats إلى جدول dogs مباشرة، بشرط أن يكون ترتيب الأعمدة وأنواع البيانات متوافقة.

نتيجة نسخ بيانات جدول cats إلى جدول dogs باستخدام INSERT INTO SELECT

أفضل الممارسات عند استخدام INSERT INTO في SQL

حتى تعمل أوامر الإدخال بكفاءة وتجنب الأخطاء المتكررة، من المفيد الالتزام ببعض الإرشادات العملية:

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

الخلاصة التقنية

تُعد جملة INSERT INTO من الركائز الأساسية في SQL، لأنها تمثل البوابة الرئيسية لإضافة البيانات إلى الجداول. قوة هذا الأمر لا تكمن فقط في بساطته، بل أيضاً في مرونته؛ إذ يمكن استخدامه لإدخال صف واحد، أو مجموعة صفوف، أو حتى لنسخ البيانات بين الجداول باستخدام SELECT. عملياً، أكثر ما يسبب المشكلات ليس الأمر نفسه، بل تجاهل تطابق الأعمدة والقيم أو مخالفة قيود الجدول. لذلك، فإن فهم بنية الجدول قبل تنفيذ الإدخال هو العامل الأهم لكتابة استعلامات صحيحة وموثوقة.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *