বিষয়সূচী

01

কেন NULL — আগে গল্প

১৫ মিনিট
জিজ্ঞেস করো

একজন employee-এর phone number database-এ দেওয়া নেই। তাহলে phone-এর জায়গায় কী রাখব?

Rahim → 017XXXXXXXX Karim → 018XXXXXXXX Hasan → ?
ক্লাসকে জিজ্ঞেস

Hasan-এর phone কি 0? Empty text? আমরা কি value জানি?

প্রত্যাশিত উত্তর: না / না / না → Unknown/Missing → NULL

গল্প ১ — Student Phone

StudentPhone
Rahim01711111111
Karim01822222222
HasanNULL
Nila01944444444

Hasan-এর phone = 0 বা '' নয় — information missing/unknown।

গল্প ২ — Employee Bonus

EmployeeSalaryBonus
Rahim5000010000
Karim60000NULL
Hasan7000015000

Karim কি bonus পায়নি? জানি না — না লেখা / হিসাব হয়নি / eligible নয় — business meaning আলাদা হতে পারে।

গল্প ৩ — Customer Email

Customer B-এর email NULL = জানা নেই / stored হয়নি।

গল্প ৪ — Resignation Date

EmployeeResignation_Date
RahimNULL
Karim2026-01-10
Teacher Tip: Rahim-এর resignation NULL = এখনও company-তে কাজ করছে — খুব common real-world NULL।
Unknown / Missing Value ↓ NULL
02

NULL কী?

১০ মিনিট
NULL → No known value / Missing / Unknown / Not available / Not applicable
NULL-এর exact business meaning column ও context-এর উপর নির্ভর করে।
ValueMeaning
0Number zero
''Empty string
'NULL'Text containing the word NULL
NULLMissing/unknown/no value
03

NULL vs 0 vs Empty String

১০ মিনিট
DataMeaning
0Zero
''Empty text
' 'Space
'NULL'Text
NULLNo known value

Salary = 0 → বেতন শূন্য। Salary = NULL → বেতনের তথ্য নেই/অজানা।

Common confusion: NULL দেখে 0 ধরে নেওয়া — ভুল business conclusion হতে পারে।
04

কেন = NULL কাজ করে না

১৫ মিনিট
SELECT * FROM employees WHERE bonus = NULL;
এই query দিয়ে সাধারণত NULL rows পাওয়া যায় না।
কেন?

NULL ordinary value নয় — = দিয়ে compare করা যায় না।

SQL-এ তিন ধরনের ফল (three-valued logic) — সহজ করে:

TRUE FALSE UNKNOWN 5 = 5 → TRUE 5 = 10 → FALSE NULL = 5 → UNKNOWN NULL = NULL → UNKNOWN (TRUE নয়)

Database value না জানলে comparison TRUE/FALSE না হয়ে UNKNOWN হতে পারে — WHERE সাধারণত শুধু TRUE rows রাখে।

05

IS NULL

১৫ মিনিট
SELECT * FROM employees WHERE bonus IS NULL;
IS NULL → যেসব row-তে value missing
Karim (bonus NULL) — Rahim/Hasan বাদ

Phone / Email / Resignation

WHERE phone IS NULL; WHERE email IS NULL; WHERE resignation_date IS NULL;

লাইন বাই লাইন: WHERE → column check → IS NULL → missing rows।

06

IS NOT NULL

১০ মিনিট
SELECT * FROM employees WHERE bonus IS NOT NULL;
NULL → Missing NOT NULL → Value exists
WHERE phone IS NOT NULL; WHERE email IS NOT NULL; WHERE resignation_date IS NOT NULL;
07

IS NULL vs IS NOT NULL

৫ মিনিট
ConditionMeaning
IS NULLValue missing
IS NOT NULLValue exists
IS NULL → Find missing data IS NOT NULL → Find available data
08

NULL with WHERE

