پایگاه داده مکانی اَبری
زیرساخت مکانی پروژه‌های شما، بدون دردسر راه‌اندازی سرور

چطور خواسته‌ام را فارسی بنویسم تا دستور SQL آن ساخته و اجرا شود؟

راهنمای گام‌به‌گام آخرین بازبینی: ۱۴۰۵/۰۸/۰۶

پاسخ کوتاه

در کنسول SQL تب «پرسش فارسی» را باز کنید، خواسته را فارسی بنویسید (مثلاً «نقاط مدارس که داخل منطقه‌ای با نام فلان هستند را در لایه جدید ذخیره کن») و «ساخت SQL» را بزنید. پرس‌وجوی خواندنی بی‌درنگ اجرا می‌شود؛ دستوری که جدول می‌سازد یا داده را تغییر می‌دهد اول نشان داده می‌شود تا خودتان اجرا کنید. کلید مدل زبانی از خود شماست.

این قابلیت فقط در کنسول SQL است و به بخش «تحلیل» ربطی ندارد: نتیجه‌اش یک دستور SQL معمولی است که می‌بینید، می‌توانید ویرایش کنید و با همان محدودیت‌های کنسول SQL اجرا می‌شود.

مراحل

  1. در منوی پایگاه داده «اجرای SQL» را باز کنید و تب پرسش فارسی را بزنید.
  2. بار اول دکمه تنظیم کلید مدل زبانی را بزنید: آدرس سرویس سازگار با OpenAI (مثل https://api.avalai.ir/v1)، نام مدل و کلید API. همان کلیدی است که در «تحلیل» هم به کار می‌رود و هزینه‌اش با حساب خود شماست.
  3. خواسته را فارسی بنویسید و ساخت SQL را بزنید (یا Ctrl+Enter).
  4. اگر پرس‌وجو فقط می‌خواند (شمارش، میانگین، فهرست)، بی‌درنگ اجرا و نتیجه همان‌جا دیده می‌شود.
  5. اگر دستور جدول تازه می‌سازد یا داده را تغییر می‌دهد، در کادر SQL می‌نشیند و توضیح فارسی‌اش بالای آن می‌آید. بخوانید و اجرا را بزنید. برای ساخت جدول تازه «اجازه تغییر داده» خودکار تیک می‌خورد؛ برای UPDATE و DELETE خودتان باید تیک بزنید.
  6. بعد از ساخت جدول، دکمه مشاهده جدول شما را به جدول (و نقشه‌اش، اگر مکانی باشد) می‌برد.

نتیجه روی نقشه

اگر خروجی پرس‌وجو ستون هندسه (geometry یا geography) داشته باشد، همان ردیف‌ها بالای جدول نتیجه روی نقشه هم دیده می‌شوند (تا ۵۰۰ ردیف، با تبدیل خودکار به WGS84). روی هر عارضه بزنید تا ویژگی‌هایش را ببینید. این برای هر SQL است، نه فقط SQL ساخته‌شده از پرسش فارسی.

نتیجه خالی بود؟ «چرا خالی است؟»

وقتی یک پرس‌وجوی خواندنی هیچ ردیفی برنمی‌گرداند، دکمه چرا خالی است؟ را بزنید:

  • تعداد واقعی ردیف جدول‌هایی که در کوئری آمده‌اند و مقدارهای واقعی نزدیک به متن‌های داخل کوئری پیدا می‌شوند؛ مثلاً اگر نوشته‌اید 'منطقه 6' ولی در داده «منطقه ۶» با رقم فارسی یا «ي» عربی ثبت شده است.
  • مدل زبانی دلیل احتمالی را فارسی می‌گوید و اگر بشود، کوئری اصلاح‌شده می‌دهد. کوئری اصلاح‌شده پیش از نمایش سنجیده و شمرده می‌شود («۲ ردیف برمی‌گرداند»).
  • جایگزینی و اجرا کوئری اصلاح‌شده را در کادر می‌گذارد و اجرا می‌کند. پیشنهاد اصلاح همیشه فقط‌خواندنی است.

نمونه خواسته‌ها

  • «در جدول roads چند ردیف هست؟»
  • «نقاط schools که داخل لایه zones با نام منطقه ۶ هستند را در لایه جدید به نام schools_z6 ذخیره کن»
  • «میانگین و بیشینه ستون population در جدول cities را به تفکیک province بده»
  • «مساحت هر پلیگون parcels را به متر مربع حساب کن و ۱۰ تای بزرگ را نشان بده»

هرچه نام جدول و ستون را دقیق‌تر بنویسید، دستور دقیق‌تر می‌شود. نام جدول تازه را با «به نام …» (حروف کوچک لاتین) بدهید.

چه چیزی به مدل زبانی می‌رود؟

  • نام جدول‌ها و ستون‌ها، نوع ستون، نوع هندسه، SRID و تعداد تقریبی ردیف‌ها.
  • اگر گزینه «چند مقدار نمونه از ستون‌های متنی» روشن باشد، چند مقدار پرتکرار و مقدارهایی که با واژه‌های خواسته‌تان جور درمی‌آیند (تا «با نام فلان» به شرط درست تبدیل شود). اگر داده حساس است، این گزینه را خاموش کنید.
  • خود ردیف‌ها و هندسه‌ها به مدل نمی‌روند.

ایمنی

  • دستور پیش از نمایش با EXPLAIN (بدون اجرا) سنجیده می‌شود؛ اگر پایگاه داده آن را نپذیرد، یک‌بار با همان خطا اصلاح می‌شود و اگر باز هم ایراد داشت، هشدار می‌بینید.
  • دستورهای حذف (DROP، TRUNCATE، DELETE بدون WHERE) هشدار جدا دارند و هرگز خودکار اجرا نمی‌شوند.
  • مشاهده‌گرها فقط پرس‌وجوی خواندنی را می‌توانند اجرا کنند.

Tip

مدل زبانی ممکن است اشتباه کند. پیش از اجرای دستوری که داده را تغییر می‌دهد، آن را بخوانید و اگر مطمئن نیستید اول یک بکاپ دستی بگیرید.

آیا این مقاله به شما کمک کرد؟

چه چیزی کم بود؟ (اختیاری)

هنوز جواب نگرفتید؟ به پشتیبانی بگویید.