الإدراج INSERT
تستخدم تعليمة INSERT لإدراج أسطر داخل جدول. هناك طريقتان لاستخدام تعليمة
الإدراج. الطريقة الأولى تعطينا حرية إدراج سطر واحد جديد للجدول من خلال
استخدام مجموعة محددة من القيم. أما الطريقة الثانية فتسمح لنا بإدراج عدة أسطر
للجدول، ويتم ذلك من خلال استخدام تعليمة SELECT الخاصة بالاستعلام. ونسمي
مجموع هاتين العمليتين INSERT SELECT.
إدراج سطر واحد فقط.
لإدراج سطر في جدول، علينا أن نحدد اسم الجدول، والقيم المراد إضافتها للجدول،
كما يلي:
INSERT INTO tbleAddressBook
VALUES
('121',
'Stephen Smith',
'24',
'45 Great Eastern Road, Glasgow',
'G1A 1BA',
'0123 456 7890',
'stephen@123abc.co.uk',
NULL)
سيقوم المثال بإدراج سطر واحد في الجدول، أما القيم التي سيتم تخزينها
فتوجد في بند VALUES، ويجب إدخال قيمة في كل حقل. إذا لم يتم إدخال قيمة داخل
الحقل، فعلينا إدخال قيمة NULL في الحقل، كما هو الحال في حقل MobilePhone
إعلاه. إن هذا الأسلوب في استخدام تعليمة INSERT بسيط نسبياً، على أنه يجب تجنب
استخدامه قدر الإمكان، لأن ترتيب القيم التي تم إدخالها يجب أن يطابق ترتيب
حقول (أو أعمدة) الجدول تماماً. إن تغيير ترتيب الأعمدة سيؤدي إلى فشل تعليمات
SQL التي قمتم بكتابتها.
لذا، يجب علينا عند تحديد كل من أسماء الحقول وقيم هذه الحقول، إدخال الأوامر
على الشكل التالي:
INSERT INTO tblAddressBook
(AddressBookID,
Name,
Age,
Address,
Postcode,
PhoneNumber,
EmailAddress)
VALUES
('121',
'Stephen Smith',
'24',
'45 Great Eastern Road, Glasgow',
'G1A 1BA',
'0123 456 7890',
'stephen@123abc.co.uk')
إن أسلوب استخدام تعليمة INSERT مع تحديد أسماء الحقول والقيم المقابلة لها
هو أطول، لكنه يعطينا مزايا إضافية. أولأً، لايهمنا ترتيب الأعمدة كما هو محدد
في تعريف الجدول، لأنه يمكننا تعريف ترتيب خاص بنا. تلاحظون أيضاً أننا لم نشير
إلى حقل MobilePhone. لاداع أيضاً لتحديد الحقول التي لم نقم بتحديد قيم لها
عند استخدام هذه التعليمة. يجب توخ الحذر عند حذف الحقول باستخدام هذا الأسلوب.
وإذا تطلب تعريف الجدول إدخال قيمة في هذا الحقل، ولم يتم تحديد قيمة أولية
للعمود في خصائص الجدول، فستظهر رسالة خطأ، ولن يتم إدراج سطر إلى الجدول.
إدراج عدة سطور
لإدراج عدة أسطر في جدول نستخدم تعليمة SELECT مع تعليمة INSERT. تضاف القيم
التي تعيدها تعليمة SELECT داخل الجدول، وسنقوم بإعطاء مثال يوضح كيف تتم هذه
العملية. فلنفترض أنه لدينا قائمة أسماء وعناوين مخزنة في قاعدة معطيات، وأننا
نود أن ندمجها في جدول tblAddressBook.
مثال:
INSERT INTO tblAddressBook
(AddressBookID,
Name,
Age,
Address,
PostCode,
PhoneNumber,
EmailAddress,
MobilePhone)
SELECT
ContactID,
Name,
Age,
Address,
Postcode,
Telephone,
Email,
Mobile
FROM tblContacts
لاحاجة لأن تكون أسماء الحقول متطابقة كما ترون في هذا المثال، ولكن، يجب
أن يكون ترتيب الحقول المحدد في تعليمة INSERT هو نفس ترتيب تعليمة SELECT،
فليس هناك من طريقة يستطيع نظام إدارة قواعد المعطيات DBMS من خلالها تمييز
الحقول المتطابقة. ويعتمد عدد الأسطر التي تم إدراجها في جدول tblAddressBook
على عدد الأسطر التي قام أمر SELECT بإرجاعها. ويمكن استخدام بند WHERE مع
تعليمة INSERT SELECT لفرز الأسطر التي تم إرجاعها من جدول tblContacts. ويمكن
دمج تعليمات أخرى مع تعليمة SELECT التي قمنا بمناقشتها في القسم السابق.
|
|