SQL ফরম্যাটার ও বিউটিফায়ার
এলোমেলো কোয়েরি পেস্ট করুন আর পান পরিষ্কার, সুসংগতভাবে ইনডেন্ট করা SQL। ১৭টি ডায়ালেক্ট, কিওয়ার্ড কেসিং ও এক-ক্লিকের মিনিফায়ার, সবই আপনার ব্রাউজারে।
ব্রাউজারেই চলেসাইন-আপ লাগে নাকিছুই আপলোড হয় না
SQL ফরম্যাটার কীভাবে ব্যবহার করবেন
- ইনপুট বক্সে এক বা একাধিক SQL স্টেটমেন্ট পেস্ট করুন, অথবা একটি
.sqlফাইল খুলুন। - আপনার ডেটাবেসের ডায়ালেক্ট বেছে নিন, যাতে এর সিনট্যাক্স, যেমন
::cast,[brackets], backtick বা$$স্ট্রিং, সঠিকভাবে পার্স হয়। - কিওয়ার্ডের কেস (UPPER, lower বা অপরিবর্তিত), ইনডেন্টেশন ও স্টেটমেন্টের মাঝে ফাঁকা লাইনের সংখ্যা সেট করুন।
- লগ, ORM বা URL প্যারামিটারের জন্য কমেন্ট ও হোয়াইটস্পেস বাদ দিতে মিনিফাই-এ যান।
- ফলাফল কপি করুন বা
.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-এও পার্স ত্রুটি আসে কেন?
::type cast-এর জন্য PostgreSQL বা [bracketed] নাম ও @params-এর জন্য SQL Server।