১০ মিনিট
SELECT * FROM employees WHERE department = 'IT' AND bonus IS NULL;
Employees → IT department → Bonus missing → Final
WHERE price IS NOT NULL AND category = 'Laptop';
09

NULL with AND / OR

১০ মিনিট
WHERE phone IS NULL AND email IS NULL;

দুটিই missing।

WHERE phone IS NULL OR email IS NULL;

অন্তত একটি missing।

AND = both missing OR = either missing
10

NULL with NOT IN

১০ মিনিট
EmployeeDepartment
AIT
BHR
CFinance
DNULL

WHERE department NOT IN ('IT','HR') — NULLকে “আরেকটি department” বলে ধরে না; NULL rows অপ্রত্যাশিতভাবে বাদ যেতে পারে।

WHERE department NOT IN ('IT', 'HR') AND department IS NOT NULL;
Business: “IT/HR বাদ দিয়ে যাদের actual department আছে” → উপরের safer pattern।
11

NULL with Aggregate Functions

১৫ মিনিট
EmployeeSalary
A50000
B60000
CNULL
D80000
AVG/SUM/MIN/MAX সাধারণত NULL ignore করে — 0 ধরে নেয় না।
FunctionNULL Handling
COUNT(*)Counts rows
COUNT(column)Counts non-NULL values
SUM / AVG / MIN / MAXIgnores NULL
COUNT(*) = 4 COUNT(salary) = 3 SUM = 190000 AVG = 190000/3 ≈ 63333.33
12

NULL with GROUP BY

১০ মিনিট
SELECT department, COUNT(*) FROM employees GROUP BY department;
IT 10 | HR 5 | Finance 7 | NULL 3 → NULL rows নিজস্ব group হতে পারে
WHERE department IS NOT NULL GROUP BY department;
13

COALESCE()

১৫ মিনিট

Dashboard-এ bonus NULL দেখালে user বিভ্রান্ত — কখনো কখনো 0 দেখাতে চাই (business decide করে)।

SELECT employee_name, COALESCE(bonus, 0) AS bonus FROM employees;
COALESCE(value, replacement) → প্রথম value NULL হলে পরের value
COALESCE(phone, 'Not Available'); COALESCE(email, 'No Email');
BeforeAfter COALESCE(...,0)
1000010000
NULL0
50005000
14

IFNULL() — MySQL

১০ মিনিট
SELECT employee_name, IFNULL(bonus, 0) AS bonus FROM employees;
COALESCEIFNULL
SQL-standardMySQL-common
Multiple expressionsTwo arguments
More portableMySQL-focused

দুই-argument ক্ষেত্রে COALESCE(bonus,0)IFNULL(bonus,0)

15

NULLIF()

১০ মিনিট

দুই value একই হলে NULL; আলাদা হলে প্রথম value।

SELECT NULLIF(10, 10); -- NULL SELECT NULLIF(10, 5); -- 10

Divide-by-zero এড়ানো (বিগিনার)

SELECT sales / NULLIF(quantity, 0) FROM products;

quantity 0 হলে ভাগের আগে NULL → division error এড়ানো যায়।

16

CASE WHEN with NULL

১০ মিনিট
SELECT employee_name, CASE WHEN bonus IS NULL THEN 'No Bonus Data' ELSE 'Bonus Available' END AS bonus_status FROM employees;
NULL → CASE WHEN → Human-readable status
17

NULL with ORDER BY

১০ মিনিট
SELECT * FROM employees ORDER BY bonus;

NULL কোথায় বসবে DB/engine অনুযায়ী ভিন্ন হতে পারে — ধরে নিও না সবসময় একই।

MySQL-এ placement নিয়ন্ত্রণ (উদাহরণ)

ORDER BY bonus IS NULL, bonus;
প্রথমে যাদের value আছে, পরে NULL — এমন ordering তৈরি করা যায়।
18

NULL with DISTINCT

৫ মিনিট
SELECT DISTINCT department FROM employees;

