Static SQL VS Dynamic SQL

 


 

 

ما هو الـ Static SQL؟

تخيل أنك ذاهب إلى مطعم، وقائمة الطعام ثابتة ومطبوعة. أنت تختار طبقًا من القائمة، ويقوم الطباخ بتحضيره لك. لا يمكنك طلب شيء خارج القائمة، لأن الأوامر (الاستعلامات) جاهزة ومحددة مسبقًا.

هذا هو بالضبط مفهوم الـ Static SQL. هي أوامر (استعلامات) يتم كتابتها وتجهيزها بالكامل قبل أن يبدأ البرنامج بالعمل. قواعد البيانات (أو الطباخ) تعرف هذه الأوامر مسبقًا، فتقوم بتحضيرها مسبقًا وتخزين أفضل طريقة لتنفيذها (تسمى "خطة التنفيذ").

مثال : "SELECT name, email FROM users WHERE id = 123"

في هذا المثال، الاستعلام ثابت. الأوامر "SELECT" و  "FORM" و "WHERE" كلها معروفة ومحددة. الشيء الوحيد الذي يمكن أن يتغير هو قيمة id (في هذه الحالة 123)، لكن بنية الاستعلام نفسها لا تتغير.

 

 

ما هو الـ Dynamic SQL؟

تخيل الآن أنك في مطبخك الخاص، ولديك كل المكونات والأدوات. يمكنك أن تقرر في أي لحظة ماذا ستطبخ، وتُحضّر الطبق الذي تريده بالضبط، حتى لو لم يكن ضمن قائمة ثابتة. يمكنك أن تطلب: "اخلط لي الطماطم والبصل والدجاج معًا، وأضف التوابل التي أختارها الآن".

هذا هو مفهوم الـDynamic SQL. هي أوامر (استعلامات) يتم بناؤها وتشكيلها أثناء تشغيل البرنامج. يمكن للبرنامج أن يُنشئ الاستعلام بالكامل بناءً على مدخلات المستخدم أو ظروف معينة. هذا يمنحنا مرونة كبيرة.

مثال:

تخيل أن لديك صندوق بحث في موقعك الإلكتروني. عندما يكتب المستخدم "الرياضيات"، يقوم البرنامج بإنشاء الاستعلام التالي "SELECT * FROM course WHERE category = Math"

وعندما يكتب "الفيزياء"، يقوم البرنامج بإنشاء استعلام آخر

"SELECT * FROM courses WHERE category = Physics"

في هذه الحالة، الاستعلام لا يكون جاهزاً مسبقًا، بل يتم بناؤه ديناميكيًا (تلقائيًا) بناءً على ما يكتبه المستخدم.

 

متى نستخدم كل نوع منهما؟

تخيل أنك تبني منزلًا.

  •  Static SQL يشبه وضع الأعمدة والجدران الأساسية للمنزل. هي أشياء ثابتة ومهمة لا تتغير أبدًا. نستخدمه عندما تكون الاستعلامات معروفة وثابتة مسبقًا، مثل جلب بيانات مستخدم معين أو إدخال بيانات جديدة. هذا النوع أسرع وأكثر أمانًا.

  • Dynamic SQL يشبه إضافة الأثاث والديكور. يمكنك تغييرها حسب رغبتك أو حسب ذوق الضيف. نستخدمه عندما نحتاج إلى مرونة كبيرة في الاستعلامات، مثل وظائف البحث المتقدمة، أو التقارير التي يمكن للمستخدم تخصيصها.

باختصار:

  •  Static SQL : للأداء العالي والأمان، والاستعلامات الثابتة.
  • Dynamic SQL : المرونة، والاستعلامات التي تتغير بناءً على المدخلات.

 

تعليقات

المشاركات الشائعة من هذه المدونة

منحة كورسيرا عبر تجمع الشباب السوري

مصادر لتقوية لغتك الإنجليزية

ما هي قواعد البيانات ؟

توثيق حسابات السوريين والسودانيين على منصة كورسيرا: دليل شامل ومفصل

تعريف بمنصة كورسيرا