innoDB-তে, খালি স্ট্রিংয়ের তুলনায় NULL কম জায়গা দখল করে। এছাড়াও, NULL দৈর্ঘ্য শূন্য যখন খালি স্ট্রিংয়ের দৈর্ঘ্য 0।
এটি বোঝার জন্য, create কমান্ডের সাহায্যে একটি টেবিল তৈরি করা হয়েছে যা নিম্নরূপ দেওয়া আছে −
mysql> টেবিল তৈরি করুন DemoEmptyAndNULL-> (-> বার্তা varchar(100)-> );কোয়েরি ঠিক আছে, 0 সারি প্রভাবিত (0.49 সেকেন্ড)
টেবিলটি সফলভাবে তৈরি করার পর, একটি খালি রেকর্ড টেবিলে সন্নিবেশিত করা হয় ইনসার্ট কমান্ডের সাহায্যে যা নিম্নরূপ -
mysql> DemoEmptyAndNULL মান (' ') ঢোকান; কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.17 সেকেন্ড)
রেকর্ড সন্নিবেশ করার পরে, আমরা নির্বাচন কমান্ডের সাহায্যে সমস্ত রেকর্ড প্রদর্শন করতে পারি যা নিম্নরূপ -
DemoEmptyAndNULL থেকেmysql> নির্বাচন করুন;
উপরের ক্যোয়ারীটি কার্যকর করার পরে, নিম্নলিখিত আউটপুট প্রাপ্ত হয় -
<প্রে>+---------+| বার্তা |+---------+| |+---------+1 সারি সেটে (0.00 সেকেন্ড)বিল্ট ইন ফাংশন কাউন্টের সাহায্যে একটি খালি স্ট্রিংয়ের দৈর্ঘ্য পরীক্ষা করার জন্য সিনট্যাক্সটি অনুসরণ করা হয় -
আপনার টেবিলের নাম থেকে গণনা(কলাম_নাম) নির্বাচন করুন;
উপরের সিনট্যাক্সটি একটি খালি স্ট্রিংয়ের দৈর্ঘ্য পেতে ব্যবহৃত হয় যা নিম্নরূপ দেওয়া হয় -
mysql> DemoEmptyAndNULL থেকে গণনা (বার্তা) নির্বাচন করুন;
উপরের ক্যোয়ারীটি কার্যকর করার পরে, নিম্নলিখিতটি হল আউটপুট −
+----------------+| গণনা(বার্তা) |+----------------+| 1 |+----------------+1 সারি সেটে (0.06 সেকেন্ড)
উপরের আউটপুট থেকে এটা স্পষ্ট যে খালি স্ট্রিংটির দৈর্ঘ্য 1।
এখন আমরা NULL এর দৈর্ঘ্য পরীক্ষা করব। প্রথমত, টেবিলে যে রেকর্ডটি ঢোকানো হয়েছিল তা নিম্নরূপ ডিলিট কমান্ড ব্যবহার করে মুছে ফেলা হয় -
mysql> DemoEmptyAndNULL থেকে মুছে দিন যেখানে message=' ';কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.19 সেকেন্ড)
এই মুহূর্তে টেবিলে কোনো রেকর্ড নেই তা পরীক্ষা করতে নিম্নলিখিত ক্যোয়ারী ব্যবহার করা হয়
DemoEmptyAndNULL থেকেmysql> SELECT *; খালি সেট (0.00 সেকেন্ড)
এখন, শূন্য মান সহ রেকর্ডটি নিম্নরূপ −
টেবিলে ঢোকানো হয়েছেmysql> DemoEmptyAndNULL মান ();কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.18 সেকেন্ড)
সিলেক্ট কমান্ড ব্যবহার করে রেকর্ডটি প্রদর্শিত হয় এবং প্রাপ্ত আউটপুট নিম্নরূপ -
<প্রে>+---------+| বার্তা |+---------+| NULL |+---------+1 সারি সেটে (0.00 সেকেন্ড)এখন, টেবিলে শূন্য মান সহ শুধুমাত্র একটি রেকর্ড আছে। এর দৈর্ঘ্য খুঁজে পেতে নিম্নলিখিত ক্যোয়ারী ব্যবহার করা হয় −
mysql> DemoEmptyAndNULL থেকে গণনা (বার্তা) নির্বাচন করুন;
নিম্নোক্ত প্রশ্নটির আউটপুট −
+----------------+| গণনা(বার্তা) |+----------------+| 0 |+----------------+1 সারি সেটে (0.00 সেকেন্ড)
উপরের আউটপুট মানে হল শূন্য মানের জন্য গণনা 0।
আসুন MySQL সংস্করণ পরীক্ষা করি।
mysql> সংস্করণ নির্বাচন করুন();+------------+| সংস্করণ() |+------------+| 8.0.12 |+----------+1 সারি সেটে (0.06 সেকেন্ড)
সুতরাং ডাটাবেসের জন্য খালি স্ট্রিং ব্যবহার করা ভাল কারণ NULL মান সিস্টেমকে অতিরিক্ত কাজ করতে বাধ্য করে এবং আপনি যে ডেটা খুঁজছেন তা দেয় না। যাইহোক, কাউন্ট() ফাংশনটি নির্বাহ করা হলে NULL এর ব্যতিক্রম হয় না।