يساعدك شرح SQLAI.ai بالعربي على الانتقال من وصف النتيجة المطلوبة إلى استعلام SQL، ثم فهمه وإصلاح أخطائه وتقييم أي اقتراح لتحسينه. لكن الفرق بين هذه الخطوات مهم: فحص الصياغة لا يثبت صحة مقياس الأعمال، واقتراح استعلام أقصر لا يعني أنه أسرع على قاعدتك أو أنه يحافظ على الصفوف نفسها. ولتحديد الأداة الأنسب لمهمتك، راجع مقارنة AI2sql وSQLAI.ai وBlazeSQL لكتابة SQL بالذكاء الاصطناعي.
سنطبق مسارًا تدريبيًا لإظهار جميع العملاء وعدد طلباتهم المدفوعة، بما في ذلك العميل الذي لم يشترِ. هذا المثال يكشف خطأ شائعًا في LEFT JOIN يصعب ملاحظته حين تراجع المشترين فقط. وصف وظائف الخدمة مبني على صفحاتها الرسمية؛ أما الكود والبيانات فهي أمثلة تعليمية من إعدادنا، وليست نتائج تجربة مدفوعة أو صورًا من حساب داخل المنتج.
ما هي SQLAI.ai؟
تقدم SQLAI.ai أدوات لإنشاء SQL من اللغة الطبيعية، والتحقق من الاستعلام وشرحه وتحسينه، مع إمكان إضافة مخطط القاعدة وقواعد تخص مصدر البيانات. وتعرض مسارات لتنسيق الكود وتحويل اللهجة أيضًا؛ لكن وجود وظيفة على الموقع لا يعني إتاحتها كلها ضمن الخطة المجانية أو بالطريقة نفسها في كل واجهة.
تستفيد منها عندما يكون السؤال محددًا، مثل استخراج عملاء بلا طلبات، أو تفسير استعلام ورثته من مشروع سابق، أو فهم رسالة خطأ. وهي لا تعرّف لك تلقائيًا معنى الإيراد أو العميل النشط في شركتك. هذه التعريفات يجب أن تأتي من مخطط موثق وقواعد عمل تراجعها أنت.
حدد المهمة قبل اختيار الأداة
| المهمة | ما تقدمه للخدمة | ما تراجعه بنفسك |
|---|---|---|
| إنشاء استعلام | السؤال والمحرك والمخطط والتعريفات | الصفوف المطلوبة والحالات المستثناة |
| التحقق والإصلاح | SQL ورسالة الخطأ والمحرك | أن الإصلاح لم يغير معنى الحساب |
| شرح الكود | الاستعلام والعلاقات الضرورية | سبب كل ربط وشرط وتجميع |
| اقتراح تحسين | الكود وسياق الأداء المتاح | تطابق النتائج وخطة التنفيذ والزمن |
إذا كان الاستعلام لا يعمل بسبب اسم عمود، فابدأ بالإصلاح لا بتحسين الأداء. وإذا كان يعمل لكنه يعيد رقمًا خاطئًا، فلن يحل التنسيق الجميل المشكلة. تحديد المرحلة يوفر المحاولات ويجعل مقارنة النسخة الأصلية والمعدلة أسهل.
الخطوة الأولى: افتح الحساب وافهم حدود المجاني
انتقل من الموقع الرسمي إلى التطبيق وأنشئ حسابًا بالطريقة المعروضة. افحص اسم الخطة والرصيد قبل إرسال مخطط كبير أو استعلام طويل. لا تفسر عبارة «ابدأ مجانًا» على أنها استخدام غير محدود لجميع أدوات SQL.
وفق صفحة تسعير SQLAI.ai، تشمل البداية المجانية Text-to-SQL، بينما تحتاج أدوات التحسين والتحقق والشرح إلى خطة مدفوعة. وتعرض الصفحة أرصدة تختلف طريقة استهلاكها بحسب طول الطلب ونوعه. لذلك لا نحسب كل ضغطة مساوية لاستعلام قصير واحد، ولا نعتمد رصيد البداية وعدًا بتجدد دائم دون مراجعة الحساب.
إن كان هدفك توليد مثال للتعلم، ابدأ بالمتاح مجانًا ثم قيم النتيجة. أما إذا كنت تحتاج إلى إصلاح وشرح يوميين، فاحسب تكلفة سلسلة العمل كاملة: توليد، وسؤال متابعة، وإصلاح، ومراجعة تحسين. لا تشترك اعتمادًا على عنوان مولد مجاني بينما الوظيفة المطلوبة مدفوعة.
الخطوة الثانية: اختر المحرك وطريقة تقديم المخطط
حدد المحرك الذي ستشغل عليه الكود. دعم كتابة صياغة SQLite أو BigQuery لا يثبت أن الخدمة تستطيع الاتصال المباشر بقاعدة من هذا النوع. في المثال التالي نستخدم SQLite للتدريب بمخطط نقدمه للأداة، ثم نراجع الاستعلام في بيئة محلية؛ لا نفترض وجود اتصال SQLite حي داخل SQLAI.ai.
يمكن أن يتضمن المصدر مخططًا مستوردًا أو اتصالًا متاحًا وفق دعم المنتج. اختر أقل قدر من المعلومات اللازمة. لا تضف صفوف عملاء حقيقية إذا كان السؤال يحتاج أسماء الأعمدة والعلاقات فقط. والمخطط ليس مجرد قائمة أسماء: اذكر المفتاح الأساسي والعلاقة ونوع التاريخ وما إذا كانت القيمة تقبل الفراغ.
customers
id INTEGER PRIMARY KEY
orders
id INTEGER PRIMARY KEY
customer_id INTEGER references customers(id)
status TEXT
total NUMERIC
created_at TEXT in YYYY-MM-DD formatنفترض أن id في orders غير فارغ وفريد، وأن total معروف لكل طلب مدفوع، وأن تواريخ التدريب نصوص ISO بالتنسيق المعروض. هذه افتراضات المثال، لا أوصاف لكل قاعدة. إذا كانت قاعدتك تستخدم طابعًا زمنيًا أو عملات متعددة، أعد تعريف المسألة قبل نسخ الكود.
الخطوة الثالثة: ضع قواعد المصدر بوضوح
تتيح الخدمة قواعد تخص قاعدة البيانات إلى جانب المخطط. استخدمها لتثبيت تفضيلات التوليد وتعريفات العمل، مثل اختيار الأعمدة اللازمة وعدم افتراض جداول غير موجودة. القاعدة المكتوبة للمساعد تساعده على الاتساق، لكنها ليست بديلًا عن صلاحية حقيقية تمنع الوصول أو الكتابة.
استخدم الجداول والأعمدة الموجودة فقط. الطلب المقبول هو status = paid. اعرض جميع العملاء حتى من ليس لديه طلب مطابق. الفترة من 2026-10-01 شاملًا إلى 2026-11-01 غير شامل. اشرح موضع شروط الطلبات عند استعمال LEFT JOIN، ولا تغير بيانات القاعدة.
إذا كانت القاعدة تضم أكثر من شركة أو حساب، فتعريف نطاق العميل أو المؤسسة يحتاج إلى عزل مطبق في النظام. لا تكتفِ بقاعدة لغوية من نوع «لا تعرض بيانات الآخرين». اجعل مسؤول البيانات يحدد ما يستطيع اتصالك قراءته، ثم اختبر السؤال على مصدر محدود.
الخطوة الرابعة: اطلب الاستعلام
اكتب استعلام SQLite يعرض customers.id لكل العملاء، وعدد orders.id للطلبات المدفوعة في أكتوبر 2026، ومجموع orders.total. احتفظ بمن ليس لديهم طلبات وأظهر العدد والمجموع صفرًا لهم. رتب حسب معرف العميل. استخدم العلاقة orders.customer_id = customers.id، ثم اشرح لماذا COUNT(o.id) أنسب هنا من COUNT(*).
اطلب SQL منفصلًا عن تفسيره، واقرأ الأسماء قبل التشغيل. إذا استخدمت الأداة عمود active أو حقل paid_at غير موجود، صحح المخطط أو السؤال بدل قبول الإضافة. لا تجعلها تختلق معلومة حتى يبدو الاستعلام أقرب إلى مثال مألوف من الإنترنت.
SELECT
c.id AS customer_id,
COUNT(o.id) AS paid_order_count,
COALESCE(SUM(o.total), 0) AS paid_total
FROM customers AS c
LEFT JOIN orders AS o
ON o.customer_id = c.id
AND o.status = 'paid'
AND o.created_at >= '2026-10-01'
AND o.created_at < '2026-11-01'
GROUP BY c.id
ORDER BY c.id;الاستعلام التعليمي يضع شروط الطلب داخل ON، فيحدد أي طلب يمكن ربطه بالعميل مع الحفاظ على جميع صفوف customers. ويحسب COUNT(o.id) معرفات الطلبات الموجودة فقط. أما COALESCE فيحوّل مجموعًا فارغًا إلى صفر في حالة عدم وجود طلبات مطابقة.
هنا نفترض أن قيم total للطلبات المدفوعة غير فارغة. لو كانت بعض المبالغ مفقودة، فقد يحول إخفاء NULL التقرير إلى نتيجة تبدو كاملة وهي ناقصة. عالج جودة البيانات وقاعدة التعامل مع المبلغ المفقود بدل افتراض أن كل فراغ يساوي صفرًا.
الخطوة الخامسة: تحقق من العملاء ذوي العدد صفر
أدخل أربعة معرفات للعملاء في قاعدة تدريب. اجعل للعميل 1 طلبين مدفوعين بقيمتي 100 و60 في أكتوبر. وللعميل 2 طلبًا مدفوعًا بقيمة 90 وآخر ملغى بقيمة 200. وللعميل 3 طلبًا مدفوعًا بقيمة 50 وآخر معلقًا بقيمة 70 في أكتوبر، وطلبًا مدفوعًا بقيمة 40 في أول نوفمبر. العميل 4 بلا طلبات.
| معرف العميل | العدد المتوقع | المجموع المتوقع |
|---|---|---|
| 1 | 2 | 160 |
| 2 | 1 | 90 |
| 3 | 1 | 50 |
| 4 | 0 | 0 |
تأكد من وجود الصف الرابع. إذا اختفى، فقد نُقل فلتر الطلبات إلى WHERE فأصبح يستبعد صف العميل الذي لم يجد طلبًا مطابقًا. وإذا أصبح عدده واحدًا، فراجع استعمال COUNT(*) الذي قد يحسب صف العميل المحفوظ بعد الربط بدل عدد الطلبات الفعلية.
غيّر بيانات التدريب عمدًا: أضف عميلًا لديه طلب ملغى فقط، وآخر لديه طلب خارج الفترة فقط. يجب أن يظهر كلاهما بصفر في هذا التقرير. هذه طريقة أفضل لفحص منطق الاستعلام من قراءة عبارة «الاستعلام صحيح» في نافذة المساعد.
مراجعة الاستعلام: الشرح والإصلاح والتحسين
كيف تستخدم الشرح دون الاكتفاء بإعادة صياغة الكود؟
إذا كانت أداة الشرح ضمن خطتك، اطلب منها تفسير ما يحدث للعميل الذي لا يطابق أي صف، ولماذا تختلف النتيجة بين وضع الشرط في ON وWHERE. واطلب مثالًا مضادًا صغيرًا. الشرح المفيد يبين ما يدخل الحساب وما يخرج منه، لا يترجم أسماء الكلمات المفتاحية فقط.
اسأل كذلك: «هل يمكن أن يتكرر العميل؟ وما الذي يمنع تكرار مبلغ الطلب؟». لا يضمن اعتماد معرف أساسي صحيح خلو الاستعلام من التضاعف عند إضافة جدول ثالث. كل علاقة جديدة تحتاج إلى فهم عدد الصفوف المتوقع قبل التجميع وبعده.
كيف تصلح الاستعلامات ورسائل الخطأ؟
أرسل المحرك والإصدار والكود والجزء الضروري من رسالة الخطأ، بعد إزالة أي تفاصيل حساسة. ميّز بين خطأ نحوي وخطأ نوع بيانات واسم غير موجود ومشكلة صلاحيات. لا تصلح مشكلة صلاحيات بطلب حساب أوسع إذا كانت المهمة لا تحتاج إليه.
اطلب أقل تعديل يزيل سبب الخطأ مع شرح أثره. وإذا غيرت الأداة JOIN أو نوع المقارنة أو معالجة NULL، أعد اختبار الصفوف المرجعية. بعض الإصلاحات تجعل الاستعلام ينجح تقنيًا بتغيير ما يحسبه، ولذلك لا يكفي اختفاء رسالة الخطأ لقبول النسخة الجديدة.
التحسين لا يثبت بمجرد إعادة كتابة SQL
عند استعمال أداة التحسين، قارن النسخة الأصلية والمقترحة سطرًا بسطر. اطلب سبب كل تغيير وتأثيره المتوقع. تحويل LEFT JOIN إلى INNER JOIN قد يقلل الصفوف التي يعالجها الاستعلام، لكنه لا يحافظ على تقرير «كل العملاء» إذا أسقط أصحاب العدد صفر.
لا تطبق فهرسًا مقترحًا آليًا على قاعدة الإنتاج دون مراجعة. افحص خطة التنفيذ والأحجام والأنماط الفعلية، ثم قارن النتائج قبل قياس الزمن. بيانات التدريب الصغيرة تصلح لإثبات منطق المثال، لكنها لا تكفي لإثبات تحسن الأداء على مشروعك.
وإذا كان الكود جزءًا من مستودع، فإن مراجعة الكود بالذكاء الاصطناعي قد تساعد في مناقشة التغييرات. تبقى نتائج الحالات المرجعية وخطة التنفيذ أدلة مستقلة؛ لا تستبدلهما بموافقة مساعد ثانٍ يقرأ النص نفسه.
هل تدعم SQLAI.ai الطلبات العربية؟
تعرض الخدمة توليدًا من اللغة الطبيعية بلغات متعددة. يمكنك بدء السؤال بالعربية مع المحافظة على أسماء الجداول والقيم كما هي. لكن اختبر المصطلحات التي تحمل معنى تجاريًا: «جديد» قد يعني تاريخ إنشاء الحساب أو أول عملية شراء، و«نشط» قد يعني تسجيل الدخول أو الدفع.
اكتب تعريفًا واحدًا ثم اطلب إعادة صياغته قبل التنفيذ. إذا أخطأت الأداة في معنى المصطلح بالعربية، لا تغيّر اللغة وحدها وتفترض أن المشكلة حُلّت. راجع SQL والنتيجة على البيانات نفسها؛ دقة المصطلح أهم من جودة الفقرة العربية التي تصف الناتج.
المخطط والخصوصية وروابط المشاركة
توضح سياسة خصوصية SQLAI.ai معالجة الأسئلة والمخططات ومشاركتها مع مزودي نماذج لتشغيل الخدمة. لذلك لا تعتبر عدم إرسال صفوف البيانات مساويًا لعدم إرسال معلومات عن مشروعك. أسماء الأعمدة ورسائل المحادثة قد تكشف سياقًا لا تريد مشاركته.
احذف كلمات المرور والمفاتيح من الطلبات، وتحقق من وجهة أي رابط مشاركة قبل توزيعه. وإذا استخدمت اتصالًا حيًا، فاجعله للقراءة بقدر الحاجة. لا تنقل مخرجات تحتوي بيانات شخصية إلى محادثة عامة لمجرد طلب تفسير مخطط أو إصلاح خطأ.
متى تختار SQLAI.ai؟
قيّمها إذا كنت تريد مسارًا واضحًا لإنشاء SQL ثم مراجعته وشرحه، وتحتاج إلى إعطاء الأداة مخططًا وقواعد ثابتة. أما إذا كانت حاجتك تقريرًا بصريًا للفريق أو تحليلًا متكررًا، فقارن أيضًا إدارة المشاركة وتحديث البيانات، بدل اختيار المنتج من عدد مولدات SQL في صفحته.
ابدأ بمثال العملاء ذوي العدد صفر، ثم زد التعقيد تدريجيًا. عندما تعرف لماذا ظهر كل صف ولماذا استُبعد كل طلب، تكون قد استخدمت الأداة لتسريع الفهم والعمل. أما الوصول إلى كود يعمل دون تفسير الناتج، فهو بداية المراجعة وليس نهايتها.

