এসকিউএল ফরম্যাটার এবং ভ্যালিডেটর: পরিষ্কার, ফরম্যাট এবং এসকিউএল সিনট্যাক্স পরীক্ষা করুন
এসকিউএল কোয়েরিগুলি সঠিক ইনডেন্টেশন এবং ক্যাপিটালাইজেশন সহ ফরম্যাট করুন এবং সিনট্যাক্স যাচাই করুন। আপনার ডেটাবেস কোয়েরিগুলিকে তাত্ক্ষণিকভাবে পড়ার যোগ্য এবং ত্রুটিমুক্ত করে তোলে।
এসকিউএল ফরম্যাটার এবং ভ্যালিডেটর
আপনার এসকিউএল কোয়েরিগুলি সঠিক ইন্ডেন্টেশন এবং সিনট্যাক্স চেকিং সহ ফরম্যাট এবং ভ্যালিডেট করার জন্য একটি সহজ টুল।
ডকুমেন্টেশন
SQL ফরম্যাটার এবং ভ্যালিডেটর
পরিচিতি
SQL ফরম্যাটার এবং ভ্যালিডেটর হল একটি শক্তিশালী এবং ব্যবহারকারী-বান্ধব অনলাইন টুল যা ডেভেলপার, ডেটাবেস প্রশাসক এবং SQL শিক্ষার্থীদের তাদের SQL কোয়েরিগুলি কার্যকরভাবে ফরম্যাট এবং ভ্যালিডেট করতে সাহায্য করার জন্য ডিজাইন করা হয়েছে। এই বিনামূল্যের টুলটি স্বয়ংক্রিয়ভাবে SQL কমান্ডগুলিকে সঠিক ইন্ডেন্টেশন, ক্যাপিটালাইজেশন এবং স্পেসিং সহ স্ট্যান্ডার্ড SQL সিনট্যাক্স নিয়ম অনুযায়ী ফরম্যাট করে, আপনার কোয়েরিগুলিকে আরও পড়তে এবং রক্ষণাবেক্ষণ করতে সহজ করে তোলে। এছাড়াও, এটি আপনার ডেটাবেসের বিরুদ্ধে কার্যকর করার আগে সাধারণ সিনট্যাক্স ত্রুটি চিহ্নিত করতে ভ্যালিডেশন চেক করে, সম্ভাব্যভাবে ডিবাগিং সময়ের ঘণ্টা বাঁচায়। আপনি জটিল ডেটাবেস কোয়েরি লিখছেন, SQL শিখছেন বা কেবল অগোছালো SQL কোড পরিষ্কার করতে চান, এই ফরম্যাটার এবং ভ্যালিডেটর একটি স্বজ্ঞাত ইন্টারফেস প্রদান করে যা আপনার SQL ওয়ার্কফ্লোকে তাত্ক্ষণিকভাবে উন্নত করে।
এই টুলটি কীভাবে ব্যবহার করবেন
SQL ফরম্যাটার এবং ভ্যালিডেটর ব্যবহার করা সহজ:
- আপনার SQL কোয়েরি প্রবেশ করান: আপনার SQL কোয়েরিটি ইনপুট টেক্সট এলাকায় টাইপ বা পেস্ট করুন।
- স্বয়ংক্রিয় ফরম্যাটিং: টুলটি স্বয়ংক্রিয়ভাবে আপনার SQL কে রিয়েল-টাইমে ফরম্যাট করে, আউটপুট এলাকায় ফলাফল প্রদর্শন করে।
- ভ্যালিডেশন: টুলটি স্বয়ংক্রিয়ভাবে আপনার SQL সিনট্যাক্স ত্রুটির জন্য চেক করে এবং পাওয়া সমস্যাগুলি প্রদর্শন করে।
- ফরম্যাট করা SQL কপি করুন: আপনার অ্যাপ্লিকেশন বা ডেটাবেস টুলগুলিতে ব্যবহারের জন্য ফরম্যাট করা SQL কপি করতে "কপি" বোতামে ক্লিক করুন।
ইন্টারফেসটি স্বজ্ঞাত এবং প্রতিক্রিয়াশীল হতে ডিজাইন করা হয়েছে, ডেস্কটপ এবং মোবাইল ডিভাইস উভয়েই নির্বিঘ্নে কাজ করে।
SQL ফরম্যাটিং বৈশিষ্ট্য
স্বয়ংক্রিয় কীওয়ার্ড ক্যাপিটালাইজেশন
ফরম্যাটারটি স্বয়ংক্রিয়ভাবে SQL কীওয়ার্ড যেমন SELECT, FROM, WHERE, JOIN ইত্যাদি ক্যাপিটালাইজ করে, এগুলিকে টেবিল এবং কলামের নাম থেকে আলাদা করে। এটি পড়ার যোগ্যতা উন্নত করে এবং স্ট্যান্ডার্ড SQL শৈলী রীতির অনুসরণ করে।
সঠিক ইন্ডেন্টেশন
SQL কোয়েরিগুলি তাদের যৌক্তিক কাঠামো অনুযায়ী ইন্ডেন্ট করা হয়:
- প্রধান ক্লজ (SELECT, FROM, WHERE ইত্যাদি) বাম মার্জিনে শুরু হয়
- JOIN ক্লজগুলি FROM এর অধীনে ইন্ডেন্ট করা হয়
- SELECT বিবৃতিতে কলামগুলি সজ্জিত হয়
- নেস্টেড কোয়েরিগুলি অতিরিক্ত ইন্ডেন্টেশন স্তর পায়
- WHERE ক্লজের শর্তগুলি সঠিকভাবে সজ্জিত হয়
লাইন ব্রেক এবং স্পেসিং
ফরম্যাটারটি আপনার কোয়েরিতে যৌক্তিক পয়েন্টগুলিতে লাইন ব্রেক ইনসার্ট করে:
- প্রতিটি প্রধান ক্লজের পরে (SELECT, FROM, WHERE ইত্যাদি)
- কমা দ্বারা পৃথক তালিকার আইটেমগুলির মধ্যে
- সাবকোয়েরির আগে এবং পরে
- CASE বিবৃতির উপাদানের মধ্যে
পড়ার যোগ্যতা বাড়ানোর জন্য অপারেটর, বন্ধনী এবং ক্লজগুলির মধ্যে সঠিক স্পেসিংও যোগ করা হয়।
SQL ভ্যালিডেশন বৈশিষ্ট্য
ভ্যালিডেটর সাধারণ SQL সিনট্যাক্স ত্রুটির জন্য চেক করে এবং পরিষ্কার প্রতিক্রিয়া প্রদান করে:
সিনট্যাক্স ত্রুটি সনাক্তকরণ
- অসামঞ্জস্যপূর্ণ বন্ধনী: অনুপস্থিত খোলার বা বন্ধনীর সনাক্তকরণ
- বন্ধ না হওয়া উদ্ধৃতি: বন্ধ না হওয়া স্ট্রিং লিটারেলের সনাক্তকরণ
- অনুপস্থিত সেমিকোলন: চেক করে যে বিবৃতিগুলি সেমিকোলনের সাথে শেষ হচ্ছে
- ক্লজ অর্ডার: নিশ্চিত করে যে SQL ক্লজগুলি সঠিক ক্রমে উপস্থিত হয়
সাধারণ SQL ত্রুটি
ভ্যালিডেটরটি সাধারণ যৌক্তিক ত্রুটিগুলিও চিহ্নিত করে:
- ON শর্ত ছাড়া JOIN: ON শর্ত ছাড়া JOIN ক্লজ সনাক্তকরণ
- অপূর্ণ WHERE শর্ত: অসম্পূর্ণ প্রিডিকেট সহ WHERE ক্লজ চিহ্নিত করা
- GROUP BY ছাড়া HAVING: HAVING ক্লজগুলি একটি সংশ্লিষ্ট GROUP BY ছাড়া ব্যবহার করা হচ্ছে তা ধরতে পারে
- খালি ক্লজ: খালি GROUP BY, ORDER BY, বা অন্যান্য ক্লজ সনাক্তকরণ
ভ্যালিডেশন প্রতিক্রিয়া
যখন ত্রুটি সনাক্ত করা হয়, সেগুলি একটি পরিষ্কার, ব্যবহারকারী-বান্ধব ফরম্যাটে প্রদর্শিত হয়:
- প্রতিটি ত্রুটি একটি বর্ণনামূলক বার্তা সহ তালিকাবদ্ধ করা হয়
- ত্রুটির প্রকার চিহ্নিত করা হয়
- ত্রুটি সংশোধনের জন্য পরামর্শ দেওয়া হতে পারে
SQL ফরম্যাটিং নিয়ম
SQL ফরম্যাটার এই নির্দিষ্ট নিয়মগুলি অনুসরণ করে যাতে সঙ্গতিপূর্ণ, পড়তে সহজ SQL নিশ্চিত করা যায়:
কীওয়ার্ড ক্যাপিটালাইজেশন
সমস্ত SQL কীওয়ার্ড ক্যাপিটালাইজ করা হয়, যার মধ্যে রয়েছে:
- বিবৃতি প্রকার: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP
- ক্লজ: FROM, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT
- যোগ: JOIN, INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN
- অপারেটর: AND, OR, NOT, IN, BETWEEN, LIKE, IS NULL
- ফাংশন: COUNT, SUM, AVG, MAX, MIN, CASE, WHEN, THEN, ELSE, END
ইন্ডেন্টেশন এবং লাইন ব্রেক
- প্রধান ক্লজগুলি একটি নতুন লাইনে শুরু হয়
- সাবকোয়েরিগুলি দুটি স্পেসের সাথে নেস্টিং স্তরের সাথে ইন্ডেন্ট করা হয়
- কমা দ্বারা পৃথক তালিকায় প্রতিটি আইটেম নতুন লাইনে সঠিক ইন্ডেন্টেশন সহ থাকে
- JOIN ক্লজগুলি FROM ক্লজের অধীনে ইন্ডেন্ট করা হয়
- WHERE ক্লজের শর্তগুলি পড়ার জন্য সজ্জিত হয়
উদাহরণ: ফরম্যাটিংয়ের আগে এবং পরে
ফরম্যাটিংয়ের আগে:
1select u.id, u.name, o.order_date from users u join orders o on u.id = o.user_id where o.status = "completed" group by u.id order by u.name;
2
ফরম্যাটিংয়ের পরে:
1SELECT
2 u.id,
3 u.name,
4 o.order_date
5FROM users u
6 JOIN orders o ON u.id = o.user_id
7WHERE
8 o.status = "completed"
9GROUP BY
10 u.id
11ORDER BY
12 u.name;
13
SQL ভ্যালিডেশন নিয়ম
ভ্যালিডেটর নিম্নলিখিত বিষয়গুলির জন্য চেক করে:
কাঠামোগত ভ্যালিডেশন
- সামঞ্জস্যপূর্ণ বন্ধনী: প্রতিটি খোলার বন্ধনীর একটি মেলানো বন্ধনী থাকতে হবে
- উদ্ধৃত স্ট্রিং: সমস্ত উদ্ধৃতি (একক বা দ্বৈত) সঠিকভাবে বন্ধ হতে হবে
- বিবৃতির সমাপ্তি: SQL বিবৃতিগুলি সেমিকোলনের সাথে শেষ হওয়া উচিত
- ক্লজ অর্ডার: ক্লজগুলি সঠিক ক্রমে উপস্থিত হতে হবে (FROM এর পরে SELECT, WHERE এর আগে GROUP BY, ইত্যাদি)
অর্থনৈতিক ভ্যালিডেশন
- JOIN শর্ত: প্রতিটি JOIN এর একটি ON বা USING ক্লজ থাকতে হবে
- WHERE শর্ত: WHERE ক্লজগুলির সম্পূর্ণ শর্ত থাকতে হবে
- GROUP BY প্রয়োজনীয়তা: HAVING ক্লজগুলির জন্য একটি GROUP BY ক্লজ প্রয়োজন
- কলাম রেফারেন্স: SELECT এ উল্লেখিত কলামগুলি যখন সংকলন ব্যবহার করা হয় তখন GROUP BY তে অন্তর্ভুক্ত থাকতে হবে
উদাহরণ: ভ্যালিডেশন ত্রুটি
ত্রুটিযুক্ত SQL:
1SELECT user_id, COUNT(*) FROM orders
2JOIN users
3WHERE status =
4GROUP BY
5HAVING count > 10;
6
ভ্যালিডেশন ত্রুটি:
- JOIN অনুপস্থিত ON শর্ত
- অসম্পূর্ণ WHERE শর্ত
- খালি GROUP BY ক্লজ
- HAVING ক্লজ অজ্ঞাত কলাম উল্লেখ করছে
ব্যবহার ক্ষেত্র
SQL ফরম্যাটার এবং ভ্যালিডেটর বিভিন্ন পরিস্থিতিতে মূল্যবান:
ডেটাবেস ডেভেলপমেন্ট
- কোড পর্যালোচনা: কোড পর্যালোচনার জন্য SQL ফরম্যাট করুন যাতে পড়া সহজ হয়
- ডিবাগিং: কোয়েরি কার্যকর করার আগে সিনট্যাক্স ত্রুটি চিহ্নিত করুন
- ডকুমেন্টেশন: প্রযুক্তিগত ডকুমেন্টেশনের জন্য ভাল ফরম্যাট করা SQL তৈরি করুন
- লেগেসি কোড রক্ষণাবেক্ষণ: পুরানো SQL কোয়েরি পরিষ্কার এবং স্ট্যান্ডার্ডাইজ করুন
শিক্ষা এবং শেখা
- SQL প্রশিক্ষণ: শিক্ষার্থীদের সঠিক SQL ফরম্যাটিং রীতির শেখাতে সাহায্য করুন
- স্ব-অধ্যয়ন: ডেটাবেস প্রোগ্রামিং শিখার সময় SQL সিনট্যাক্স ভ্যালিডেট করুন
- শিক্ষণ: শিক্ষামূলক সেটিংসে সঠিক SQL কাঠামো এবং ফরম্যাটিং প্রদর্শন করুন
- দক্ষতা উন্নয়ন: সঠিকভাবে সিনট্যাক্সযুক্ত SQL কোয়েরি লেখার অনুশীলন করুন
দলগত সহযোগিতা
- স্ট্যান্ডার্ডাইজেশন: একটি ডেভেলপমেন্ট দলের মধ্যে সঙ্গতিপূর্ণ SQL ফরম্যাটিং নিশ্চিত করুন
- জ্ঞান শেয়ারিং: জটিল কোয়েরিগুলি দলের সদস্যদের জন্য আরও বোঝার যোগ্য করুন
- কোড গুণমান: শেয়ার করা কোডবেসে সামগ্রিক SQL কোডের গুণমান বাড়ান
- অনবোর্ডিং: নতুন দলের সদস্যদের বিদ্যমান SQL কোয়েরি বোঝাতে সাহায্য করুন
ডেটাবেস প্রশাসন
- কোয়েরি অপটিমাইজেশন: অপটিমাইজেশনের আগে জটিল কোয়েরি ফরম্যাট করুন
- স্ক্রিপ্ট ম্যানেজমেন্ট: পড়তে সহজ ডেটাবেস রক্ষণাবেক্ষণ স্ক্রিপ্ট বজায় রাখুন
- মাইগ্রেশন স্ক্রিপ্ট: ডেটাবেস মাইগ্রেশন SQL এর সঠিকতা নিশ্চিত করুন
- অডিট প্রস্তুতি: সম্মতি অডিটের জন্য SQL কোয়েরি পরিষ্কার করুন
বিকল্প
যদিও আমাদের SQL ফরম্যাটার এবং ভ্যালিডেটর মৌলিক কার্যকারিতা প্রদান করে, বিবেচনা করার জন্য বিকল্পগুলি রয়েছে:
ইন্টিগ্রেটেড ডেভেলপমেন্ট এনভায়রনমেন্ট (IDE)
- SQL-নির্দিষ্ট IDE: DataGrip, SQL Server Management Studio বা MySQL Workbench এর মতো টুলগুলি বিল্ট-ইন ফরম্যাটিং এবং ভ্যালিডেশন অফার করে
- পেশাদার: ডেটাবেস সংযোগ, কার্যকরী এবং অন্যান্য বৈশিষ্ট্যের সাথে একীভূত
- বিরূপ: প্রায়শই ইনস্টলেশন প্রয়োজন, ব্যয়বহুল হতে পারে এবং রিসোর্স-গবেষণামূলক হতে পারে
ডেটাবেস-নির্দিষ্ট টুলস
- PostgreSQL: pgFormatter, psql with \e কমান্ড
- MySQL: MySQL Workbench ফরম্যাটার
- SQL Server: SSMS ফরম্যাটিং অপশন
- পেশাদার: নির্দিষ্ট SQL ডায়ালেক্টের জন্য অপ্টিমাইজ করা
- বিরূপ: বিভিন্ন ডেটাবেস সিস্টেমের মধ্যে পোর্টেবল নয়
কোড এডিটর এক্সটেনশন
- VS কোড এক্সটেনশন: SQL Beautify, SQL Formatter
- Sublime Text প্যাকেজ: SqlBeautifier
- পেশাদার: আপনার ডেভেলপমেন্ট পরিবেশের সাথে একীভূত
- বিরূপ: কনফিগারেশন প্রয়োজন হতে পারে, অনলাইনে সর্বদা উপলব্ধ নয়
কমান্ড-লাইন টুলস
- sqlformat: পাইথন-ভিত্তিক SQL ফরম্যাটিং টুল
- sql-formatter-cli: Node.js-ভিত্তিক ফরম্যাটার
- পেশাদার: CI/CD পাইপলাইনে একীভূত করা যেতে পারে
- বিরূপ: ইনস্টলেশন এবং কমান্ড-লাইন জ্ঞান প্রয়োজন
SQL ফরম্যাটিং এবং ভ্যালিডেশনের ইতিহাস
SQL মানের বিবর্তন
SQL (স্ট্রাকচারড কুয়েরি ল্যাঙ্গুয়েজ) 1970-এর দশকে IBM-এ বিকশিত হয়েছিল, প্রথম বাণিজ্যিক বাস্তবায়ন 1979 সালে মুক্তি পায়। আমেরিকান ন্যাশনাল স্ট্যান্ডার্ড ইনস্টিটিউট (ANSI) 1986 সালে প্রথম SQL মান প্রকাশ করে, পরে আন্তর্জাতিক সংস্থা ISO 1987 সালে প্রকাশ করে।
SQL একাধিক মানের মধ্য দিয়ে বিবর্তিত হয়েছে (SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003, SQL:2008, SQL:2011, SQL:2016, এবং SQL:2019), ফরম্যাটিং অনুশীলনগুলি কোডের পড়ার যোগ্যতা এবং রক্ষণাবেক্ষণ উন্নত করার জন্য বিকশিত হয়েছে।
SQL ফরম্যাটিং রীতির বিকাশ
SQL-এর প্রাথমিক দিনগুলিতে, ফরম্যাটিং অস্বচ্ছ এবং প্রধানত ব্যক্তিগত পছন্দের উপর ভিত্তি করে ছিল। যখন ডেটাবেস সিস্টেমগুলি আরও জটিল হয়ে উঠল এবং দলের ভিত্তিতে ডেভেলপমেন্ট সাধারণ হয়ে উঠল, তখন স্ট্যান্ডার্ডাইজড ফরম্যাটিংয়ের প্রয়োজনীয়তা বেড়ে যায়।
SQL ফরম্যাটিং ইতিহাসে মূল মাইলফলকগুলি:
- 1990-এর দশক: প্রথম SQL শৈলী গাইডগুলি সংগঠনে আবির্ভূত হতে শুরু করে
- 2000-এর দশকের শুরু: অবজেক্ট-রিলেশনাল মেপিং (ORM) টুলগুলির উত্থান SQL উৎপাদন এবং ফরম্যাটিংয়ে আগ্রহ বাড়িয়ে তোলে
- 2010-এর দশক: অনলাইন SQL ফরম্যাটিং টুলগুলি জনপ্রিয় হয়ে ওঠে যখন ওয়েব অ্যাপ্লিকেশনগুলি বাড়তে থাকে
- বর্তমান: স্বয়ংক্রিয় ফরম্যাটিং এখন ডেটাবেস ডেভেলপমেন্টে একটি সেরা অনুশীলন হিসাবে বিবেচিত হয়
SQL ভ্যালিডেশন বিবর্তন
SQL ভ্যালিডেশন সহজ সিনট্যাক্স চেকিং থেকে আরও জটিল বিশ্লেষণে বিকশিত হয়েছে:
- প্রাথমিক ডেটাবেস সিস্টেম: সিনট্যাক্স সমস্যার জন্য মৌলিক ত্রুটি বার্তা প্রদান করে
- 1990-এর দশক-2000-এর দশক: নিবেদিত SQL পার্সার এবং ভ্যালিডেটরের বিকাশ
- 2010-এর দশক: ডেভেলপমেন্ট ওয়ার্কফ্লো এবং CI/CD পাইপলাইনে SQL ভ্যালিডেশনের একীকরণ
- বর্তমান: AI-সহায়ক SQL ভ্যালিডেশন যা উন্নতির পরামর্শ দিতে এবং সম্ভাব্য কর্মক্ষমতা সমস্যা সনাক্ত করতে পারে
কোড উদাহরণ
উদাহরণ 1: মৌলিক SELECT কোয়েরি
অফরম্যাটেড:
1select id, first_name, last_name, email from customers where status = 'active' order by last_name, first_name;
2
ফরম্যাটেড:
1SELECT
2 id,
3 first_name,
4 last_name,
5 email
6FROM
7 customers
8WHERE
9 status = 'active'
10ORDER BY
11 last_name,
12 first_name;
13
উদাহরণ 2: JOIN কোয়েরি
অফরম্যাটেড:
1select c.id, c.name, o.order_date, o.total_amount from customers c left join orders o on c.id = o.customer_id where o.order_date >= '2023-01-01' and o.status != 'cancelled' order by o.order_date desc;
2
ফরম্যাটেড:
1SELECT
2 c.id,
3 c.name,
4 o.order_date,
5 o.total_amount
6FROM
7 customers c
8 LEFT JOIN orders o ON c.id = o.customer_id
9WHERE
10 o.order_date >= '2023-01-01'
11 AND o.status != 'cancelled'
12ORDER BY
13 o.order_date DESC;
14
উদাহরণ 3: জটিল কোয়েরি সাবকোয়েরি সহ
অফরম্যাটেড:
1select d.department_name, (select count(*) from employees e where e.department_id = d.id) as employee_count, (select avg(salary) from employees e where e.department_id = d.id) as avg_salary from departments d where d.active = true having employee_count > 0 order by avg_salary desc;
2
ফরম্যাটেড:
1SELECT
2 d.department_name,
3 (
4 SELECT
5 COUNT(*)
6 FROM
7 employees e
8 WHERE
9 e.department_id = d.id
10 ) AS employee_count,
11 (
12 SELECT
13 AVG(salary)
14 FROM
15 employees e
16 WHERE
17 e.department_id = d.id
18 ) AS avg_salary
19FROM
20 departments d
21WHERE
22 d.active = TRUE
23HAVING
24 employee_count > 0
25ORDER BY
26 avg_salary DESC;
27
প্রোগ্রাম্যাটিক SQL ফরম্যাটিং
বিভিন্ন প্রোগ্রামিং ভাষায় SQL ফরম্যাটিং বাস্তবায়নের উদাহরণ এখানে রয়েছে:
1// JavaScript SQL ফরম্যাটিং উদাহরণ sql-formatter লাইব্রেরি ব্যবহার করে
2const sqlFormatter = require('sql-formatter');
3
4function formatSQL(sql) {
5 return sqlFormatter.format(sql, {
6 language: 'sql',
7 uppercase: true,
8 linesBetweenQueries: 2,
9 indentStyle: 'standard'
10 });
11}
12
13const rawSQL = "select id, name from users where status='active'";
14const formattedSQL = formatSQL(rawSQL);
15console.log(formattedSQL);
16
1# পাইথন SQL ফরম্যাটিং উদাহরণ sqlparse ব্যবহার করে
2import sqlparse
3
4def format_sql(sql):
5 return sqlparse.format(
6 sql,
7 reindent=True,
8 keyword_case='upper',
9 identifier_case='lower',
10 indent_width=2
11 )
12
13raw_sql = "select id, name from users where status='active'"
14formatted_sql = format_sql(raw_sql)
15print(formatted_sql)
16
1// জাভা SQL ফরম্যাটিং উদাহরণ JSqlParser ব্যবহার করে
2import net.sf.jsqlparser.parser.CCJSqlParserUtil;
3import net.sf.jsqlparser.statement.Statement;
4
5public class SQLFormatter {
6 public static String formatSQL(String sql) throws Exception {
7 Statement statement = CCJSqlParserUtil.parse(sql);
8 return statement.toString()
9 .replaceAll("(?i)SELECT", "\nSELECT")
10 .replaceAll("(?i)FROM", "\nFROM")
11 .replaceAll("(?i)WHERE", "\nWHERE")
12 .replaceAll("(?i)ORDER BY", "\nORDER BY");
13 }
14
15 public static void main(String[] args) throws Exception {
16 String rawSQL = "select id, name from users where status='active'";
17 String formattedSQL = formatSQL(rawSQL);
18 System.out.println(formattedSQL);
19 }
20}
21
1<?php
2// PHP SQL ফরম্যাটিং উদাহরণ
3function formatSQL($sql) {
4 // কীওয়ার্ডগুলিকে বড় হাতের সংস্করণে প্রতিস্থাপন করুন
5 $keywords = ['SELECT', 'FROM', 'WHERE', 'JOIN', 'LEFT JOIN', 'RIGHT JOIN',
6 'INNER JOIN', 'GROUP BY', 'ORDER BY', 'HAVING', 'LIMIT'];
7
8 $formattedSQL = $sql;
9 foreach ($keywords as $keyword) {
10 $formattedSQL = preg_replace('/\b' . preg_quote($keyword, '/') . '\b/i', "\n$keyword", $formattedSQL);
11 }
12
13 // ইন্ডেন্টেশন যোগ করুন
14 $lines = explode("\n", $formattedSQL);
15 $result = '';
16 $indentLevel = 0;
17
18 foreach ($lines as $line) {
19 $trimmedLine = trim($line);
20 if (!empty($trimmedLine)) {
21 $result .= str_repeat(" ", $indentLevel) . $trimmedLine . "\n";
22 }
23 }
24
25 return $result;
26}
27
28$rawSQL = "select id, name from users where status='active'";
29$formattedSQL = formatSQL($rawSQL);
30echo $formattedSQL;
31?>
32
সাধারণ জিজ্ঞাস্য
SQL ফরম্যাটিং কী?
SQL ফরম্যাটিং হল SQL কোডকে সঠিক ইন্ডেন্টেশন, লাইন ব্রেক এবং ক্যাপিটালাইজেশন সহ গঠন করার প্রক্রিয়া যাতে এটি পড়তে এবং রক্ষণাবেক্ষণ করতে সহজ হয়। ভাল SQL ফরম্যাটিং প্রতিষ্ঠিত রীতিগুলি অনুসরণ করে যেমন কীওয়ার্ডগুলিকে ক্যাপিটালাইজ করা, ক্লজগুলিকে আলাদা লাইনে রাখা এবং নেস্টেড কাঠামোর জন্য সঙ্গতিপূর্ণ ইন্ডেন্টেশন ব্যবহার করা।
কেন আমি আমার SQL কোয়েরিগুলি ফরম্যাট করব?
SQL কোয়েরি ফরম্যাট করার কয়েকটি সুবিধা রয়েছে:
- উন্নত পড়ার যোগ্যতা জটিল কোয়েরিগুলিকে বোঝা সহজ করে তোলে
- ডিবাগিং এবং রক্ষণাবেক্ষণ সহজতর করে
- দলের সদস্যদের সাথে সহযোগিতা উন্নত করে
- সিনট্যাক্স ত্রুটির সম্ভাবনা কমায়
- প্রকল্প জুড়ে সঙ্গতিপূর্ণ কোড শৈলী
- ডকুমেন্টেশন এবং উপস্থাপনায় পেশাদার চেহারা
এই ফরম্যাটার কোন SQL ডায়ালেক্ট সমর্থন করে?
এই SQL ফরম্যাটার বেশিরভাগ প্রধান ডেটাবেস সিস্টেমের মধ্যে কাজ করে এমন স্ট্যান্ডার্ড SQL সিনট্যাক্স সমর্থন করে, যার মধ্যে রয়েছে:
- MySQL
- PostgreSQL
- SQL Server (T-SQL)
- Oracle
- SQLite
- MariaDB
যদিও ফরম্যাটারটি স্ট্যান্ডার্ড SQL ভালভাবে পরিচালনা করে, কিছু ডায়ালেক্ট-নির্দিষ্ট বৈশিষ্ট্যগুলি অপ্টিমালভাবে ফরম্যাট করা নাও হতে পারে।
ভ্যালিডেটর কি সমস্ত সম্ভাব্য SQL ত্রুটি চেক করে?
ভ্যালিডেটর সাধারণ সিনট্যাক্স ত্রুটি এবং কাঠামোগত সমস্যার জন্য চেক করে কিন্তু সমস্ত সম্ভাব্য ত্রুটি সনাক্ত করতে পারে না, বিশেষ করে:
- ডেটাবেস-নির্দিষ্ট সিনট্যাক্সের পরিবর্তন
- অবজেক্টের অস্তিত্ব (টেবিল, কলাম, ইত্যাদি)
- ডেটা টাইপের সামঞ্জস্য
- কর্মক্ষমতা সমস্যা
- ব্যবসায়িক যুক্তির সমস্যা
এটি আপনার ডেটাবেসের বিরুদ্ধে কার্যকর করার আগে প্রথম প্রতিরোধের লাইনের মতো ব্যবহার করা সবচেয়ে ভাল।
আমি কি খুব বড় SQL কোয়েরি ফরম্যাট করতে পারি?
অত্যন্ত বড় SQL কোয়েরির জন্য:
- সম্পূর্ণ কোয়েরিটি ইনপুট এলাকায় পেস্ট করুন
- টুলটি স্বয়ংক্রিয়ভাবে এটি প্রক্রিয়া করবে, যদিও জটিল কোয়েরির জন্য এটি কিছু সময় নিতে পারে
- অত্যন্ত বড় কোয়েরির (10,000+ অক্ষর) জন্য, আপনি একটি সংক্ষিপ্ত প্রক্রিয়াকরণের বিলম্ব লক্ষ্য করতে পারেন
আমি কি এই টুলটি অফলাইনে ব্যবহার করতে পারি?
এই ওয়েব-ভিত্তিক টুলটি প্রাথমিকভাবে লোড করার জন্য একটি ইন্টারনেট সংযোগ প্রয়োজন। তবে, একবার লোড হয়ে গেলে, এটি সম্পূর্ণরূপে আপনার ব্রাউজারে কাজ করে। সম্পূর্ণ অফলাইন ব্যবহারের জন্য, বিবেচনা করুন:
- SQL ফরম্যাটিংয়ের জন্য ব্রাউজার এক্সটেনশন
- ডেস্কটপ SQL IDE-গুলি যা ফরম্যাটিং ক্ষমতা রয়েছে
- কমান্ড-লাইন SQL ফরম্যাটিং টুলস
ভ্যালিডেটর বিভিন্ন SQL সংস্করণকে কীভাবে পরিচালনা করে?
ভ্যালিডেটর সাধারণ সিনট্যাক্স উপাদানগুলির উপর দৃষ্টি নিবদ্ধ করে যা SQL সংস্করণগুলির মধ্যে সাধারণ (SQL-92 এবং পরে)। এটি সর্বশেষ SQL মান বা proprietary এক্সটেনশনের জন্য কিছু বৈশিষ্ট্য সনাক্ত নাও করতে পারে। সংস্করণ-নির্দিষ্ট ভ্যালিডেশনের জন্য, আপনার ডেটাবেস ভেন্ডরের দ্বারা প্রদত্ত টুলগুলি ব্যবহার করার কথা বিবেচনা করুন।
আমি কি আমার IDE বা ওয়ার্কফ্লোর সাথে এই ফরম্যাটারটি একীভূত করতে পারি?
যদিও এই ওয়েব টুলটি সরাসরি একীকরণের অফার করে না, অনেক IDE-এর এক্সটেনশন বা প্লাগইনগুলির মাধ্যমে অনুরূপ ফরম্যাটিং ক্ষমতা রয়েছে। স্বয়ংক্রিয় ওয়ার্কফ্লোরের জন্য, কমান্ড-লাইন টুলগুলি বিবেচনা করুন যেমন:
- sqlformat (পাইথন)
- sql-formatter-cli (Node.js)
- pgFormatter (PostgreSQL-নির্দিষ্ট)
রেফারেন্স
- "SQL স্টাইল গাইড" সাইমন হলিওয়েল দ্বারা। https://www.sqlstyle.guide/
- "SQL সুন্দর প্রিন্টার SQL ফরম্যাটিং স্ট্যান্ডার্ড।" https://www.sqlshack.com/sql-formatting-standards-sql-pretty-printer/
- "SQL:2016 স্ট্যান্ডার্ড।" আন্তর্জাতিক সংস্থা ISO। https://www.iso.org/standard/63555.html
- "SQL কোড ফরম্যাটিং।" PostgreSQL ডকুমেন্টেশন। https://www.postgresql.org/docs/current/sql-syntax.html
- "SQL সার্ভার T-SQL ফরম্যাটিং স্ট্যান্ডার্ড।" মাইক্রোসফট ডকুমেন্টেশন। https://docs.microsoft.com/en-us/sql/t-sql/
আজই আমাদের SQL ফরম্যাটার এবং ভ্যালিডেটর চেষ্টা করুন আপনার SQL কোডের গুণমান, পড়ার যোগ্যতা এবং সঠিকতা উন্নত করতে!
প্রতিক্রিয়া
এই টুল সম্পর্কে প্রতিক্রিয়া দিতে শুরু করতে প্রতিক্রিয়া টোস্টে ক্লিক করুন
সম্পর্কিত টুলস
আপনার কাজের প্রবাহের জন্য উপকারী হতে পারে এমন আরও টুল আবিষ্কার করুন