অনেক row-এ department NULL থাকলেও DISTINCT-এ NULL সাধারণত একবার দেখা যায়।

19

NULL vs Empty String

১০ মিনিট
IS NULL= '' — আলাদা জিনিস।
ConditionFinds
email IS NULLNULL values
email = ''Empty strings
email IS NOT NULLNon-NULL values
email <> ''Non-empty; NULL behavior সাবধান

একই column-এ NULL এবং '' দুটোই থাকতে পারে।

20

NULL Data Cleaning / Data Quality

১০ মিনিট

1,000,000 customers — Email 50k NULL, Phone 20k NULL, City 5k NULL।

Data Analyst কী করবে?
  1. Detect missing
  2. Measure how many
  3. Why missing?
  4. Business treatment decide
  5. Replace only when appropriate
  6. Blindly সব NULL → 0 নয়
Raw Data → Detect NULL → Analyze → Understand → Clean/Replace/Keep → Analytics
21

Employee Management Case Study

২০ মিনিট

নমুনা employees (intentional NULL সহ) — Workbench-এ পূর্ণ ৩০+ row INSERT করবে; এখানে কেন্দ্রীয় কলাম:

idnamedeptsalarybonusphoneemailresign
1RahimIT5000010000017…r@x.comNULL
2KarimIT60000NULLNULLk@x.comNULL
3HasanHR7000015000019…NULLNULL
4NilaNULL55000NULL018…n@x.comNULL
5SumiFinance8000020000016…s@x.com2026-01-10
6ArifHRNULL5000NULLNULLNULL
7BelaSales450000015…NULL
8ChayanIT90000NULL014…c@x.comNULL

(Lab-এ আরও rows যোগ করো — মোট ৩০+।)

১৬টি ব্যবসায়িক প্রশ্ন → SQL ধারণা

  1. phone IS NULL
  2. email IS NULL
  3. bonus IS NULL
  4. bonus IS NOT NULL
  5. resignation_date IS NULL (এখনও active)
  6. department IS NULL
  7. COUNT(*) … WHERE email IS NULL
  8. GROUP BY department (NULL group সহ)
  9. AVG(salary) — NULL ignore
  10. COUNT(*) vs COUNT(salary)
  11. COALESCE(bonus,0)
  12. COALESCE(email,'Not Available')
  13. CASE bonus status
  14. WHERE department IS NOT NULL
  15. NOT IN ('IT','HR') AND department IS NOT NULL
  16. sales/NULLIF(qty,0) বা bonus metrics সাবধানে
22

MySQL Workbench Practical

২০ মিনিট
CREATE DATABASE null_lab; USE null_lab; CREATE TABLE employees ( employee_id INT PRIMARY KEY, employee_name VARCHAR(80), department VARCHAR(40), salary DECIMAL(10,2), bonus DECIMAL(10,2), phone VARCHAR(20), email VARCHAR(80), joining_date DATE, resignation_date DATE, manager_id INT ); INSERT INTO employees (employee_id, employee_name, department, salary, bonus, phone, email, joining_date, resignation_date, manager_id) VALUES (1,'Rahim','IT',50000,10000,'01711111111','r@x.com','2024-01-01',NULL,10), (2,'Karim','IT',60000,NULL,NULL,'k@x.com','2024-02-01',NULL,10), (3,'Hasan','HR',70000,15000,'01944444444',NULL,'2023-06-01',NULL,11), (4,'Nila',NULL,55000,NULL,'01822222222','n@x.com','2025-01-01',NULL,NULL), (5,'Sumi','Finance',80000,20000,'01633333333','s@x.com','2022-01-01','2026-01-10',12);
Wrong: 'NULL' (text) · Correct: keyword NULL

Steps 4–15

  1. SELECT * FROM employees;
  2. WHERE bonus IS NULL / phone / email
  3. IS NOT NULL
  4. AND / OR missing fields
  5. COUNT(*) vs COUNT(salary)
  6. GROUP BY department
  7. COALESCE / IFNULL
  8. NULLIF demo
  9. CASE status
  10. Mini DQ: count NULL phones/emails
