SQL ফরম্যাটার ও বিউটিফায়ার

এলোমেলো কোয়েরি পেস্ট করুন আর পান পরিষ্কার, সুসংগতভাবে ইনডেন্ট করা SQL। ১৭টি ডায়ালেক্ট, কিওয়ার্ড কেসিং ও এক-ক্লিকের মিনিফায়ার, সবই আপনার ব্রাউজারে।

ব্রাউজারেই চলেসাইন-আপ লাগে নাকিছুই আপলোড হয় না

ফরম্যাট করা SQL

SQL ফরম্যাটার কীভাবে ব্যবহার করবেন

  1. ইনপুট বক্সে এক বা একাধিক SQL স্টেটমেন্ট পেস্ট করুন, অথবা একটি .sql ফাইল খুলুন।
  2. আপনার ডেটাবেসের ডায়ালেক্ট বেছে নিন, যাতে এর সিনট্যাক্স, যেমন :: cast, [brackets], backtick বা $$ স্ট্রিং, সঠিকভাবে পার্স হয়।
  3. কিওয়ার্ডের কেস (UPPER, lower বা অপরিবর্তিত), ইনডেন্টেশন ও স্টেটমেন্টের মাঝে ফাঁকা লাইনের সংখ্যা সেট করুন।
  4. লগ, ORM বা URL প্যারামিটারের জন্য কমেন্ট ও হোয়াইটস্পেস বাদ দিতে মিনিফাই-এ যান।
  5. ফলাফল কপি করুন বা .sql ফাইল হিসেবে ডাউনলোড করুন।

কেন SQL ফরম্যাট করবেন?

ORM লগ, কোয়েরি প্ল্যান বা অ্যাপ্লিকেশন কোড থেকে কপি করা কোয়েরি সাধারণত একটি লম্বা লাইনে আসে। প্রতিটি ক্লজ (SELECT, FROM, JOIN, WHERE, GROUP BY) আলাদা লাইনে রাখলে এবং কলাম ও শর্তগুলো ইনডেন্ট করলে লজিক পড়া সহজ হয়। এতে কোড রিভিউয়ের diff-ও ছোট হয় এবং অনুপস্থিত join শর্ত বা ভুল জায়গায় বসা OR সহজে চোখে পড়ে।

SQL স্টাইলের রীতি

  • বড় হাতের কিওয়ার্ড (SELECT, WHERE) SQL সিনট্যাক্সকে টেবিল ও কলামের নাম থেকে আলাদা করে। বেশিরভাগ স্টাইল গাইড এটিই সুপারিশ করে, যদিও dbt ও অ্যানালিটিক্স টিমে ছোট হাতের লেখাও জনপ্রিয়।
  • প্রতি লাইনে একটি কলাম থাকলে কলাম যোগ বা বাদ দেওয়া এক লাইনের diff হয়।
  • সুসংগত ইনডেন্টেশন (২ বা ৪ স্পেস) ক্লজ ও সাবকোয়েরির ভেতরে নেস্টিং এক নজরে দেখায়।
  • স্টেটমেন্টের সমাপ্তি: প্রতিটি স্টেটমেন্ট ; দিয়ে শেষ করুন, যাতে একাধিক স্টেটমেন্টের স্ক্রিপ্ট দ্ব্যর্থহীন হয়।

সমর্থিত SQL ডায়ালেক্ট

Standard SQL, PostgreSQL, MySQL, MariaDB, SQLite, Microsoft SQL Server (T-SQL), Oracle PL/SQL, Google BigQuery, Snowflake, Amazon Redshift, Spark SQL, Trino/Presto, Hive, IBM Db2, Couchbase N1QL, SingleStore ও TiDB। কোনো কোয়েরি পার্স না হলে আরও নির্দিষ্ট ডায়ালেক্ট চেষ্টা করুন: @variables, $1 প্যারামিটার ও ভেন্ডর-নির্দিষ্ট অপারেটর কেবল নিজ নিজ ডায়ালেক্টেই চেনা যায়।

মিনিফায়ার কী করে

মিনিফাই মোড --, # ও /* */ কমেন্ট সরায়, হোয়াইটস্পেস ও লাইন ব্রেককে একটি স্পেসে সংকুচিত করে, এবং কমা ও বন্ধনীর চারপাশের স্পেস বাদ দেয়। স্ট্রিং লিটারাল ও কোটযুক্ত identifier ('…', "…", `…`, […], $$…$$) বাইট-বাই-বাইট কপি হয়, তাই কোয়েরির অর্থ কখনো বদলায় না।

সচরাচর জিজ্ঞাসিত প্রশ্ন

আমার SQL কি সার্ভারে পাঠানো হয়?
না। ফরম্যাটিং আপনার ব্রাউজারে চলা ওপেন-সোর্স sql-formatter লাইব্রেরি ব্যবহার করে। টেবিলের নাম, গ্রাহকের ডেটা বা ক্রেডেনশিয়ালযুক্ত কোয়েরি আপনার মেশিনেই থাকে।
ফরম্যাট করলে কি কোয়েরির কাজ বদলায়?
না। শুধু হোয়াইটস্পেস, লাইন ব্রেক এবং (আপনি চাইলে) কিওয়ার্ডের কেস বদলায়। Identifier, স্ট্রিং লিটারাল ও কমেন্ট যেমন লেখা তেমনই থাকে।
বৈধ SQL-এও পার্স ত্রুটি আসে কেন?
কোয়েরিটি সম্ভবত অন্য কোনো ডেটাবেসের নিজস্ব সিনট্যাক্স ব্যবহার করে। মিলে যাওয়া ডায়ালেক্ট বেছে নিন, যেমন ::type cast-এর জন্য PostgreSQL বা [bracketed] নাম ও @params-এর জন্য SQL Server।
একসাথে কয়েকটি স্টেটমেন্ট কি ফরম্যাট করা যায়?
হ্যাঁ। স্টেটমেন্টগুলো সেমিকোলন দিয়ে আলাদা করুন। আউটপুটে এদের মাঝে কতগুলো ফাঁকা লাইন থাকবে তা বেছে নিতে পারেন।
কিওয়ার্ডের কেস কি আমার কলামের নাম বদলে দেবে?
না। শুধু সংরক্ষিত কিওয়ার্ড, ডেটা টাইপ ও বিল্ট-ইন ফাংশনের কেস বদলায়। টেবিল ও কলামের নাম মূল বানানেই থাকে।

সম্পর্কিত টুল