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 কোড অত্যন্ত গুরুত্বপূর্ণ। অগোছালো, একক লাইনে লেখা বা অনিয়মিত ইনডেন্টেশনের SQL কুয়েরি পড়া এবং তার ভেতরের লজিক বোঝা বেশ কঠিন। যখন একাধিক ডেভেলপার বা অ্যানালিস্ট একই প্রজেক্টে কাজ করেন, তখন কোডের পঠনযোগ্যতা সরাসরি কাজের গতি ও নির্ভুলতার ওপর প্রভাব ফেলে। সুবিন্যস্ত SQL কোড কোলাবোরেশন বা যৌথ কাজকে সহজ করে এবং কোডের ত্রুটি বা বাগ খুঁজে বের করার প্রক্রিয়াকে ত্বরান্বিত করে।

"SQL ফরম্যাটার" টুলটি মূলত এই জটিলতা দূর করার জন্য তৈরি করা হয়েছে। এটি যেকোনো অগোছালো SQL কোডকে সুনির্দিষ্ট নিয়মে সাজিয়ে তাৎক্ষণিকভাবে পঠনযোগ্য করে তোলে। একই সাথে, এটি কুয়েরির প্রতিটি অংশের কাজ সহজ বাংলায় বিশ্লেষণ করে ব্যবহারকারীকে বুঝিয়ে দেয়।

ইনপুট প্যারামিটার এবং কাস্টমাইজেশন অপশন

টুলটিতে আপনার প্রয়োজন অনুযায়ী SQL কোড ফরম্যাট করার জন্য বেশ কিছু ইনপুট অপশন এবং কাস্টমাইজেশন সুবিধা রয়েছে:

  • SQL ইনপুট: আপনি যে SQL কুয়েরিটি ফরম্যাট করতে চান তা এখানে পেস্ট করতে হবে। ইনপুট হিসেবে সর্বোচ্চ ৩০০,০০০ অক্ষর পর্যন্ত কোড প্রদান করা যাবে।
  • ডায়ালেক্ট: বিভিন্ন ডেটাবেস ইঞ্জিনের নিজস্ব সিনট্যাক্স ও নিয়ম থাকে। টুলটিতে নিচের ডায়ালেক্টগুলো সমর্থিত:
    • Standard SQL
    • PostgreSQL
    • MySQL
    • MariaDB
    • SQL Server (T-SQL)
    • Oracle (PL/SQL)
    • SQLite
    • BigQuery
    • Snowflake
    • Spark SQL
  • ইনডেন্ট: কোডের ধাপ বা অনুচ্ছেদগুলো সাজানোর জন্য ইনডেন্টেশন স্টাইল নির্ধারণ করা যায়। আপনি ২ স্পেস, ৪ স্পেস অথবা ট্যাব (tab) বেছে নিতে পারেন।
  • কীওয়ার্ড: SQL-এর মূল কীওয়ার্ডগুলোর কেস (Case) কেমন হবে তা নির্ধারণ করা যায়। এর অপশনগুলো হলো: UPPER, lower অথবা Keep (যেভাবে ইনপুটে আছে সেভাবেই রাখা)।

আউটপুট এবং কুয়েরির পরিসংখ্যান

ইনপুট দেওয়ার পর টুলটি তাৎক্ষণিকভাবে প্রক্রিয়াকরণ সম্পন্ন করে এবং নিচের আউটপুটগুলো প্রদর্শন করে:

  • ফরম্যাট করা SQL: আপনার নির্বাচিত ডায়ালেক্ট এবং স্টাইল অনুযায়ী সাজানো সুবিন্যস্ত SQL কোড।
  • লাইন: ফরম্যাট করা SQL কোডে মোট কতটি লাইন রয়েছে তার সংখ্যা।
  • অক্ষর: ফরম্যাট করা কোডে মোট অক্ষরের সংখ্যা।
  • সাইজ: ফরম্যাট করা ফাইলের সামগ্রিক আকার বা সাইজ।
  • ব্যাখ্যা: কুয়েরির প্রতিটি ক্লজ বা অংশ কী কাজ করছে তার একটি বিস্তারিত বিবরণ।

কুয়েরির কাঠামোগত বিশ্লেষণ এবং ক্লজের ভূমিকা

এই টুলের একটি অন্যতম প্রধান বৈশিষ্ট্য হলো এটি কুয়েরির কাঠামোগত বিশ্লেষণ প্রদান করে। এটি কোনো ডেটাবেস এক্সিকিউশন প্ল্যান নয়, বরং কুয়েরির সিনট্যাক্স ও গঠন বিশ্লেষণ করে প্রতিটি অংশের কাজ ব্যাখ্যা করে। ফলে আংশিক কোড বা কোনো নির্দিষ্ট ভেন্ডরের নিজস্ব SQL-এর ক্ষেত্রেও এই ব্যাখ্যা সমানভাবে কাজ করে।