23

Common Beginner Mistakes

১০ মিনিট
  1. WHERE phone = NULLIS NULL
  2. WHERE phone != NULLIS NOT NULL
  3. NULL / 0 / '' / 'NULL' গুলিয়ে ফেলা
  4. NULL = zero ভাবা
  5. NULL = empty text ভাবা
  6. সব NULL blindly → 0 (ভুল metric)
  7. NOT IN + NULL ignore
  8. COUNT(*) vs COUNT(col) গুলিয়ে ফেলা
24

NULL Decision Flowchart

৫ মিনিট
Do we have a value? YES → Store actual value NO → Unknown/missing? → NULL Need missing? → IS NULL Need existing? → IS NOT NULL Need replacement? → COALESCE / IFNULL Need custom label?→ CASE WHEN
25

Execution Flow with NULL

৫ মিনিট
FROM → WHERE (NULL filter) → GROUP BY → Aggregates → HAVING → SELECT → ORDER BY → LIMIT

Simplified teaching model — NULL WHERE, GROUP, aggregates, ORDER-এ প্রভাব ফেলে।

26

Comparison Table

৫ মিনিট
ConceptExampleMeaning
= NULLbonus = NULLWrong approach
IS NULLbonus IS NULLFind NULL
IS NOT NULLbonus IS NOT NULLFind non-NULL
COALESCECOALESCE(bonus,0)Replace NULL
IFNULLIFNULL(bonus,0)MySQL replace
NULLIFNULLIF(a,b)NULL when equal
CASE WHENbonus IS NULL…Custom logic
27

Aggregate Walkthrough

১০ মিনিট
Salary: 50000, 60000, NULL, 80000
COUNT(*) = 4 COUNT(salary) = 3 SUM(salary) = 190000 AVG(salary) = 63333.33… (÷3 not ÷4) MIN = 50000 MAX = 80000

NULL কে 0 ধরলে AVG ভুল হত (190000/4) — তাই ignore গুরুত্বপূর্ণ।

28

Interactive Activities

১৫ মিনিট

কার্ডে ক্লিক করে উত্তর দেখো।

Activity 1 — Correct? WHERE email = NULL
না — IS NULL ব্যবহার করো
Activity 2 — Fix: WHERE phone != NULL
WHERE phone IS NOT NULL
Activity 3 — NULL vs 0?
NULL=missing; 0=zero value
Activity 4 — NULL vs ''?
missing vs empty text — আলাদা
Activity 5 — COUNT(*) vs COUNT(email) with some NULL emails
COUNT(*) সব row; COUNT(email) শুধু non-NULL
Activity 6 — Missing bonus SQL?
WHERE bonus IS NULL
Activity 7 — Available bonus?
WHERE bonus IS NOT NULL
Activity 8 — Replace NULL bonus with 0
COALESCE(bonus,0) বা IFNULL(bonus,0)
Activity 9 — Replace NULL email
COALESCE(email,'Not Available')
Activity 10 — CASE status for NULL bonus
WHEN bonus IS NULL THEN 'No Bonus Data' ELSE …
Activity 11 — GROUP BY with NULL dept?
NULL নিজস্ব group হতে পারে
Activity 12 — NOT IN + NULL problem?
NULL rows unexpected drop — add IS NOT NULL
Activity 13 — DQ: count missing phones
SELECT COUNT(*) FROM … WHERE phone IS NULL
Activity 14 — Fix INSERT 'NULL' text
Use keyword NULL without quotes
Activity 15 — NL: bonus info নেই employees
WHERE bonus IS NULL
29

Mini Project — HR Data Quality

