SQL فارمیٹر

SQL کو خوبصورت بنائیں اور سادہ زبان میں کلاز بائی کلاز اس کی وضاحت پڑھیں۔

SQL ان پٹ

انڈینٹ
کی ورڈز
query.sql
دیکھیں
کوئری کو فارمیٹ کرنے یا اس کی وضاحت دیکھنے کے لیے اسے یہاں پیسٹ کریں۔

آپ کی SQL کو آپ کے براؤزر میں ہی فارمیٹ اور اینالائز کیا جاتا ہے۔ BroBroGo پر کچھ بھی اپ لوڈ نہیں کیا جاتا۔

عمومی سوالات

یہ کن SQL ڈائلیکٹس کو فارمیٹ کر سکتا ہے؟

Standard SQL, PostgreSQL, MySQL, MariaDB, SQL Server (T-SQL), Oracle (PL/SQL), SQLite, BigQuery, Snowflake اور Spark SQL۔ وہ ڈائلیکٹ منتخب کریں جو آپ کے ڈیٹا بیس سے مطابقت رکھتا ہو تاکہ کی ورڈز اور کوٹنگ کو اسی طرح ہینڈل کیا جائے جس کی وہ انجن توقع کرتا ہے۔

سادہ اردو/انگریزی میں وضاحت کا یہ فیچر کیسے کام کرتا ہے؟

یہ کوئری کی ساخت کو پڑھتا ہے — جیسے اسٹیٹمنٹ کی قسم اور ہر کلاز جیسے SELECT, FROM, JOIN, WHERE, GROUP BY اور ORDER BY — اور لیبل لگاتا ہے کہ ہر ایک کیا کام کرتا ہے۔ یہ کوئری کی ساخت کی وضاحت کرتا ہے، ڈیٹا بیس ایگزیکیوشن پلان کی نہیں، اس لیے یہ ادھوری یا مخصوص وینڈر کی SQL پر بھی کام کرتا ہے۔

کیا پروڈکشن کوئریز یہاں پیسٹ کرنا محفوظ ہے؟

جی ہاں۔ فارمیٹنگ اور تجزیہ مکمل طور پر آپ کے براؤزر میں چلتا ہے — آپ کی SQL کبھی بھی پیج سے باہر نہیں جاتی۔

پڑھنے کے قابل SQL کوڈ کی اہمیت اور افادیت

ڈیٹا بیس مینجمنٹ اور سافٹ ویئر ڈویلپمنٹ میں صاف ستھرا اور ترتیب وار SQL کوڈ لکھنا انتہائی ضروری ہے۔ جب کوئریز طویل اور پیچیدہ ہو جاتی ہیں، تو ان میں موجود کلازز کو سمجھنا اور ان کی غلطیاں (debugging) درست کرنا مشکل ہو جاتا ہے۔ بکھرا ہوا کوڈ نہ صرف ڈویلپرز کے لیے الجھن کا باعث بنتا ہے بلکہ ٹیم کے دیگر ارکان کے درمیان تعاون کو بھی متاثر کرتا ہے۔ ایک معیاری فارمیٹ میں لکھی گئی کوئری کو پڑھنا، اس کا جائزہ لینا اور اس میں تبدیلیاں کرنا کہیں زیادہ آسان اور تیز رفتار ہوتا ہے۔

مختلف SQL ڈائلیکٹس اور ان کی باریکیاں

مختلف ڈیٹا بیس سسٹمز اپنے مخصوص قواعد اور کی ورڈز کا استعمال کرتے ہیں۔ یہ ٹول 10 مختلف SQL ڈائلیکٹس کو سپورٹ کرتا ہے تاکہ آپ کی کوئری کو اس کے متعلقہ انجن کے مطابق درست طریقے سے فارمیٹ کیا جا سکے:

  • Standard SQL
  • PostgreSQL
  • MySQL
  • MariaDB
  • SQL Server (T-SQL)
  • Oracle (PL/SQL)
  • SQLite
  • BigQuery
  • Snowflake
  • Spark SQL