বিশ্লেষণে মূলত দুই ধরনের তথ্য থাকে: স্টেটমেন্টের ধরন (Kind) এবং ক্লজের ভূমিকা (Role)।

স্টেটমেন্টের ধরন (Kind)

কুয়েরিতে ব্যবহৃত স্টেটমেন্টের মূল উদ্দেশ্য অনুযায়ী এটি নিচের ক্যাটাগরিগুলো চিহ্নিত করে:

স্টেটমেন্টের ধরন কাজের বিবরণ
SELECT একটি কুয়েরি যা কোনো পরিবর্তন না করেই রো রিড করে এবং রিটার্ন করে।
INSERT টেবিলে নতুন রো (row) যোগ করে।
UPDATE ইতিমধ্যে বিদ্যমান রো-এর মানগুলো পরিবর্তন করে।
DELETE টেবিল থেকে রো (row) মুছে ফেলে।
CREATE টেবিল, ভিউ বা ইনডেক্সের মতো নতুন কোনো অবজেক্ট তৈরি করে।
ALTER বিদ্যমান কোনো অবজেক্টের সংজ্ঞা পরিবর্তন করে।
DROP ডেটাবেস থেকে কোনো অবজেক্ট স্থায়ীভাবে মুছে ফেলে।
TRUNCATE একটি টেবিল খালি করে এবং এর প্রতিটি রো ডিলিট করে।
WITH পরবর্তী কুয়েরির জন্য একটি নামযুক্ত অস্থায়ী ফলাফল (CTE) তৈরি করে।
MERGE একটি সম্মিলিত অপারেশনে রো ইনসার্ট, আপডেট বা ডিলিট করে।
OTHER একটি SQL স্টেটমেন্ট।

ক্লজের ভূমিকা (Role)

একটি স্টেটমেন্টের ভেতরে থাকা প্রতিটি ক্লজের সুনির্দিষ্ট কাজ নিচে দেওয়া হলো:

  • 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 কুয়েরি যদি ৩০০,০০০ অক্ষরের চেয়ে বড় হয়, তবে টুলটি প্রসেস করবে না এবং "এই কুয়েরিটি প্রসেস করার জন্য অত্যন্ত বড়। অনুগ্রহ করে ছোট ফাইল চেষ্টা করুন।" বার্তাটি দেখাবে।
  • সিনট্যাক্স ত্রুটি: ইনপুট কোডে কোনো সিনট্যাক্স ভুল থাকলে টুলটি ফরম্যাট করতে পারবে না এবং "এই SQL ফরম্যাট করা যায়নি — সিনট্যাক্স পরীক্ষা করুন।" ত্রুটি বার্তাটি প্রদর্শন করবে। তবে এই ত্রুটি ঘটলেও পূর্ববর্তী সফল আউটপুটটি স্ক্রিন থেকে মুছে যাবে না।
  • ক্লিয়ার করার নিয়ম: ইন্টারফেসের "মুছে ফেলুন" বাটনে ক্লিক করলে ইনপুট ও আউটপুট উভয় অংশই সম্পূর্ণ খালি হয়ে যাবে, সব ত্রুটির বিবরণ লুকিয়ে ফেলা হবে এবং স্ক্রিনে "মুছে ফেলা হয়েছে।" লেখাটি প্রদর্শিত হবে।
  • স্টেটমেন্টের সীমাবদ্ধতা: কোনো কুয়েরিতে একাধিক স্টেটমেন্ট থাকলে এবং তার সংখ্যা ২৫টি অতিক্রম করলে, টুলটি কেবল প্রথম ২৫টি স্টেটমেন্টের ব্যাখ্যা দেখাবে এবং সাথে "শুধুমাত্র প্রথম ২৫টি দেখানো হয়েছে।" নোটটি যুক্ত করে দেবে।
  • লোকাল স্টোরেজ: ব্যবহারকারীর কাজের সুবিধার্থে ড্রাফট কোড এবং থিম সংক্রান্ত পছন্দগুলো ব্রাউজারের লোকাল মেমরিতে সংরক্ষিত থাকে।

ডেটা প্রসেসিং এবং গোপনীয়তা

এই টুলটি ব্যবহারের ক্ষেত্রে আপনার ডেটার নিরাপত্তা সম্পূর্ণভাবে বজায় থাকে। আপনার পেস্ট করা 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 কখনোই এই পেজ ছেড়ে বাইরে যায় না।