১৫ মিনিট
  1. Missing phone count
  2. Missing email count
  3. Missing bonus count
  4. No resignation date (active)
  5. No department
  6. AVG(salary)
  7. COUNT(salary) available
  8. Show bonus as 0 when NULL
  9. Show email Not Available
  10. Bonus status CASE
  11. Dept-wise COUNT
  12. Exclude NULL departments
  13. NULL percentage phones
  14. Simple HR DQ report (combine metrics)
30

Industry Use Cases

৮ মিনিট
  • Analytics: missing customer info
  • Data Science: missing features
  • Data Engineering: ETL validation
  • BI: display missing correctly
  • Finance / HR / E-com: incomplete attributes
Bad NULL handling → wrong business decisions.
31

Best Practices

৫ মিনিট
  • IS NULL / IS NOT NULL correctly
  • Understand NULL before metrics
  • Careful with NOT IN
  • COUNT(column) intentionally
  • COALESCE only when business makes sense
  • Don't auto-convert every NULL→0
  • Document what NULL means per column
  • DQ checks on critical fields
NULL ≠ 0 NULL ≠ '' NULL ≠ 'NULL' = NULL ❌ IS NULL ✅ IS NOT NULL ✅
32

MCQ (২৫+)

১৫ মিনিট
MCQ 1. NULL মানে? A) 0 B) '' C) missing/unknown D) 'NULL'
C
MCQ 2. NULL = 0? A) হ্যাঁ B) না C) শুধু MySQL D) শুধু AVG
B
MCQ 3. NULL = ''? A) হ্যাঁ B) না C) কখনো সমান D) error
B
MCQ 4. Find NULL? A) = NULL B) IS NULL C) != NULL D) LIKE NULL
B
MCQ 5. Find non-NULL? A) != NULL B) IS NOT NULL C) <> NULL D) NOT = NULL
B
MCQ 6. = NULL works? A) হ্যাঁ B) সাধারণত না C) শুধু string D) শুধু number
B
MCQ 7. != NULL? A) সঠিক B) ভুল approach — IS NOT NULL C) দ্রুত D) portable
B
MCQ 8. COUNT(*) NULL rows? A) বাদ B) গণনা করে C) error D) 0
B
MCQ 9. COUNT(col) NULL? A) গণনা B) বাদ (non-NULL only) C) 0 ধরে D) error
B
MCQ 10. SUM NULL? A) 0 যোগ B) ignore C) error D) NULL result always
B
MCQ 11. AVG NULL? A) 0 ধরে ভাগ B) ignore then average C) error D) median
B
MCQ 12. GROUP BY NULL? A) বাদ সবসময় B) own group হতে পারে C) crash D) =''
B
MCQ 13. COALESCE(bonus,0)? A) সবসময় 0 B) NULL হলে 0 C) delete row D) IS NULL
B
MCQ 14. IFNULL? A) Oracle only B) MySQL two-arg replace C) REGEXP D) JOIN
B
MCQ 15. NULLIF(10,10)? A) 10 B) NULL C) 0 D) FALSE
B
MCQ 16. CASE for NULL? A) সম্ভব IS NULL দিয়ে B) অসম্ভব C) শুধু IFNULL D) শুধু AVG
A
MCQ 17. NOT IN + NULL? A) সবসময় safe B) সাবধান — unexpected C) faster D) ignore
B
MCQ 18. Blind NULL→0? A) always good B) can wrong metrics C) required D) IS NULL
B
MCQ 19. 'NULL' text? A) real NULL B) string C) 0 D) empty
B
MCQ 20. Three-valued? A) TRUE/FALSE only B) + UNKNOWN C) four D) none
B
MCQ 21. resignation NULL? A) always fired B) may still employed C) =0 D) error
B
MCQ 22. email IS NULL vs =''? A) same B) different C) both wrong D) synonyms
B
MCQ 23. Safer NOT IN exclude?
… NOT IN (…) AND col IS NOT NULL
MCQ 24. DQ first step?
Detect/measure NULLs
MCQ 25. Portable replace?
COALESCE often preferred over IFNULL
MCQ 26. ORDER BY NULL?
Position can vary — control with expression
33

