DevToys Web Pro iconDevToys Web Proব্লগ
আমাদের রেট দিন:
ব্রাউজার এক্সটেনশন ব্যবহার করে দেখুন:

SQL ফরম্যাটার

কনফিগারেশন

  • SQL ডায়ালেক্ট

  • ইনডেন্টেশন

  • ইনডেন্ট স্টাইল

  • কীওয়ার্ডের কেস

ইনপুট

  • আউটপুট

  • Loading editor...
    Loading editor...
    প্রযুক্তিগত বিবরণ

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

    টুলটি কী করে

    SQL ফরম্যাটার হলো একটি ডেভেলপার ইউটিলিটি, যা আনফরম্যাটেড SQL কুয়েরিগুলোকে পাঠযোগ্য, একরূপ ইন্ডেন্ট করা কোডে রূপান্তর করে। এটি SQL স্টেটমেন্ট পার্স করে, কীওয়ার্ড, ক্লজ এবং এক্সপ্রেশন শনাক্ত করে, তারপর সঠিক ইন্ডেন্টেশন ও লাইন ব্রেকসহ পুনরায় ফরম্যাট করে। টুলটি SQL beautifier এবং SQL prettifier—দুইভাবেই কাজ করে, ফলে কমপ্যাক্ট এক-লাইনের কুয়েরিগুলো পাঠযোগ্য হয়। যখন আপনাকে অনলাইনে sql ফরম্যাট করতে হয়, এই ব্রাউজার-ভিত্তিক টুল তাৎক্ষণিক ফল দেয়। এতে MySQL, PostgreSQL, SQL Server, SQLite, BigQuery, Snowflake এবং আরও অনেক ডেটাবেস সিস্টেমের জন্য ডায়ালেক্ট প্রিসেট রয়েছে, যা ভেন্ডর-নির্দিষ্ট সিনট্যাক্সের জন্য best-effort সাপোর্ট দেয়। SQL query formatter SELECT স্টেটমেন্ট, INSERT কুয়েরি, UPDATE কমান্ড, CREATE TABLE ডেফিনিশন, এবং join, subquery ও CTE-সহ জটিল কুয়েরি হ্যান্ডেল করতে পারে। ফরম্যাটারটি কীওয়ার্ডের casing (uppercase বা lowercase) স্ট্যান্ডার্ডাইজ করে এবং অপারেটর ও ক্লজের চারপাশে একরূপ স্পেসিং প্রয়োগ করে।

    ডেভেলপারদের সাধারণ ব্যবহারক্ষেত্র

    ডেভেলপাররা কোড রিভিউয়ের সময় ডেটাবেস কুয়েরি পাঠযোগ্য করতে, কুয়েরি পারফরম্যান্স ডিবাগ করতে, বা ডেটাবেস স্কিমা ডকুমেন্ট করতে SQL ফরম্যাটার ব্যবহার করেন। একটি SQL ফরম্যাটার লজিক্যাল এরর, missing join, বা অদক্ষ কুয়েরি স্ট্রাকচার শনাক্ত করতে সাহায্য করে। অনেক ডেভেলপার sql pretty print করতে SQL ফরম্যাটার ব্যবহার করেন, ফলে টিম জুড়ে কুয়েরি স্টাইল স্ট্যান্ডার্ড হয় এবং ইন্ডেন্টেশন ও কীওয়ার্ড casing একরূপ থাকে। খারাপভাবে ফরম্যাট করা SQL থাকা লিগ্যাসি কোডবেস নিয়ে কাজ করার সময়, বা অ্যাপ্লিকেশন লগ থেকে এক-লাইনের স্ট্রিং হিসেবে থাকা কুয়েরি বের করার সময় টুলটি মূল্যবান। ডকুমেন্টেশন, প্রেজেন্টেশন, বা টিম মেম্বারদের সাথে শেয়ার করার জন্য কুয়েরি প্রস্তুত করতেও SQL ফরম্যাটার সাহায্য করে।

    ডেটা ফরম্যাট, টাইপ বা ভ্যারিয়েন্ট

    SQL ফরম্যাটারগুলো বিভিন্ন SQL ডায়ালেক্ট হ্যান্ডেল করে, যেগুলোর প্রত্যেকটির নিজস্ব সিনট্যাক্স ফিচার রয়েছে। ফরম্যাটারটি MySQL, PostgreSQL, SQL Server, SQLite, BigQuery, Snowflake এবং আরও অনেক ডেটাবেস সিস্টেমের জন্য ডায়ালেক্ট প্রিসেট দেয়, ভেন্ডর-নির্দিষ্ট সিনট্যাক্সের জন্য best-effort সাপোর্টসহ। MySQL backtick আইডেন্টিফায়ার এবং CONCAT-এর মতো নির্দিষ্ট ফাংশন সমর্থন করে। PostgreSQL dollar-quoted স্ট্রিং এবং অ্যারে সিনট্যাক্স ব্যবহার করে। SQL Server-এ TOP-এর মতো T-SQL এক্সটেনশন এবং নির্দিষ্ট ডেটা টাইপ থাকে। ফরম্যাটারটি বিভিন্ন ইন্ডেন্টেশন স্টাইল সমর্থন করে: standard (ক্লজগুলো aligned), tabular left (কীওয়ার্ড right-aligned), এবং tabular right (কীওয়ার্ড left-aligned)। এটি DDL স্টেটমেন্ট (CREATE, ALTER, DROP), DML স্টেটমেন্ট (SELECT, INSERT, UPDATE, DELETE), এবং DCL স্টেটমেন্ট (GRANT, REVOKE) ফরম্যাট করতে পারে। CTE, window function, এবং nested subquery-সহ জটিল কুয়েরিগুলো উপযুক্ত ইন্ডেন্টেশন লেভেলসহ হ্যান্ডেল করা হয়।

    উদাহরণস্বরূপ, এমন একটি কমপ্যাক্ট কুয়েরি:

    SELECT u.id,u.name,o.total FROM users u JOIN orders o ON u.id=o.user_id WHERE u.created_at>'2024-01-01' ORDER BY o.total DESC LIMIT 10

    সঠিক ইন্ডেন্টেশনসহ ফরম্যাট হয়ে যায়:

    SELECT
            u.id,
            u.name,
            o.total
          FROM
            users u
            JOIN orders o ON u.id = o.user_id
          WHERE
            u.created_at > '2024-01-01'
          ORDER BY
            o.total DESC
          LIMIT
            10

    সাধারণ ভুল ও এজ কেস

    SQL ফরম্যাটারগুলো ভেন্ডর-নির্দিষ্ট এক্সটেনশন বা নন-স্ট্যান্ডার্ড SQL সিনট্যাক্স নিয়ে সমস্যায় পড়তে পারে, যা স্ট্যান্ডার্ড পার্সিং নিয়মে ফিট করে না। quoted identifier ডেটাবেসভেদে ভিন্ন: PostgreSQL ব্যবহার করে "User", SQL Server ব্যবহার করে [User], এবং MySQL backtick ব্যবহার করে `user`। parameter placeholder-ও ভিন্ন: PostgreSQL ব্যবহার করে $1, MySQL ব্যবহার করে ?, এবং SQL Server ব্যবহার করে @id। নির্বাচিত ডায়ালেক্টের ওপর নির্ভর করে ফরম্যাটার সবসময় এগুলো সঠিকভাবে হ্যান্ডেল নাও করতে পারে। SQL-এর কমেন্ট (single-line এবং block comment—দুই স্টাইলই) সঠিকভাবে সংরক্ষণ করা জরুরি, কারণ কিছু ফরম্যাটার এগুলো ভুলভাবে হ্যান্ডেল করতে পারে। জটিল control flow-সহ stored procedure, function, এবং trigger একরূপভাবে ফরম্যাট করা চ্যালেঞ্জিং হতে পারে। স্ট্রিং হিসেবে তৈরি করা dynamic SQL সঠিকভাবে ফরম্যাট নাও হতে পারে, কারণ ফরম্যাটার এটিকে string literal হিসেবে দেখে। কিছু ফরম্যাটার CASE স্টেটমেন্ট, window function, বা জটিল JOIN কন্ডিশন ভুলভাবে হ্যান্ডেল করতে পারে। ডেভেলপারদের যাচাই করা উচিত যে ফরম্যাটিং কুয়েরির সেমান্টিক্স পরিবর্তন করছে না—বিশেষ করে operator precedence বা function call সম্পর্কিত এজ কেসে।

    কোডের বদলে কখন এই টুল ব্যবহার করবেন

    দ্রুত কুয়েরি ফরম্যাটিং, একবারের কাজ, বা আপনার ডেভেলপমেন্ট এনভায়রনমেন্টের বাইরে কাজ করার সময় ব্রাউজার-ভিত্তিক SQL ফরম্যাটার ব্যবহার করুন। লগ, ডকুমেন্টেশন, বা শেয়ার করা কোড স্নিপেটে পাওয়া SQL কুয়েরি ফরম্যাট করার জন্য এটি আদর্শ। প্রোডাকশন কোডের জন্য IDE-তে ইন্টিগ্রেটেড ফরম্যাটার বা এমন কমান্ড-লাইন টুল ব্যবহার করুন যা pre-commit হুক এবং CI/CD পাইপলাইনে ইন্টিগ্রেট করা যায়। ডেটাবেস ম্যানেজমেন্ট টুলগুলোতে প্রায়ই বিল্ট-ইন ফরম্যাটার থাকে, যা আপনার নির্দিষ্ট ডেটাবেস স্কিমা বোঝে। ব্রাউজার টুল ad-hoc ফরম্যাটিংয়ে দারুণ, আর কোড-ভিত্তিক সমাধান সামঞ্জস্য, অটোমেশন এবং ভার্সন কন্ট্রোলের সাথে ইন্টিগ্রেশন দেয়। বড় কোডবেসের জন্য অটোমেটেড SQL ফরম্যাটিং সব ডেটাবেস কুয়েরি জুড়ে একরূপ স্টাইল নিশ্চিত করে।