ان ڈائلیکٹس کا درست انتخاب اس بات کو یقینی بناتا ہے کہ کی ورڈز اور کوٹنگ (quoting) کو اسی طرح ہینڈل کیا جائے جس کی وہ مخصوص ڈیٹا بیس انجن توقع کرتا ہے۔

ان پٹ پیرامیٹرز اور فارمیٹنگ کے اختیارات

بہترین نتائج حاصل کرنے کے لیے، یہ ٹول صارفین کو ان پٹ اور فارمیٹنگ کے حوالے سے درج ذیل کنٹرول فراہم کرتا ہے:

  • SQL ان پٹ: آپ زیادہ سے زیادہ 300,000 حروف پر مشتمل SQL کوئری درج کر سکتے ہیں۔
  • ڈائلیکٹ: اپنے ڈیٹا بیس انجن کے مطابق مناسب ڈائلیکٹ منتخب کریں۔
  • انڈینٹ: کوڈ کی ترتیب کے لیے آپ 2 spaces، 4 spaces یا tab کا انتخاب کر سکتے ہیں۔
  • کی ورڈز: آپ SQL کی ورڈز کے کیس (case) کو اپر کیس (UPPER)، لوئر کیس (lower) یا "برقرار رکھیں" پر سیٹ کر سکتے ہیں۔

آؤٹ پٹ اور کوئری کے اعداد و شمار

جب آپ کوئری کو فارمیٹ کرتے ہیں، تو ٹول نہ صرف کوڈ کو خوبصورت بناتا ہے بلکہ اس سے متعلق اہم معلومات بھی فراہم کرتا ہے:

  • فارمیٹ شدہ SQL: منتخب کردہ ڈائلیکٹ اور اسٹائل کے مطابق ترتیب دیا گیا کوڈ۔
  • لائنیں: فارمیٹ شدہ SQL میں لائنوں کی کل تعداد۔
  • حروف: فارمیٹ شدہ SQL میں کل حروف کی تعداد۔
  • سائز: فارمیٹ شدہ کوڈ کا فائل سائز۔

کلاز بائی کلاز وضاحت اور اس کے فوائد

یہ ٹول صرف کوڈ کو فارمیٹ ہی نہیں کرتا، بلکہ یہ سادہ زبان میں کلاز بائی کلاز اس کی وضاحت بھی پیش کرتا ہے۔ یہ فیچر کوئری کی ساخت (structure) کو سمجھنے کے لیے بہترین ہے، خاص طور پر ان لوگوں کے لیے جو SQL سیکھ رہے ہیں یا کسی دوسرے ڈویلپر کے لکھے ہوئے پیچیدہ کوڈ کو سمجھنے کی کوشش کر رہے ہیں۔

یہاں یہ بات اہم ہے کہ یہ وضاحت کوئری کی ساخت پر مبنی ہوتی ہے، ڈیٹا بیس ایگزیکیوشن پلان (execution plan) پر نہیں۔ اسی وجہ سے یہ فیچر ادھوری یا مخصوص وینڈر کی SQL پر بھی کامیابی سے کام کرتا ہے۔

اسٹیٹمنٹ کی اقسام (Statement Kinds)

ٹول کوئری میں موجود اسٹیٹمنٹس کی شناخت کر کے ان کی قسم کے مطابق درج ذیل وضاحت فراہم کرتا ہے:

اسٹیٹمنٹ کی قسم وضاحت
SELECT ایک کوئری جو بغیر کچھ تبدیل کیے قطاروں کو پڑھتی اور واپس کرتی ہے۔
INSERT ٹیبل میں نئی قطاریں شامل کرتا ہے۔
UPDATE پہلے سے موجود قطاروں میں ویلیوز کو تبدیل کرتا ہے۔
DELETE ٹیبل سے قطاریں (rows) ہٹاتا ہے۔
CREATE ایک نیا آبجیکٹ جیسے ٹیبل، ویو یا انڈیکس کی تعریف کرتا ہے۔
ALTER کسی موجودہ آبجیکٹ کی تعریف کو تبدیل کرتا ہے۔
DROP ڈیٹا بیس سے کسی آبجیکٹ کو مستقل طور پر ہٹاتا ہے۔
TRUNCATE ٹیبل کو خالی کرتا ہے اور ہر قطار کو ڈیلیٹ کر دیتا ہے۔
WITH بعد میں آنے والی کوئری کے لیے ایک عارضی نامزد رزلٹ (CTE) بناتا ہے۔
MERGE ایک مشترکہ آپریشن میں قطاروں کو داخل، اپ ڈیٹ یا ڈیلیٹ کرتا ہے۔
OTHER ایک SQL اسٹیٹمنٹ۔