Viva Questions

১০ মিনিট
Viva 1. NULL কী?
Missing/unknown — ordinary value নয়
Viva 2. NULL = 0?
না
Viva 3. NULL = ''?
না
Viva 4. = NULL কেন নয়?
comparison UNKNOWN — WHERE রাখে না
Viva 5. IS NULL?
missing খুঁজে
Viva 6. IS NOT NULL?
value আছে এমন
Viva 7. COALESCE?
NULL হলে replacement
Viva 8. IFNULL?
MySQL দুই-argument replace
Viva 9. COALESCE vs IFNULL?
COALESCE portable/multi; IFNULL MySQL 2-arg
Viva 10. NULLIF?
equal হলে NULL
Viva 11. COUNT NULL?
COUNT(*) rows; COUNT(col) non-NULL
Viva 12. AVG NULL?
ignore NULLs
Viva 13. GROUP BY NULL?
own group হতে পারে
Viva 14. NOT IN problem?
NULL unexpected filter
Viva 15. Replace with 0?
COALESCE/IFNULL — business sense থাকলে
Viva 16. Custom message?
CASE বা COALESCE string
Viva 17. Core rules?
NULL≠0≠''≠'NULL'; IS NULL ✅
Viva 18. INSERT NULL?
keyword NULL — not 'NULL'
Viva 19. Data quality?
detect → measure → decide → replace carefully
Viva 20. ORDER BY?
NULL placement vary — control possible
Viva 21. DISTINCT NULL?
একবার দেখা যায়
Viva 22. AND both missing?
phone IS NULL AND email IS NULL
Viva 23. OR either?
phone IS NULL OR email IS NULL
Viva 24. Active employees?
resignation_date IS NULL (context)
Viva 25. Bad NULL handling?
wrong business decisions
Viva 26. SUM vs 0?
SUM ignores NULL — not same as treating 0
34

Interview Top 30

