المتابعون للمدونة

الأحد، 18 سبتمبر 2016

إدراج سجلات جديدة باستخدام الأمر INSERT


إدراج سجلات جديدة باستخدام الأمر INSERT:

يمكنك إضافة سجلات جديدة إلى الجدول، باستخدام أمر الإدراج INSERT على الصيغة التالية:

INSERT INTO اسم الجدول (أسماء الحقول) VALUES (قيم الحقول)

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

INSERT INTO Authors (Author, CountryID, About)

VALUES ('فاروق جويدة', 21, 'شاعر مصري معاصر')

لاحظ أننا لم نرسل قيمة إلى الحقل ID لأنه ترقيم تلقائي، ولن يقبل منك أي قيمة.. كما أننا لم نرسل قيمة حقل رقم الهاتف، وهذا مقبول لأننا صممناه بحيث يقبل القيمة الفارغة NULL.. لاحظ أيضا أن الرقم 21 هو رقم مصر في جدول الدول.

وهناك تسهيل آخر، يتيح لك إدخال قيم كل الحقول دون أن تكتب أسماءها، لكن في هذه الحالة عليك أن تكتب القيم مرتبة تبعا لترتيب الحقول الأصليّ في الجدول، وذلك على الصيغة التالية:

INSERT INTO اسم الجدول VALUES (قيم الحقول)

فمثلا: لإضافة حقل جديد إلى جدول الكتب، استخدم الجملة التالية:

INSERT INTO Books

VALUES ('كانت لنا أوطان', 14, 6, 7, '1/8/2000', 3, 2, 1000)

لاحظ أننا لم نضع قيمة للحقل ID لأنه يُولد تلقائيّا، لهذا ستوضع القيم بالترتيب في الحقول التالية لهذا الحقل.. لكن المشكلة أنك لو لصقت الجملة السابقة في باني الاستعلام، فسيضيف أسماء الحقول تلقائيا إليها، ومن ضمنها الحقل ID، لهذا عليك أن تحذفه وإلا حدث خطأ عند تنفيذ الاستعلام.

لاحظ أيضا ضرورة وضع التاريخ بين العلامتين ' ' عند كتابة جمل SQL، تماما كما نفعل مع النصوص.. كما أنك تستطيع استخدام الكلمة NULL كقيمة، إذا أردت ترك الخانة فارغة.. وإذا كانت الخانة تحتوي على بيانات ثنائية (كالصورة image) فأرسل إليها القيمة 0x0 وهي تعادل العدم NULL.

 

ملحوظة:
لبناء أمر الإدراج في باني الاستعلام، أضف الجدول الذي ستقوم بالإدراج فيه إلى قسم المخطط، واضغط بزر الفأرة الأيمن في أي موضع خال من قسم المخطط، ومن القائمة الموضعية اضغط Change Type ومن القائمة الفرعية اضغط الأمر Insert Values.. ستجد أن جملة SQL المكتوبة قد تحولت إلى INSERT بدلا من SELECT، وستكون على هذه الصورة:
INSERT INTO اسم الجدول  (  )
VALUES ( )
اختر أسماء الحقول التي تريد الإدراج فيها بوضع علامة الاختيار بجوارها في مخطط الجدول، لتظهر أسماؤها في جملة SQL داخل القوسين الفارغين التاليين لاسم الجدول.. بعد هذا عليك أن تضيف القيم بكتابتها في العمود New Value في قسم المعايير Criteria Pane، حيث ستكتب القيمة الجديدة في الخانة المجاورة لاسم كل حقل.
ولو أردت العودة إلى استخدام الأمر SELECT، فاضغط بزر الفأرة الأيمن في أي موضع خال من قسم المخطط، ومن القائمة الموضعية اضغط Change Type ومن القائمة الفرعية اضغط الأمر Select.

 

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

افترض أن عندنا جدولا اسمه TempBooks مماثلا في تركيبه لجدول الكتب، ونريد أن نضع فيه بعض الكتب مؤقتا لأيّ سبب.. في هذه الحالة يمكن أن ننسخ فيه كتب (توفيق الحكيم) بالجملة التالية:

INSERT INTO TempBooks

SELECT Books.*

FROM Authors, Books

WHERE Author = 'توفيق الحكيم' AND AuthorID = Authors.ID

 

ملحوظة:
لبناء الأمر الأخير في باني الاستعلام، أضف الجدولين Authors و Books إلى قسم المخطط، وحدد كل الحقول من جدول الكتب، وحدد الحقل Author من جدول المؤلفين، وفي قسم المعايير Criteria Pane أزل علامة الاختيار من العمود Output في صف الحقل Author لكي لا يظهر في النتائج، وفي الخانة Filter الخاصة بهذا الحقل أضف الشرط: ( 'توفيق الحكيم = ')
الآن لديك جملة التحديد SELECT التي تحصل على النتائج التي تريد إدراجها في الجدول TempBooks.. كل ما عليك فعله الآن، هو الضغط بزر الفأرة الأيمن في أي موضع خال من قسم المخطط، ومن القائمة الموضعية اضغط Change Type ومن القائمة الفرعية اضغط الأمر Insert Results.. ستظهر لك نافذة تتيح لك اختيار الجدول الذي تريد إدراج النتائج فيه.. اختر الجدول TempBooks وأغلق النافذة.. الآن ستجد جملة الإدراج كاملة في قسم الاستعلام SQL Pane!

 

من كتاب: من الصفر إلى الاحتراف برمجة قواعد البيانات في فيجوال بيزيك دوت نت ADO .NET.. للتنزيل:

ليست هناك تعليقات:

إرسال تعليق

ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.

صفحة الشاعر