کلازز کے کردار (Clause Roles)

کوئری کے اندر موجود ہر کلاز کے کام کو سمجھنے کے لیے ٹول درج ذیل کرداروں کی نشاندہی کرتا ہے:

  • SELECT: واپس کیے جانے والے کالمز اور ایکسپریشنز۔
  • SELECT DISTINCT: واپس کیے جانے والے کالمز، جن میں سے ڈپلیکیٹ قطاریں ہٹا دی گئی ہیں۔
  • FROM: وہ ٹیبل (یا سب کوئری) جہاں سے ڈیٹا پڑھا جا رہا ہے۔
  • JOIN: ہر قطار کو دوسرے ٹیبل کی مماثل قطاروں کے ساتھ جوڑتا۔
  • WHERE: صرف ان قطاروں کو رکھتا ہے جو اس شرط پر پورا اترتی ہیں۔
  • GROUP BY: قطاروں کو گروپس میں سکیڑتا ہے تاکہ ہر گروپ کے حساب سے COUNT یا SUM جیسے ایگریگیٹس کا حساب لگایا جا سکے۔
  • HAVING: ایگریگیٹس کا حساب لگانے کے بعد ان گروپس کو فلٹر کرتا ہے۔
  • ORDER BY: حاصل ہونے والی قطاروں کو ترتیب دیتا ہے۔
  • LIMIT: واپس آنے والی قطاروں کی تعداد کو محدود کرتا ہے۔
  • OFFSET: نتائج واپس کرنے سے پہلے مخصوص تعداد میں قطاروں کو چھوڑ دیتا ہے۔
  • UNION: ان نتائج کو دوسری کوئری کے نتائج کے ساتھ جوڑتا ہے۔
  • VALUES: درج کی جانے والی قطاروں کی ویلیوز۔
  • INTO: وہ ٹیبل جس میں نئی قطاریں شامل کی جا رہی ہیں۔
  • SET: تفویض کی جانے والی نئی کالم ویلیوز۔
  • UPDATE: وہ ٹیبل جس کی قطاریں تبدیل کی جا رہی ہیں۔
  • DELETE FROM: وہ ٹیبل جس سے قطاریں ہٹائی جا رہی ہیں۔
  • WITH: ایک عارضی نامزد رزلٹ سیٹ کی تعریف کرتا ہے جو نیچے استعمال ہوتا ہے۔
  • STATEMENT: اسٹیٹمنٹ، جیسا کہ وہ ہے۔

قواعد، حدود اور خاص حالات