১৫ মিনিট
IV 1. What is NULL?
Missing/unknown · eg phone IS NULL · ভুল: =0 · ফলো: business meaning? · ইউজ: DQ
IV 2. NULL vs 0
missing vs zero · salary · ভুল: treat same · ফলো: AVG · ইউজ: finance
IV 3. NULL vs ''
missing vs empty · email · ভুল: one filter · ফলো: both present? · ইউজ: CRM
IV 4. Why = NULL fails
UNKNOWN · WHERE · ভুল: keep using = · ফলো: three-valued · ইউজ: debug
IV 5. IS NULL vs IS NOT NULL
missing vs exists · ভুল: != · ফলো: AND combine · ইউজ: HR
IV 6. COUNT NULL
COUNT(*) vs COUNT(col) · eg 4 vs 3 · ভুল: same · ফলো: percent missing · ইউজ: analytics
IV 7. AVG NULL
ignores · ÷non-NULL · ভুল: ÷all rows · ফলো: SUM · ইউজ: reporting
IV 8. SUM NULL
ignores · ভুল: add 0 automatically in mind · ফলো: COALESCE first? · ইউজ: finance
IV 9. GROUP BY NULL
NULL group · ভুল: always drop · ফলো: filter IS NOT NULL · ইউজ: org charts
IV 10. ORDER BY NULL
varies · control IS NULL · ভুল: assume always last · ফলো: MySQL demo · ইউজ: UI
IV 11. NOT IN + NULL
surprises · add IS NOT NULL · ভুল: ignore · ফলো: NOT EXISTS later · ইউজ: filters
IV 12. COALESCE
replace · COALESCE(bonus,0) · ভুল: always · ফলো: multi-arg · ইউজ: dashboards
IV 13. IFNULL
MySQL 2-arg · ভুল: portable claim · ফলো: vs COALESCE · ইউজ: MySQL apps
IV 14. NULLIF
equal→NULL · /NULLIF(q,0) · ভুল: confuse COALESCE · ফলো: when use · ইউজ: KPIs
IV 15. CASE + NULL
labels · ভুল: = NULL in CASE · ফলো: nested · ইউজ: BI
IV 16. Replace NULL
COALESCE/IFNULL/CASE · ভুল: UPDATE all blindly · ফলো: document meaning · ইউজ: ETL
IV 17. Count NULLs
COUNT(*) WHERE col IS NULL · ভুল: COUNT(NULL) · ফলো: % · ইউজ: DQ
IV 18. NULL percentage
COUNT missing / COUNT(*) · ভুল: COUNT(col)/COUNT(*) only · ফলো: by dept · ইউজ: quality score
IV 19. Before reporting
define NULL meaning · replace carefully · ভুল: hide all · ফলো: stakeholder · ইউজ: BI
IV 20. Pipelines
validate null rates · ভুল: silent fill 0 · ফলো: alerts · ইউজ: DE
IV 21. Active staff
resign IS NULL · ভুল: resign='' · ফলো: status col · ইউজ: HR
IV 22. Insert NULL
NULL keyword · ভুল: 'NULL' · ফলো: DEFAULT · ইউজ: loading
IV 23. Both missing
AND IS NULL · ভুল: OR · ফলো: either · ইউজ: contact DQ
IV 24. Core memory
NULL≠0≠'' ; IS NULL ✅ · ভুল: = NULL · ফলো: teach junior · ইউজ: mentoring
IV 25. Bonus missing req
bonus IS NULL · ভুল: bonus=0 · ফলো: COALESCE display · ইউজ: payroll
IV 26. Display 0
COALESCE(bonus,0) · ভুল: change source blindly · ফলো: report only · ইউজ: dashboard
IV 27. MIN/MAX NULL
ignore · ভুল: NULL as min · ফলো: empty set · ইউজ: stats
IV 28. DISTINCT NULL
one NULL value · ভুল: many NULLs distinct · ফলো: count · ইউজ: QA
IV 29. Space vs NULL
' ' not NULL · ভুল: trim ignore · ফলো: clean · ইউজ: text fields
IV 30. Final rule
NULL is no known value · ভুল: ordinary value · ফলো: choose tool · ইউজ: daily SQL
35

Homework

বাড়ি

প্রশ্ন:

  1. NULL phones
  2. NULL emails
  3. NULL bonuses
  4. Non-NULL bonuses
  5. Count NULLs
  6. Count non-NULLs
  7. COUNT(*) vs COUNT(salary)
  8. COALESCE bonus 0
  9. COALESCE email Not Available
  10. CASE WHEN
  11. Handle NULL department
  12. GROUP BY with NULL
  13. Explain NULL vs 0
  14. NULL vs ''
  15. Why = NULL wrong
উত্তর ১
WHERE phone IS NULL;
উত্তর ২
WHERE email IS NULL;
উত্তর ৩
WHERE bonus IS NULL;
উত্তর ৪
WHERE bonus IS NOT NULL;
উত্তর ৫
SELECT COUNT(*) FROM employees WHERE phone IS NULL;
উত্তর ৬
SELECT COUNT(*) FROM employees WHERE phone IS NOT NULL;
উত্তর ৭
COUNT(*)=all rows; COUNT(salary)=non-NULL salaries only
উত্তর ৮
SELECT COALESCE(bonus,0) FROM employees;
উত্তর ৯
SELECT COALESCE(email,'Not Available') FROM employees;
উত্তর ১০
CASE WHEN bonus IS NULL THEN 'No Bonus Data' ELSE 'Bonus Available' END
উত্তর ১১
WHERE department IS NOT NULL (or COALESCE label)
উত্তর ১২
GROUP BY department — NULL own group; filter if needed
উত্তর ১৩
NULL=missing; 0=zero
উত্তর ১৪
NULL=missing; ''=empty text
উত্তর ১৫
Comparison becomes UNKNOWN — use IS NULL