SQL (لغة الاستعلام الهيكلية) هي لغة قياسية لتحديد ومعالجة البيانات في قاعدة بيانات علائقية. وفقًا للنموذج العلائقي للبيانات ، يُنظر إلى قاعدة البيانات على أنها مجموعة من الجداول ، فالعلاقات هي ممثلة بقيم في الجداول ، ويتم استرداد البيانات عن طريق تحديد جدول نتائج يمكن اشتقاقها من واحد أو أكثر الجداول الأساسية. تأخذ الاستعلامات شكل لغة الأوامر التي تتيح لك حدد إدراج تحديث خارج موقع البيانات ، وما إلى ذلك.
في دلفي: TQuery
إذا كنت ستستخدم SQL في تطبيقاتك ، فسوف تصبح على دراية كبيرة بـ الاستعلام مكون. تمكن دلفي تطبيقاتك من استخدام بناء جملة SQL مباشرة من خلال مكون TQuery للوصول إلى البيانات من جداول Paradox و dBase (باستخدام SQL المحلية - مجموعة فرعية من SQL القياسي ANSI) وقواعد البيانات على خادم InterBase المحلي وقواعد البيانات على قاعدة البيانات البعيدة خوادم.
يدعم دلفي أيضًا الاستعلامات غير المتجانسة مقابل أكثر من خادم أو نوع جدول واحد (على سبيل المثال ، البيانات من جدول أوراكل وجدول Paradox). يحتوي الاستعلام على خاصية تسمى SQL، الذي يستخدم لتخزين عبارة SQL.
يقوم TQuery بتغليف عبارة SQL واحدة أو أكثر ، وينفذها ويوفر طرقًا يمكننا من خلالها معالجة النتائج. يمكن تقسيم الاستعلامات إلى فئتين: تلك التي تنتج مجموعات نتائج (مثل أ
تحديد بيان) ، وتلك التي لا (مثل تحديثأو إدراج بيان). استخدم TQuery. فتح لتنفيذ استعلام ينتج مجموعة نتائج ؛ استخدام TQuery. ExecSQL لتنفيذ الاستعلامات التي لا تنتج مجموعات نتائج.يمكن أن تكون عبارات SQL إما ثابتة أو ديناميكي، أي أنه يمكن تعيينها في وقت التصميم أو تضمين المعلمات (الاستعلام. Params) التي تختلف في وقت التشغيل. يعد استخدام الاستعلامات ذات المعلمات أمرًا مرنًا للغاية لأنه يمكنك تغيير طريقة عرض المستخدم للبيانات وإمكانية الوصول إليها بسرعة في وقت التشغيل.
يجب تحضير كافة عبارات SQL القابلة للتنفيذ قبل أن يتم تنفيذها. نتيجة الإعداد هي الشكل التنفيذي أو التشغيلي للبيان. تميز طريقة إعداد عبارة SQL واستمرار شكلها التشغيلي SQL الثابتة عن SQL الديناميكية. في وقت التصميم ، يتم إعداد الاستعلام وتنفيذه تلقائيًا عند تعيين الاستعلام الخاصية النشطة للمكون إلى True. في وقت التشغيل ، يتم تحضير الاستعلام مع استدعاء للتحضير وتنفيذه عندما يستدعي التطبيق أساليب Open أو ExecSQL للمكون.
يمكن لـ TQuery عرض نوعين من مجموعات النتائج: "حي"كما هو الحال مع مكون TTable (يمكن للمستخدمين تحرير البيانات باستخدام عناصر التحكم في البيانات ، وعندما تحدث مكالمة للنشر ، يتم إرسال التغييرات إلى قاعدة البيانات)"يقرأ فقط"لأغراض العرض فقط. لطلب مجموعة نتائج مباشرة ، قم بتعيين خاصية RequestLive لمكون الاستعلام إلى True ، واعلم أن عبارة SQL يجب أن تلبي بعض المتطلبات المحددة (لا ORDER BY ، SUM ، AVG ، إلخ.)
يعمل الاستعلام بطرق عديدة مثل عامل تصفية الجدول ، وفي بعض الطرق ، يكون الاستعلام أقوى من عامل التصفية لأنه يتيح لك الوصول إلى:
- أكثر من جدول في وقت واحد ("الانضمام" في SQL)
- مجموعة فرعية محددة من الصفوف والأعمدة من جدولها (جداولها) الأساسية ، بدلاً من إرجاعها كلها دائمًا
مثال بسيط
الآن دعونا نرى بعض SQL في العمل. على الرغم من أنه يمكننا استخدام معالج نموذج قاعدة البيانات لإنشاء بعض أمثلة SQL لهذا المثال ، سنقوم بذلك يدويًا ، خطوة بخطوة:
1. ضع TQuery و TDataSource و TDBGrid و TEdit ومكون TButton في النموذج الرئيسي.
2. قم بتعيين خاصية DataSet الخاصة بمكون TDataSource إلى Query1.
3. تعيين خاصية DataSource للمكون TDBGrid إلى DataSource1.
4. قم بتعيين خاصية DatabaseName الخاصة بمكون TQuery إلى DBDEMOS.
5. انقر نقرًا مزدوجًا فوق خاصية SQL الخاصة بـ TQuery لتعيين عبارة SQL لها.
6. لجعل الشبكة تعرض البيانات في وقت التصميم ، قم بتغيير الخاصية النشطة لمكون TQuery إلى True.
تعرض الشبكة بيانات من جدول Employee.db في ثلاثة أعمدة (الاسم الأول ، الاسم الأخير ، الراتب) حتى لو يحتوي Employee.db على 7 حقول ، وتقتصر مجموعة النتائج على تلك السجلات حيث يبدأ FirstName مع "R".
7. الآن قم بتعيين التعليمات البرمجية التالية إلى حدث OnClick لـ Button1.
إجراء TForm1.Button1Click (المرسل: TObject) ؛ ابدأ Query1.Close ؛{إغلاق الاستعلام}// تعيين تعبير SQL جديد Query1.SQL.Clear ؛ Query1.SQL.Add ('Select EmpNo، FirstName، LastName')؛ Query1.SQL.Add ('FROM Employee.db') ؛ Query1.SQL.Add ('WHERE راتب>' + Edit1.Text) ؛ Query1.RequestLive: = true؛ Query1.Open ؛ {فتح الاستعلام + عرض البيانات}النهاية;
8. قم بتشغيل التطبيق الخاص بك. عند النقر فوق الزر (طالما أن تحرير 1 يحتوي على قيمة عملة صالحة) ، ستعرض الشبكة حقول EmpNo و FirstName و LastName لجميع السجلات حيث يكون الراتب أكبر من العملة المحددة القيمة.
في هذا المثال ، أنشأنا عبارة SQL ثابتة بسيطة مع مجموعة نتائج مباشرة (لم نغير أيًا من السجلات المعروضة) فقط لأغراض العرض.