NULL এবং NOT NULL SQL-এর মৌলিক ধারণাগুলির মধ্যে অন্যতম, যা ডেটাবেসে ডেটা সংরক্ষণ এবং পরিচালনায় গুরুত্বপূর্ণ ভূমিকা পালন করে। এটি মূলত একটি কলামের মানের অবস্থা নির্দেশ করে এবং ডেটা ম্যানিপুলেশনের সময় একে সঠিকভাবে ব্যবহার করা অত্যন্ত জরুরি।
NULL কী?
NULL হলো একটি বিশেষ মান যা একটি কলামে অজ্ঞাত, অনুপস্থিত, বা অব্যাখ্যাত মান নির্দেশ করে। এটি কেবল একটি "অনুপস্থিত মান" বা "অজানা তথ্য" বোঝায়, এবং এটি সংখ্যাগত শূন্য (0) বা খালি স্ট্রিং ("") এর থেকে আলাদা।
এটি সাধারণত ব্যবহার করা হয় যখন কোনো ডেটার মান জানা নেই বা এটি ডেটাবেসে উপস্থিত না থাকে। একটি NULL মান বলে যে কলামের জন্য কোনো মান সরবরাহ করা হয়নি, বা সেটি অনুপস্থিত।
NULL-এর ব্যবহার উদাহরণ:
SELECT * FROM employees WHERE phone_number IS NULL;
এই কুয়েরি employees টেবিলের সমস্ত রেকর্ড ফেরত দেবে যাদের ফোন নম্বর NULL (অর্থাৎ, অনুপস্থিত)।
NULL সম্পর্কে কিছু মূল পয়েন্ট:
- NULL মানটি ডেটাবেসে যে কোনো টাইপের ডেটাতে থাকতে পারে (যেমন: INT, VARCHAR, DATE ইত্যাদি)।
- NULL মানটি সংখ্যা বা টেক্সট নয়, এটি বিশেষ একটি মান।
NULL কিভাবে পরিচালনা করতে হয়, তা বোঝার জন্য IS NULL বা IS NOT NULL ব্যবহার করা হয়, যেমন:
SELECT * FROM employees WHERE phone_number IS NOT NULL;- NULL মানের সাথে সাধারণ গাণিতিক বা তুলনা অপারেশন (যেমন:
=,>,<) করা সম্ভব নয়, কারণ এর ফলাফল ঠিক হবে না। এজন্য IS NULL বা IS NOT NULL ব্যবহার করা হয়।
NOT NULL কী?
NOT NULL হলো একটি কনস্ট্রেইন্ট (constraint) যা একটি কলামের জন্য নির্দিষ্ট করে দেয় যে ওই কলামের মান কখনও NULL হতে পারবে না। এটি নিশ্চিত করে যে ডেটাবেসে কোনো রেকর্ডের ক্ষেত্রে ওই কলামে মান থাকতে হবে এবং সে মানটি শূন্য বা অজ্ঞাত হতে পারবে না।
NOT NULL কনস্ট্রেইন্ট এর উদাহরণ:
CREATE TABLE employees (
employee_id INT NOT NULL,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
phone_number VARCHAR(15)
);
এখানে, employee_id, first_name, এবং last_name কলামগুলোর মান NULL হতে পারবে না, কিন্তু phone_number কলামে NULL মান থাকতে পারে, অর্থাৎ এটি ঐচ্ছিক।
NOT NULL এর উপকারিতা:
- ডেটার এককতা নিশ্চিতকরণ: যখন একটি কলামে NULL মানের অনুমতি দেওয়া হয় না, তখন তা ডেটাবেসের এককতা এবং সঠিকতা বজায় রাখে।
- ডেটার পূর্ণতা: কিছু ক্ষেত্রে এটি গুরুত্বপূর্ণ হতে পারে যে ডেটা অবশ্যই উপস্থিত থাকতে হবে। উদাহরণস্বরূপ, যদি কোনো কর্মচারীর প্রথম নাম বা শেষ নাম NULL না থাকে, তবে এটি নিশ্চিত করা যাবে যে ওই কলামে সবসময় মান থাকবে।
NULL এবং NOT NULL এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | NULL | NOT NULL |
|---|---|---|
| সংজ্ঞা | "অনুপস্থিত" বা "অজানা" মান। | একটি কলামে মান থাকতে হবে, NULL থাকতে পারে না। |
| মান | NULL মান হলো বিশেষ একটি অবস্থা। | মান থাকা আবশ্যক, এটি NULL হতে পারে না। |
| অপারেশন | NULL এর সাথে তুলনা করতে IS NULL বা IS NOT NULL ব্যবহার করতে হয়। | সাধারণত তুলনা অপারেশন সরাসরি ব্যবহার করা যায়। |
| ডিফল্ট আচরণ | একটি কলাম যদি NULL হতে পারে, তবে এটি কোন মান গ্রহণ করতে পারে না। | একটি কলাম যেটিতে NOT NULL কনস্ট্রেইন্ট রয়েছে, সেখানে কোনো রেকর্ডে NULL থাকবে না। |
NULL এবং NOT NULL এর সাথে সম্পর্কিত অন্যান্য ধারণা
NULL এবং অ্যাগ্রিগেট ফাংশন:
- NULL মানগুলিকে অ্যাগ্রিগেট ফাংশনগুলির (যেমন
COUNT,AVG,SUM) দ্বারা উপেক্ষা করা হয়, অর্থাৎ তারা NULL মানগুলি গণনা করে না। তবে,COUNT(*)সব রেকর্ড গননা করবে,COUNT(column_name)শুধুমাত্র NULL ছাড়া মান গননা করবে।
SELECT COUNT(phone_number) FROM employees;এই কুয়েরি শুধুমাত্র ফোন নম্বরের সাথে সংশ্লিষ্ট (NULL নয়) রেকর্ডগুলি গননা করবে।
- NULL মানগুলিকে অ্যাগ্রিগেট ফাংশনগুলির (যেমন
NULL এবং গাণিতিক অপারেশন:
NULL-এর সাথে কোনো গাণিতিক অপারেশন করলে ফলাফল সর্বদা NULL হবে, যেমন:SELECT salary + bonus FROM employees;যদি
salaryবাbonusকলামে কোনো মান NULL হয়, তবে পুরো ফলাফল NULL হবে।- NULL এবং Joins:
যখন দুটি টেবিলের মধ্যে JOIN করা হয়, তখন NULL মানের কারণে কিছু ফলাফল হারানো বা বিভিন্ন আচরণ দেখা দিতে পারে, তাই আপনাকে সচেতন থাকতে হবে।
উপসংহার
NULL এবং NOT NULL SQL-এ ডেটার গুরুত্ব এবং পূর্ণতার ধারণাকে ব্যাখ্যা করে। NULL বিশেষভাবে একটি অনুপস্থিত বা অজানা মান নির্দেশ করে, এবং NOT NULL কনস্ট্রেইন্ট ডেটাবেসে নিশ্চিত করে যে একটি কলামে মান অবশ্যই থাকতে হবে। SQL কোড লেখার সময় এগুলির সঠিক ব্যবহার ডেটার সঠিকতা এবং কার্যকারিতা নিশ্চিত করতে সাহায্য করে।
Read more