SQL ফরম্যাটার
এলোমেলো SQL কোয়েরি এখানে বসান। টুলটি কীওয়ার্ড বড় হাতের করবে, প্রতিটি বড় ক্লজ নতুন লাইনে বসাবে এবং বাকি অংশ দুই স্পেস ইন্ডেন্ট করবে। স্ট্রিং লিটারেলের ভেতরের লেখা ঠিক যেমন আছে তেমনই থাকবে। কোয়েরিটি শুধু আপনার ব্রাউজারেই সাজানো হয়; এটি কোথাও পাঠানো বা সংরক্ষণ করা হয় না।
ফরম্যাটের নিয়ম: SELECT, FROM, WHERE, JOIN, ON, GROUP BY, ORDER BY, AND, OR, INSERT, UPDATE, DELETE, VALUES, LIMIT — এই কীওয়ার্ডগুলো বড় হাতের হবে। SELECT, FROM, WHERE, GROUP BY, ORDER BY, JOIN, ON, LIMIT, INSERT, VALUES, UPDATE, SET, DELETE — প্রতিটি নতুন লাইনে শুরু হবে। বাকি লাইন দুই স্পেস ইন্ডেন্ট হবে।
ডেটাবেস নিয়ে কাজ করতে গেলে SQL কোয়েরি লিখতে হয় প্রতিদিন। কিন্তু লম্বা কোয়েরি এক লাইনে লেখা থাকলে পড়া কঠিন হয়ে যায়। কোন অংশে কোন টেবিল থেকে তথ্য নেওয়া হচ্ছে, কোন শর্তে ছাঁকা হচ্ছে, কোন ক্রমে সাজানো হচ্ছে — এসব বুঝতে চোখ আটকে যায়। বিশেষ করে অন্যের লেখা কোয়েরি, পুরোনো প্রজেক্টের কোয়েরি বা লগ ফাইল থেকে পাওয়া কোয়েরি প্রায়ই এক লাইনে জট পাকানো থাকে। তখন ভুল খুঁজে বের করা বা কোয়েরিতে ছোট একটা বদল আনাও ঝামেলার হয়ে ওঠে। SQL ফরম্যাটার এই সমস্যার সহজ সমাধান। এটি এলোমেলো কোয়েরিকে সুন্দরভাবে সাজিয়ে দেয়, যাতে প্রতিটি অংশ আলাদা লাইনে চোখে পড়ে। সাজানো কোয়েরি পড়া সহজ, ভুল ধরা সহজ, আর অন্যকে দেখানোও সহজ।
কীভাবে ব্যবহার করবেন
- উপরের বড় বাক্সে আপনার SQL কোয়েরি লিখুন বা পেস্ট করুন। কোয়েরিটি এক লাইনে থাকলেও চলবে, আবার এলোমেলোভাবে ভাঙা থাকলেও চলবে।
- ফরম্যাট করুন বোতামে ক্লিক করুন। সঙ্গে সঙ্গে সাজানো কোয়েরি নিচে দেখা যাবে।
- ফলাফল কপি করুন বোতামে ক্লিক করে সাজানো কোয়েরিটি কপি করুন। তারপর আপনার কোড এডিটর বা ডেটাবেস টুলে বসান।
- নতুন কোয়েরি সাজাতে চাইলে রিসেট করুন বোতামে ক্লিক করুন। পুরোনো লেখা মুছে যাবে।
- প্রথমবার ব্যবহার করলে উদাহরণ বসান বোতামে ক্লিক করুন। একটি বাস্তব কোয়েরি বসবে এবং সঙ্গে সঙ্গে সাজানো ফলাফল দেখা যাবে।
একটি বাস্তব উদাহরণ
ধরুন, আপনার কাছে একটি এক লাইনের কোয়েরি আছে, যা সক্রিয় গ্রাহকদের বড় অর্ডারগুলো খুঁজে বের করে। ইনপুটটি হলো:
select id, name, email from users u join orders o on u.id = o.user_id where u.status = 'active' and o.total > 100 order by o.created_at desc limit 10;
এই টুলে বসিয়ে ফরম্যাট করলে ফলাফল হবে:
SELECT id, name, email FROM users u JOIN orders o ON u.id = o.user_id WHERE u.status = 'active' AND o.total > 100 ORDER BY o.created_at desc LIMIT 10;
এখন এক নজরেই বোঝা যাচ্ছে কোয়েরিটি কী করছে। প্রথম লাইনে কোন কলামগুলো নেওয়া হচ্ছে, দ্বিতীয় লাইনে কোন টেবিল থেকে, তারপর দুটি টেবিল কীভাবে যুক্ত হচ্ছে, তারপর শর্তগুলো কী, শেষে সাজানো ও সংখ্যার সীমা। লক্ষ্য করুন, ‘active’ লেখাটি ছোট হাতেরই আছে, কারণ এটি স্ট্রিং লিটারেলের ভেতরের মান। টুলটি স্ট্রিংয়ের ভেতরের লেখা কখনো বদলায় না। আর desc শব্দটি ছোট হাতেরই আছে, কারণ এটি কীওয়ার্ডের তালিকায় নেই। ইনপুটটি ছিল ১৫০ অক্ষরের, আর আউটপুটটি হয়েছে ১৫২ অক্ষরের।
ফলাফল বুঝবেন কীভাবে
ফলাফলের প্রতিটি লাইনের একটা অর্থ আছে। SELECT লাইনে দেখবেন কোন কলামগুলো ফেরত আসবে। FROM লাইনে দেখবেন মূল টেবিল কোনটি। JOIN ও ON লাইনে দেখবেন দ্বিতীয় টেবিলটি কীভাবে যুক্ত হয়েছে। WHERE লাইনে শর্তগুলো থাকবে, আর AND দিয়ে শুরু হওয়া লাইনগুলো দুই স্পেস ভেতরে থাকবে, যাতে বোঝা যায় এগুলো একই শর্তের অংশ। ORDER BY লাইনে দেখবেন ফলাফল কোন কলাম অনুযায়ী সাজানো হবে। LIMIT লাইনে দেখবেন কয়টি সারি ফেরত আসবে। নিচে ইনপুট ও আউটপুটের অক্ষর সংখ্যা দেখানো হয়, যাতে বুঝতে পারেন ফরম্যাট করতে গিয়ে লেখা বাড়ল না কমল।
সাধারণ ভুল
প্রথম ভুল হলো ফরম্যাট করা কোয়েরি দেখে ভাবা যে কোয়েরিটি ঠিকঠাক চলবে। এই টুল শুধু সাজায়, যাচাই করে না। ভুল টেবিলের নাম, ভুল কলামের নাম বা ভুল সিনট্যাক্স থাকলেও টুলটি সাজিয়ে দেবে। তাই চালানোর আগে ডেটাবেসে পরীক্ষা করুন। দ্বিতীয় ভুল হলো সেমিকোলন না দেওয়া। সেমিকোলন না থাকলেও টুলটি কাজ করবে, তবে ডেটাবেস টুলে চালাতে গেলে অনেক সময় সেমিকোলন লাগে। তৃতীয় ভুল হলো স্ট্রিংয়ের ভেতরে কীওয়ার্ড থাকলে তা বড় হাতের হবে ভাবা। যেমন ‘where’ লেখা স্ট্রিংয়ের ভেতরে থাকলে তা ছোট হাতেরই থাকবে, আর সেটাই ঠিক। চতুর্থ ভুল হলো অনেক বড় কোয়েরি একবারে বসিয়ে ফলাফল না দেখা। পঞ্চম ভুল হলো ফরম্যাট করা কোয়েরি কপি না করে হাতে লিখে নেওয়া। এতে আবার ভুল হওয়ার ঝুঁকি থাকে, তাই সবসময় কপি বোতাম ব্যবহার করুন।
সতর্কতা
এই টুলটি আপনার কোয়েরি কোথাও পাঠায় না, সব কাজ ব্রাউজারেই হয়। তবুও পাসওয়ার্ড বা গোপন তথ্য আছে এমন কোয়েরি কোনো অনলাইন টুলে বসানোর আগে সতর্ক থাকুন। এই টুলটি SQL যাচাই করে না, তাই সাজানো কোয়েরি চালানোর আগে আসল ডেটাবেসে নয়, প্রথমে পরীক্ষামূলক ডেটাবেসে চালিয়ে দেখুন। বিশেষ করে UPDATE বা DELETE কোয়েরি চালানোর আগে WHERE শর্তটি ঠিক আছে কি না, তা দুবার দেখে নিন। ভুল শর্তে DELETE চালালে অনেক তথ্য হারিয়ে যেতে পারে।
FAQ
প্রশ্ন: এই টুল কি আমার SQL কোয়েরি যাচাই করে যে সেটি চলবে কি না?
উত্তর: না, এই টুল শুধু কোয়েরিটিকে সুন্দরভাবে সাজায়। কোয়েরিটি ঠিকঠাক চলবে কি না, তা যাচাই করে না। চালানোর আগে আপনার ডেটাবেস টুলে পরীক্ষা করুন।
প্রশ্ন: স্ট্রিংয়ের ভেতরের লেখা কি বদলে যাবে?
উত্তর: না, একক উদ্ধৃতি, দ্বিগুণ উদ্ধৃতি বা ব্যাকটিকের ভেতরের লেখা ঠিক যেমন আছে তেমনই থাকবে। যেমন ‘active’ ছোট হাতেরই থাকবে।
প্রশ্ন: আমার কোয়েরি কি সার্ভারে পাঠানো হয়?
উত্তর: না, সব কাজ আপনার ব্রাউজারেই হয়। কোয়েরিটি কোথাও পাঠানো বা সংরক্ষণ করা হয় না।
প্রশ্ন: কোন কোন কীওয়ার্ড বড় হাতের হবে?
উত্তর: SELECT, FROM, WHERE, JOIN, ON, GROUP BY, ORDER BY, AND, OR, INSERT, UPDATE, DELETE, VALUES, LIMIT সহ সাধারণ কীওয়ার্ডগুলো বড় হাতের হবে। টেবিল ও কলামের নাম যেমন আছে তেমনই থাকবে।