ٹول کو استعمال کرتے وقت درج ذیل تکنیکی قواعد اور حدود کو ذہن میں رکھیں:

  • سائز کی حد: اگر ان پٹ SQL بہت بڑی ہو (300,000 حروف سے زیادہ)، تو ٹول پروسیسنگ روک دے گا اور یہ پیغام دکھائے گا: "یہ کوئری پروسیس کرنے کے لیے بہت بڑی ہے۔ کوئی چھوٹی کوئری آزمائیں۔"۔
  • سنٹیکس کی غلطیاں: اگر ان پٹ SQL میں کوئی سنٹیکس کی غلطی ہو، تو ٹول کوڈ فارمیٹ نہیں کر سکے گا اور یہ پیغام ظاہر ہوگا: "اس SQL کو فارمیٹ نہیں کیا جا سکا — سنٹیکس چیک کریں۔"۔
  • غلطی کے وقت پرانا آؤٹ پٹ: اگر فارمیٹنگ کے دوران کوئی خرابی یا ایرر آتا ہے، تو پرانا آؤٹ پٹ ایرر میسج سے تبدیل نہیں ہوتا بلکہ اسکرین پر برقرار رہتا ہے۔
  • صاف کرنے کا عمل: جب آپ "صاف کریں" پر کلک کرتے ہیں، تو ان پٹ اور آؤٹ پٹ دونوں ایریاز خالی ہو جاتے ہیں، تمام ایرر تفصیلات چھپ جاتی ہیں، اور اسکرین پر "صاف کر دیا گیا۔" لکھا آتا ہے۔
  • اسٹیٹمنٹس کی حد: اگر آپ کی کوئری میں متعدد اسٹیٹمنٹس ہیں، تو ٹول ان کی وضاحت پیش کرے گا۔ تاہم، اگر کوئری میں 25 سے زیادہ اسٹیٹمنٹس ہوں، تو صرف پہلے 25 اسٹیٹمنٹس کی وضاحت دکھائی جائے گی اور ساتھ ہی یہ نوٹ ظاہر ہوگا: "صرف پہلے 25 دکھائے جا رہے ہیں۔"۔
  • لوکل سیونگز: یہ ٹول آپ کے ڈرافٹس اور تھیم کی ترجیحات کو براؤزر میں لوکل طور پر محفوظ رکھتا ہے۔

ڈیٹا پرائیویسی اور سیکیورٹی

اس ٹول کو استعمال کرتے وقت آپ کے ڈیٹا کی پرائیویسی مکمل طور پر برقرار رہتی ہے۔ آپ کی SQL کو آپ کے براؤزر میں ہی فارمیٹ اور اینالائز کیا جاتا ہے۔ BroBroGo پر کچھ بھی اپ لوڈ نہیں کیا جاتا اور آپ کا کوڈ کبھی بھی اس پیج سے باہر نہیں جاتا۔ اس لیے آپ بغیر کسی فکر کے اپنی کوئریز پر کام کر سکتے ہیں۔

اکثر پوچھے جانے والے سوالات (FAQ)

س: یہ کن SQL ڈائلیکٹس کو فارمیٹ کر سکتا ہے؟
ج: یہ Standard SQL, PostgreSQL, MySQL, MariaDB, SQL Server (T-SQL), Oracle (PL/SQL), SQLite, BigQuery, Snowflake اور Spark SQL کو سپورٹ کرتا ہے۔ وہ ڈائلیکٹ منتخب کریں جو آپ کے ڈیٹا بیس سے مطابقت رکھتا ہو تاکہ کی ورڈز اور کوٹنگ کو اسی طرح ہینڈل کیا جائے جس کی وہ انجن توقع کرتا ہے۔

س: سادہ اردو/انگریزی میں وضاحت کا یہ فیچر کیسے کام کرتا ہے؟
ج: یہ کوئری کی ساخت کو پڑھتا ہے — جیسے اسٹیٹمنٹ کی قسم اور ہر کلاز جیسے SELECT, FROM, JOIN, WHERE, GROUP BY اور ORDER BY — اور لیبل لگاتا ہے کہ ہر ایک کیا کام کرتا ہے۔ یہ کوئری کی ساخت کی وضاحت کرتا ہے، ڈیٹا بیس ایگزیکیوشن پلان کی نہیں، اس لیے یہ ادھوری یا مخصوص وینڈر کی SQL پر بھی کام کرتا ہے۔

س: کیا پروڈکشن کوئریز یہاں پیسٹ کرنا محفوظ ہے؟
ج: جی ہاں۔ فارمیٹنگ اور تجزیہ مکمل طور پر آپ کے براؤزر میں چلتا ہے — آپ کی SQL کبھی بھی پیج سے باہر نہیں جاتی۔

س: اگر میری کوئری میں سنٹیکس کی غلطی ہو تو کیا ہوگا؟
ج: اگر کوئری کے سنٹیکس میں کوئی غلطی ہو تو ٹول اسے فارمیٹ نہیں کر پائے گا اور اسکرین پر یہ پیغام دکھائے گا: "اس SQL کو فارمیٹ نہیں کیا جا سکا — سنٹیکس چیک کریں۔"۔