📋 বিষয়সূচী (Table of Contents)

01

CRUD কী?

⏱ ১৫ মিনিট
🧑‍🏫 কল্পনা করো

একটা স্কুল ম্যানেজমেন্ট সিস্টেম আছে। প্রতিদিন স্কুলকে করতে হয়:

➕ নতুন শিক্ষার্থী ভর্তি করা

👀 শিক্ষার্থীর তথ্য দেখা

✏️ ফোন নম্বর হালনাগাদ করা

🗑️ পাস করে যাওয়া শিক্ষার্থীর রেকর্ড সরানো

লক্ষ্য করো, এই চারটা কাজ আসলে চারটা মৌলিক ধরনের কাজ — নতুন কিছু তৈরি করা, তথ্য দেখা, তথ্য পরিবর্তন করা, এবং অপ্রয়োজনীয় তথ্য মুছে ফেলা। এই চারটাকে একসাথে বলা হয় CRUD

CREATEতৈরি করা
READদেখা
UPDATEপরিবর্তন করা
DELETEমুছে ফেলা
CREATE
READ
UPDATE
DELETE

সংজ্ঞা: CRUD মানে হলো Create (তৈরি), Read (পড়া/দেখা), Update (হালনাগাদ) ও Delete (মুছে ফেলা) — এই চারটা মৌলিক অপারেশন, যা প্রায় প্রতিটা সফটওয়্যার অ্যাপ্লিকেশন ডেটাবেজের সাথে করে থাকে।

💡 প্রায় সব অ্যাপেই CRUD আছে

Facebook-এ পোস্ট করা (Create), নিউজফিড দেখা (Read), পোস্ট এডিট করা (Update), পোস্ট মুছে ফেলা (Delete) — সবই CRUD। Amazon, YouTube, ব্যাংকিং অ্যাপ, হাসপাতাল সিস্টেম — সব জায়গাতেই এই একই চারটা কাজ ঘুরেফিরে আসে।

02

ধারণাগতভাবে CRUD বোঝা

⏱ ১৫ মিনিট

➕ CREATE — নতুন রেকর্ড যোগ করা

ডেটাবেজে সম্পূর্ণ নতুন একটা তথ্য যোগ করা।

🎓 শিক্ষার্থী ভর্তি

🧑‍💼 নতুন কাস্টমার রেজিস্ট্রেশন

📦 নতুন প্রোডাক্ট এন্ট্রি

👀 READ — ডেটা দেখা

ডেটাবেজে থাকা তথ্য খুঁজে বের করে দেখা, কোনো পরিবর্তন না করে।

🔍 শিক্ষার্থী খোঁজা

🧾 কাস্টমারের অর্ডার দেখা

📋 কর্মচারীর তালিকা প্রদর্শন

✏️ UPDATE — বিদ্যমান তথ্য পরিবর্তন

ইতিমধ্যে থাকা কোনো রেকর্ডের কোনো অংশ পরিবর্তন করা।

🏠 ঠিকানা পরিবর্তন

📱 মোবাইল নম্বর হালনাগাদ

💰 প্রোডাক্টের দাম পরিবর্তন

🗑️ DELETE — অপ্রয়োজনীয় ডেটা মুছে ফেলা

ডেটাবেজ থেকে একটা রেকর্ড স্থায়ীভাবে সরিয়ে ফেলা।

❌ কাস্টমার অ্যাকাউন্ট মুছে ফেলা

🗑️ প্রোডাক্ট সরানো

👤 কর্মচারীর রেকর্ড মুছে ফেলা

📋 তুলনামূলক টেবিল

অপারেশনকী করেবাস্তব উদাহরণডেটার ওপর প্রভাব
Createনতুন রেকর্ড যোগ করেনতুন শিক্ষার্থী ভর্তিরেকর্ড সংখ্যা বাড়ে
Readরেকর্ড দেখায়, পরিবর্তন করে নাশিক্ষার্থী খোঁজাকোনো পরিবর্তন হয় না
Updateবিদ্যমান রেকর্ড পরিবর্তন করেফোন নম্বর পরিবর্তনরেকর্ডের মান বদলায়
Deleteরেকর্ড স্থায়ীভাবে সরায়পাস করা শিক্ষার্থী রিমুভরেকর্ড সংখ্যা কমে
03

SQL CREATE Operations

⏱ ২৫ মিনিট

ধরো আমাদের একটা Students নামের টেবিল আছে, যেখানে শিক্ষার্থীর তথ্য রাখা হয়। এখন আমরা নতুন একজন শিক্ষার্থী যোগ করবো।

আগে (Before Insert)
idnameclass
1রিমা
2সাকিব
SQL কোয়েরি
INSERT INTO Students (id, name, class) VALUES (3, 'তানভীর', 8);
ফলাফল (After Insert)
idnameclass
1রিমা
2সাকিব
3তানভীর

লাইন-বাই-লাইন ব্যাখ্যা:

  • INSERT INTO Students — বলছি "Students" নামের টেবিলে নতুন কিছু ঢোকাতে চাই
  • (id, name, class) — কোন কোন কলামে মান বসাবো তা উল্লেখ করছি
  • VALUES (3, 'তানভীর', 8) — সেই কলামগুলোর জন্য প্রকৃত মান দিচ্ছি, যথাক্রমে id=3, name='তানভীর', class=8

একসাথে একাধিক রেকর্ড যোগ করা

SQL কোড
INSERT INTO Students (id, name, class) VALUES (4, 'মিতু', 7), (5, 'করিম', 9);
ব্যাখ্যা

কমা দিয়ে আলাদা করে একাধিক সারি (row) একসাথে একবারে যোগ করা যায়, প্রতিবার আলাদা INSERT লেখার দরকার নেই।

⚠️ সাধারণ শুরুর ভুল:
  • কলামের নাম ও মানের ক্রম না মেলানো (যেমন name-এর জায়গায় class লিখে ফেলা)
  • টেক্সট মানের চারপাশে কোটেশন (' ') ভুলে যাওয়া — VALUES (3, তানভীর, 8) এভাবে লিখলে এরর আসবে
  • মান ও কমা গণনায় ভুল করা (কলামের সংখ্যা ও মানের সংখ্যা না মেলা)
✅ Best Practice

সবসময় কলামের নাম স্পষ্টভাবে উল্লেখ করা ভালো (যদিও সবগুলো কলামে মান দিলে বাদ দেওয়া যায়), এতে কোড পড়া সহজ হয় এবং ভুল কম হয়।

04

SQL READ Operations

⏱ ২৫ মিনিট

এবার আমরা Students টেবিল থেকে বিভিন্নভাবে তথ্য দেখবো (দেখার জন্য মূল কমান্ড হলো SELECT)।

ধাপ ১: সব তথ্য দেখা

SQL কোড
SELECT * FROM Students;
ফলাফল
idnameclass
1রিমা
2সাকিব
3তানভীর

ব্যাখ্যা: * মানে "সব কলাম দেখাও"। এই কোয়েরি টেবিলের সব সারি ও সব কলাম দেখাবে।

ধাপ ২: নির্দিষ্ট কলাম দেখা

SQL কোড
SELECT name, class FROM Students;
ফলাফল
nameclass
রিমা
সাকিব
তানভীর

ব্যাখ্যা: শুধু nameclass কলাম দেখানো হচ্ছে, id বাদ দেওয়া হয়েছে।

ধাপ ৩: শর্ত দিয়ে খোঁজা (WHERE)

SQL কোড
SELECT * FROM Students WHERE class = 8;
ফলাফল
idnameclass
1রিমা
3তানভীর

ব্যাখ্যা: WHERE class = 8 মানে শুধু তাদের দেখাও যাদের class ঠিক ৮। এটা যেন লাইব্রেরিতে গিয়ে বলা "শুধু ৮ম শ্রেণির বইগুলো দেখাও"।

ধাপ ৪: ডুপ্লিকেট বাদ দিয়ে দেখা (DISTINCT)

SQL কোড
SELECT DISTINCT class FROM Students;
ফলাফল
class

ব্যাখ্যা: যদিও দুইজন শিক্ষার্থী ক্লাস ৮-এ আছে, DISTINCT শুধু আলাদা আলাদা মানগুলো একবার করে দেখায়।

ধাপ ৫: সাজিয়ে দেখা (ORDER BY)

SQL কোড
SELECT * FROM Students ORDER BY name ASC;
ফলাফল
idnameclass
1রিমা
2সাকিব
3তানভীর

ব্যাখ্যা: ORDER BY name ASC নামের ক্রম অনুযায়ী (A-Z বা বাংলা বর্ণক্রম) সাজিয়ে দেখায়। DESC লিখলে উল্টো ক্রমে (Z-A) দেখাবে।

ধাপ ৬: সীমিত সংখ্যক ফলাফল (LIMIT)

SQL কোড
SELECT * FROM Students LIMIT 2;
ফলাফল
idnameclass
1রিমা
2সাকিব

ব্যাখ্যা: LIMIT 2 শুধু প্রথম ২টা রেকর্ড দেখায়, বাকিগুলো বাদ দেয়।

🔍 ডেটাবেজ কীভাবে খোঁজে

যখন তুমি WHERE ব্যবহার করো, ডেটাবেজ প্রতিটা সারি একে একে পরীক্ষা করে দেখে শর্তটা পূরণ হচ্ছে কিনা। বড় টেবিলে এটা দ্রুত করার জন্য ডেটাবেজ বিশেষ কৌশল (Index) ব্যবহার করে, যা আমরা পরবর্তী ক্লাসে শিখবো।

⚠️ সাধারণ শুরুর ভুল:
  • প্রয়োজন ছাড়াই সবসময় SELECT * ব্যবহার করা, যা বড় টেবিলে অপ্রয়োজনীয় ডেটা লোড করে ধীরগতির কারণ হতে পারে
  • টেক্সট মান তুলনা করার সময় কোটেশন ভুলে যাওয়া (যেমন WHERE name = রিমা এর বদলে WHERE name = 'রিমা' লিখতে হবে)
05

SQL UPDATE Operations

⏱ ২০ মিনিট

ব্যবসাগুলো নিয়মিত ডেটা হালনাগাদ করে — যেমন কর্মচারীর বেতন বৃদ্ধি, ফোন নম্বর পরিবর্তন, ঠিকানা হালনাগাদ। SQL-এ এই কাজের জন্য ব্যবহার হয় UPDATE

আগে (Before Update)
idnameclass
2সাকিব
SQL কোয়েরি
UPDATE Students SET class = 10 WHERE id = 2;
ফলাফল (After Update)
idnameclass
2সাকিব১০

লাইন-বাই-লাইন ব্যাখ্যা:

  • UPDATE Students — বলছি Students টেবিলে পরিবর্তন করতে চাই
  • SET class = 10 — class কলামের নতুন মান হবে ১০
  • WHERE id = 2 — শুধু যার id হলো ২, শুধু তার জন্যই এই পরিবর্তন হবে
🚨 বিপজ্জনক ভুল

যদি ভুলে WHERE লেখা বাদ যায়:

UPDATE Students SET class = 10;

এই কোয়েরি চালালে টেবিলের সব শিক্ষার্থীর class পরিবর্তন হয়ে ১০ হয়ে যাবে! এজন্যই UPDATE চালানোর আগে WHERE শর্ত ভালোভাবে যাচাই করা অত্যন্ত জরুরি।

আরও উদাহরণ

SQL কোড
UPDATE Employees SET salary = salary + 5000 WHERE department = 'Sales';

ব্যাখ্যা: Sales বিভাগের সবার বেতন ৫০০০ টাকা করে বাড়িয়ে দেওয়া হলো।

✅ Best Practice

UPDATE চালানোর আগে একই WHERE শর্ত দিয়ে একটা SELECT চালিয়ে দেখে নাও ঠিক কোন কোন রেকর্ড প্রভাবিত হবে — এতে ভুল হওয়ার ঝুঁকি কমে।

06

SQL DELETE Operations

⏱ ২০ মিনিট

এবার আমরা শিখবো কীভাবে নিরাপদে ডেটা মুছে ফেলা যায়।

আগে (Before Delete)
idnameclass
1রিমা
2সাকিব১০
3তানভীর
SQL কোয়েরি
DELETE FROM Students WHERE id = 3;
ফলাফল (After Delete)
idnameclass
1রিমা
2সাকিব১০

ব্যাখ্যা: DELETE FROM Students WHERE id = 3 শুধু id=3 (তানভীর)-এর রেকর্ড টেবিল থেকে স্থায়ীভাবে সরিয়ে দিলো।

🚨 বিপজ্জনক ভুল

যদি WHERE বাদ দেওয়া হয়:

DELETE FROM Students;

এই কোয়েরি টেবিলের সব শিক্ষার্থীর রেকর্ড মুছে ফেলবে! এটা DELETE-এর সবচেয়ে বিপজ্জনক ভুলগুলোর একটা।

TRUNCATE ও DROP — ধারণাগত পরিচিতি

DELETE ছাড়াও আরও দুইটা কমান্ড আছে, যেগুলো আরও বড় পরিসরে ডেটা সরায়:

কমান্ডউদ্দেশ্যপ্রভাবফেরত আনা যায় কিনাসাধারণ ব্যবহার
DELETEনির্দিষ্ট শর্তে রেকর্ড মুছে ফেলানির্দিষ্ট সারি সরায়Transaction ব্যবহার করলে সম্ভব (মৌলিক ধারণা)একজন কাস্টমার রিমুভ করা
TRUNCATEটেবিলের সব ডেটা একসাথে খালি করাপুরো টেবিল খালি হয়, কাঠামো থাকেসাধারণত ফেরত আনা যায় নাটেস্ট ডেটা সম্পূর্ণ পরিষ্কার করা
DROPপুরো টেবিলটাই মুছে ফেলাটেবিল ও তার কাঠামো দুটোই চলে যায়ফেরত আনা যায় নাঅপ্রয়োজনীয় টেবিল সম্পূর্ণ সরানো
💡 সহজ উপমা

DELETE হলো একটা বইয়ের নির্দিষ্ট পাতা ছিঁড়ে ফেলা। TRUNCATE হলো পুরো বইয়ের সব পাতা খালি করে দেওয়া (কিন্তু বইয়ের বাঁধাই বা কাঠামো থাকবে)। আর DROP হলো পুরো বইটাই ফেলে দেওয়া — বাঁধাই সহ কিছুই থাকবে না।

✅ Best Practice

DELETE, TRUNCATE বা DROP চালানোর আগে সবসময় ডেটার একটা ব্যাকআপ রাখা উচিত, কারণ এগুলোর প্রভাব প্রায়ই স্থায়ী।

07

সম্পূর্ণ বিজনেস কেস স্টাডি: স্কুল ম্যানেজমেন্ট সিস্টেম

⏱ ২০ মিনিট
📖 গল্প

একটা স্কুল তাদের শিক্ষার্থীদের রেকর্ড ম্যানেজ করতে চায় — শুরু থেকে শেষ পর্যন্ত পুরো CRUD ওয়ার্কফ্লো আমরা ধাপে ধাপে দেখবো।

ধাপ ১: নতুন শিক্ষার্থী যোগ করা

INSERT INTO Students (id, name, class, phone) VALUES (101, 'নাবিলা', 7, '01710000001');

ধাপ ২: সব শিক্ষার্থী দেখা

SELECT * FROM Students;

ধাপ ৩: নির্দিষ্ট একজন শিক্ষার্থী খোঁজা

SELECT * FROM Students WHERE name = 'নাবিলা';

ধাপ ৪: তথ্য হালনাগাদ করা

UPDATE Students SET phone = '01710000099' WHERE id = 101;

ধাপ ৫: একজন শিক্ষার্থী মুছে ফেলা (যেমন পাস করে বের হয়ে যাওয়া)

DELETE FROM Students WHERE id = 101;

ধাপ ৬: শেষ রেকর্ড যাচাই করা

SELECT * FROM Students;
🔑 মূল শিক্ষা

লক্ষ্য করো, প্রতিটা ধাপেই আমরা প্রথমে SELECT দিয়ে যাচাই করেছি — এটাই পেশাদার SQL ব্যবহারের একটা গুরুত্বপূর্ণ অভ্যাস।

08

MySQL Workbench প্র্যাকটিক্যাল সেশন

⏱ প্র্যাকটিক্যাল

এখন আমরা দেখবো একজন Data Analyst বা Data Scientist বাস্তবে কীভাবে MySQL Workbench-এর মতো টুল ব্যবহার করে CRUD অপারেশন চালান।

ধাপ ১: ডেটাবেজের সাথে সংযোগ করা

MySQL Workbench খুলে সার্ভারের ঠিকানা, ইউজারনেম ও পাসওয়ার্ড দিয়ে "Connect" বাটনে ক্লিক করতে হয়। সফলভাবে সংযুক্ত হলে বাম পাশে ডেটাবেজ ও টেবিলের তালিকা দেখা যাবে।

ধাপ ২: টেবিল তৈরি করা (প্রাথমিক ধারণা)

SQL কোড
CREATE TABLE Students ( id INT PRIMARY KEY, name VARCHAR(50), class INT, phone VARCHAR(15) );
আউটপুট
Query executed successfully. 0 rows affected.

ব্যাখ্যা: এটা একটা খালি টেবিলের কাঠামো তৈরি করে — id সংখ্যা, name/phone লেখা, class সংখ্যা রাখার জায়গা তৈরি হলো। PRIMARY KEY মানে প্রতিটা শিক্ষার্থীর id অবশ্যই আলাদা হতে হবে।

ধাপ ৩: কোয়েরি চালানো ও ফলাফল দেখা

SQL কোড
SELECT * FROM Students;
আউটপুট (Workbench Result Grid-এ দেখা যাবে)
idnameclassphone
(এখনো কোনো ডেটা নেই — Empty set)

ধাপ ৪: সিনট্যাক্স এরর সংশোধন করা

ভুল কোড
SELECT * FRM Students;
এরর মেসেজ
Error: You have an error in your SQL syntax near 'FRM Students'

ব্যাখ্যা: FROM-এর বদলে ভুল করে FRM লেখা হয়েছে — MySQL কীওয়ার্ড ভুল বানানে চিনতে পারে না। সঠিক বানান FROM

ধাপ ৫: SQL স্ক্রিপ্ট সংরক্ষণ করা

Workbench-এ Ctrl+S (বা File → Save Script) দিয়ে পুরো SQL কোড একটা .sql ফাইলে সংরক্ষণ করা যায়, যাতে পরে আবার ব্যবহার করা যায়।

⚠️ সাধারণ শুরুর ভুল:
  • প্রতিটা লাইনের শেষে সেমিকোলন (;) দিতে ভুলে যাওয়া
  • টেবিল বা কলামের নাম ভুল বানানে লেখা
  • Workbench-এ ভুল ডেটাবেজ সিলেক্ট করে থাকা অবস্থায় কোয়েরি চালানো
09

সাধারণ শুরুর ভুল

⏱ আলোচনা
❌ কমা ভুলে যাওয়া

✅ সমাধান: একাধিক কলাম বা মান লেখার সময় প্রতিটার মাঝে কমা আছে কিনা যাচাই করো।

❌ টেক্সট মানের চারপাশে কোটেশন বাদ দেওয়া

✅ সমাধান: লেখা (string) মান সবসময় সিঙ্গেল কোটেশনের ('...') মধ্যে রাখো, সংখ্যা মানের জন্য দরকার নেই।

❌ WHERE ছাড়াই UPDATE করা

✅ সমাধান: সবসময় UPDATE-এর আগে ভাবো — "আমি কি নির্দিষ্ট করে কোন রেকর্ড বলে দিয়েছি?"

❌ ভুলবশত সব রেকর্ড মুছে ফেলা

✅ সমাধান: DELETE চালানোর আগে একই WHERE শর্ত দিয়ে SELECT চালিয়ে যাচাই করো।

❌ DELETE, TRUNCATE ও DROP গুলিয়ে ফেলা

✅ সমাধান: মনে রাখো — DELETE নির্দিষ্ট সারি সরায়, TRUNCATE পুরো টেবিল খালি করে, DROP পুরো টেবিলই মুছে দেয়।

❌ অপ্রয়োজনে SELECT * ব্যবহার করা

✅ সমাধান: শুধু যেসব কলাম দরকার তা নির্দিষ্ট করে লেখো, এতে পারফরম্যান্স ভালো হয়।

❌ ভুল কলামের নাম ব্যবহার করা

✅ সমাধান: কোয়েরি লেখার আগে টেবিলের কলামগুলো একবার দেখে নাও (DESCRIBE Students;)।

❌ সিনট্যাক্স এরর নিয়ে ভয় পাওয়া

✅ সমাধান: এরর মেসেজ মনোযোগ দিয়ে পড়ো, এটা প্রায়ই সরাসরি বলে দেয় সমস্যা কোথায়।

10

ইন্ডাস্ট্রি বেস্ট প্র্যাকটিস

⏱ আলোচনা

💾 ব্যাকআপ রাখা

DELETE বা UPDATE চালানোর আগে সবসময় ডেটার একটা ব্যাকআপ রাখা উচিত

🔍 আগে SELECT দিয়ে যাচাই

UPDATE/DELETE চালানোর আগে একই শর্ত দিয়ে SELECT চালিয়ে দেখে নেওয়া

🔄 Transaction ব্যবহার (প্রাথমিক ধারণা)

গুরুত্বপূর্ণ পরিবর্তনের সময় একাধিক ধাপকে একটা "প্যাকেজ" হিসেবে চালানো, যাতে মাঝপথে সমস্যা হলে সবটাই বাতিল করা যায়

📝 পড়ার-উপযোগী SQL লেখা

কীওয়ার্ড বড় হাতের অক্ষরে (SELECT, WHERE) ও ইনডেন্টেশন ঠিক রাখা

🏷️ অর্থবহ নাম ব্যবহার

টেবিল ও কলামের নাম এমন রাখা যা দেখলেই বোঝা যায় কী আছে (যেমন student_phone, শুধু col1 না)

⚠️ অজানা স্ক্রিপ্ট না চালানো

না বুঝে কোনো SQL স্ক্রিপ্ট কখনো সরাসরি প্রোডাকশন ডেটাবেজে চালানো উচিত না

11

ক্লাসরুম অ্যাক্টিভিটি

⏱ ইন্টারেক্টিভ
অ্যাক্টিভিটি ১ (CRUD চেনা): বোর্ডে কিছু বাস্তব কাজ লিখো (যেমন "Instagram-এ ছবি পোস্ট করা", "প্রোফাইল বায়ো পরিবর্তন করা") এবং শিক্ষার্থীদের বলতে হবে এটা CRUD-এর কোন অপারেশন।
অ্যাক্টিভিটি ২ (কোয়েরি অনুমান): একটা বিজনেস সিনারিও দাও (যেমন "সব কাস্টমারের মধ্যে যাদের বয়স ৩০-এর বেশি তাদের দেখাও") এবং শিক্ষার্থীদের বলতে হবে তারা কোন SQL কোয়েরি লিখতো।
অ্যাক্টিভিটি ৩ (আউটপুট অনুমান): একটা SQL কোয়েরি ও একটা ছোট টেবিল দেখিয়ে শিক্ষার্থীদের বলতে হবে ফলাফল কী হবে।
অ্যাক্টিভিটি ৪ (ভুল খুঁজে বের করা): ইচ্ছাকৃতভাবে ভুল করা কয়েকটা SQL স্টেটমেন্ট দেখাও এবং শিক্ষার্থীদের বলতে হবে ভুলটা কোথায়।
অ্যাক্টিভিটি ৫ (গ্রুপ প্রজেক্ট): ছোট দলে ভাগ হয়ে একটা "Student Management System"-এর জন্য CREATE, READ, UPDATE, DELETE কোয়েরি লিখতে হবে।
12

রিভিশন ও প্রশ্নোত্তর

⏱ শেষ পর্যালোচনা

📌 দ্রুত রিভিশন নোট

  • CRUD = Create, Read, Update, Delete — প্রায় প্রতিটা অ্যাপের ভিত্তি
  • Create → INSERT INTO ... VALUES ...
  • Read → SELECT ... FROM ... WHERE ...
  • Update → UPDATE ... SET ... WHERE ...
  • Delete → DELETE FROM ... WHERE ...
  • WHERE ছাড়া UPDATE/DELETE = সব রেকর্ড প্রভাবিত হওয়ার ঝুঁকি
  • DELETE (নির্দিষ্ট সারি) vs TRUNCATE (পুরো টেবিল খালি) vs DROP (পুরো টেবিল মুছে ফেলা)

🔄 CRUD ওয়ার্কফ্লো ডায়াগ্রাম

User
Application
(ওয়েবসাইট/অ্যাপ)
SQL CRUD
(INSERT/SELECT/UPDATE/DELETE)
Database
Updated Data

যখন তুমি Facebook-এ একটা পোস্ট করো, ঠিক এই একই ধাপগুলো পর্দার আড়ালে ঘটে।

🌐 বাস্তব অ্যাপে CRUD

অ্যাপCreateReadUpdateDelete
Facebookপোস্ট করানিউজফিড দেখাপোস্ট এডিট করাপোস্ট মুছে ফেলা
Instagramছবি আপলোডফিড স্ক্রল করাক্যাপশন পরিবর্তনছবি ডিলিট করা
YouTubeভিডিও আপলোডভিডিও দেখাটাইটেল পরিবর্তনভিডিও রিমুভ করা
Amazonঅর্ডার দেওয়াপ্রোডাক্ট দেখাঠিকানা পরিবর্তনঅর্ডার বাতিল
Banking Appনতুন অ্যাকাউন্ট খোলাব্যালেন্স দেখাপ্রোফাইল হালনাগাদঅ্যাকাউন্ট বন্ধ করা
Hospital Systemনতুন রোগী ভর্তিরোগীর ইতিহাস দেখাচিকিৎসার তথ্য হালনাগাদডিসচার্জ হওয়া রোগীর রেকর্ড আর্কাইভ
School Systemশিক্ষার্থী ভর্তিরেজাল্ট দেখাযোগাযোগের তথ্য পরিবর্তনপাসড-আউট শিক্ষার্থী রিমুভ

📋 CRUD কমান্ড তুলনামূলক টেবিল

কমান্ডউদ্দেশ্যসাধারণ সিনট্যাক্সপ্রভাবRollback সম্ভব?
INSERTনতুন রেকর্ড যোগINSERT INTO t (...) VALUES (...)নতুন সারি যোগ হয়Transaction থাকলে হ্যাঁ
SELECTডেটা দেখাSELECT ... FROM t WHERE ...কোনো পরিবর্তন হয় নাপ্রযোজ্য নয়
UPDATEবিদ্যমান ডেটা পরিবর্তনUPDATE t SET ... WHERE ...নির্দিষ্ট সারির মান বদলায়Transaction থাকলে হ্যাঁ
DELETEনির্দিষ্ট রেকর্ড মুছে ফেলাDELETE FROM t WHERE ...নির্দিষ্ট সারি সরে যায়Transaction থাকলে হ্যাঁ
TRUNCATEপুরো টেবিল খালি করাTRUNCATE TABLE tসব সারি একসাথে সরে, কাঠামো থাকেসাধারণত না
DROPটেবিল সম্পূর্ণ মুছে ফেলাDROP TABLE tটেবিল ও কাঠামো দুটোই চলে যায়না

❓ ভাইভা প্রশ্ন

১. CRUD-এর পূর্ণরূপ কী?
Create, Read, Update, Delete।
২. নতুন রেকর্ড যোগ করার SQL কমান্ড কী?
INSERT INTO।
৩. WHERE ছাড়া UPDATE করলে কী হয়?
টেবিলের সব রেকর্ড পরিবর্তিত হয়ে যায়।
৪. DELETE ও TRUNCATE-এর পার্থক্য কী?
DELETE নির্দিষ্ট শর্তে রেকর্ড মুছে, TRUNCATE পুরো টেবিল একসাথে খালি করে।
৫. DISTINCT কী কাজ করে?
ডুপ্লিকেট মান বাদ দিয়ে শুধু আলাদা আলাদা মান দেখায়।

💼 ইন্টারভিউ প্রস্তুতি — টপ ৩০টি বিগিনার লেভেল প্রশ্ন

১. CRUD কী?
Create, Read, Update, Delete — ডেটাবেজের চারটা মৌলিক অপারেশন।
২. INSERT INTO কমান্ডের কাজ কী?
টেবিলে নতুন রেকর্ড যোগ করা।
৩. SELECT * এর অর্থ কী?
টেবিলের সব কলাম দেখানো।
৪. WHERE ক্লজ কী কাজ করে?
নির্দিষ্ট শর্ত পূরণ করা রেকর্ড বাছাই করে।
৫. ORDER BY কী কাজে লাগে?
ফলাফল নির্দিষ্ট ক্রমে (ঊর্ধ্বক্রম/অধোক্রম) সাজাতে।
৬. LIMIT কী কাজ করে?
ফলাফলের সংখ্যা সীমিত করে।
৭. UPDATE কমান্ডে SET কী কাজ করে?
কোন কলামের মান কী হবে তা নির্ধারণ করে।
৮. WHERE ছাড়া DELETE চালালে কী ঘটে?
টেবিলের সব রেকর্ড মুছে যায়।
৯. DROP TABLE-এর প্রভাব কী?
টেবিল ও তার কাঠামো দুটোই স্থায়ীভাবে মুছে যায়।
১০. TRUNCATE ও DROP-এর পার্থক্য কী?
TRUNCATE টেবিলের ডেটা খালি করে কিন্তু কাঠামো রাখে, DROP পুরো টেবিলই মুছে দেয়।
১১. DISTINCT কেন ব্যবহার করা হয়?
ডুপ্লিকেট মান বাদ দিয়ে অনন্য মান দেখাতে।
১২. একাধিক রেকর্ড একসাথে INSERT করা যায় কীভাবে?
VALUES-এর পর কমা দিয়ে একাধিক সেট মান লিখে।
১৩. UPDATE চালানোর আগে কী করা উচিত?
একই WHERE শর্ত দিয়ে SELECT চালিয়ে যাচাই করা।
১৪. Transaction কী (মৌলিক ধারণা)?
একাধিক SQL ধাপকে একসাথে একটা প্যাকেজ হিসেবে চালানোর পদ্ধতি, যাতে সমস্যা হলে পুরোটা বাতিল করা যায়।
১৫. PRIMARY KEY কী?
এমন একটা কলাম যার মান প্রতিটা রেকর্ডে আলাদা (unique) হতে হয়।
১৬. VARCHAR কী?
লেখা (টেক্সট) ধরনের ডেটা রাখার জন্য একটা কলাম টাইপ।
১৭. SELECT DISTINCT class ও SELECT class-এর পার্থক্য কী?
প্রথমটা ডুপ্লিকেট বাদ দিয়ে দেখায়, দ্বিতীয়টা সব মান (ডুপ্লিকেট-সহ) দেখায়।
১৮. কেন প্রতিটা SQL স্টেটমেন্টের শেষে সেমিকোলন (;) দেওয়া হয়?
একটা স্টেটমেন্ট শেষ হয়েছে তা বোঝাতে, বিশেষ করে যখন একাধিক স্টেটমেন্ট একসাথে লেখা হয়।
১৯. SELECT * FROM Students LIMIT 5; কী করবে?
Students টেবিলের প্রথম ৫টা রেকর্ড দেখাবে।
২০. কেন সবসময় SELECT * ব্যবহার না করার পরামর্শ দেওয়া হয়?
অপ্রয়োজনীয় কলাম লোড হওয়ায় পারফরম্যান্স কমে যেতে পারে, বিশেষ করে বড় টেবিলে।
২১. একটা রেকর্ড UPDATE করার সময় একাধিক কলাম একসাথে পরিবর্তন করা যায় কি?
হ্যাঁ, SET-এর পর কমা দিয়ে একাধিক কলাম=মান লিখে।
২২. ডেটাবেজ ব্যাকআপ কেন গুরুত্বপূর্ণ?
ভুল করে ডেটা মুছে গেলে বা নষ্ট হলে তা পুনরুদ্ধার করার জন্য।
২৩. CREATE TABLE কমান্ডের কাজ কী?
একটা নতুন টেবিলের কাঠামো (কলাম ও তাদের ধরন) তৈরি করা।
২৪. INT ডেটা টাইপ কী রাখে?
পূর্ণসংখ্যা (Integer) মান।
২৫. একটা কমা মিস হলে কী সমস্যা হতে পারে?
সিনট্যাক্স এরর দেখা দেবে এবং কোয়েরি চলবে না।
২৬. কেন WHERE-এর শর্ত ভুল হলে বিপজ্জনক হতে পারে?
ভুল শর্তের কারণে অপ্রত্যাশিত রেকর্ড আপডেট বা ডিলিট হয়ে যেতে পারে।
২৭. Read-only অপারেশন কোনটি?
SELECT (READ), কারণ এটা ডেটা পরিবর্তন করে না।
২৮. একটা সিনট্যাক্স এরর দেখলে প্রথমে কী করা উচিত?
এরর মেসেজ মনোযোগ দিয়ে পড়ে কোথায় সমস্যা তা খুঁজে বের করা।
২৯. MySQL Workbench কী?
MySQL ডেটাবেজে সংযোগ করে SQL কোয়েরি লেখা ও চালানোর একটা জনপ্রিয় গ্রাফিক্যাল টুল।
৩০. কেন CRUD-কে "ডেটাবেজ ম্যানেজমেন্টের ভিত্তি" বলা হয়?
কারণ প্রায় প্রতিটা সফটওয়্যার অ্যাপ্লিকেশনের মূল কাজকর্ম এই চারটা অপারেশনের মধ্য দিয়েই ঘটে।

✅ MCQ প্র্যাকটিস

১. CRUD-এর "R" কী বোঝায়?
(ক) Remove (খ) Read (গ) Reset (ঘ) Row
উত্তর: (খ) Read
২. নতুন রেকর্ড যোগ করতে কোন কমান্ড ব্যবহার হয়?
(ক) SELECT (খ) UPDATE (গ) INSERT INTO (ঘ) DELETE
উত্তর: (গ) INSERT INTO
৩. WHERE ছাড়া কোন কমান্ড চালালে সবচেয়ে বেশি ঝুঁকি থাকে?
(ক) SELECT (খ) UPDATE/DELETE (গ) CREATE TABLE (ঘ) DISTINCT
উত্তর: (খ) UPDATE/DELETE
৪. পুরো টেবিল মুছে ফেলার (কাঠামোসহ) কমান্ড কোনটি?
(ক) DELETE (খ) TRUNCATE (গ) DROP (ঘ) UPDATE
উত্তর: (গ) DROP
৫. ডুপ্লিকেট মান বাদ দিয়ে দেখাতে কোনটি ব্যবহার হয়?
(ক) LIMIT (খ) ORDER BY (গ) DISTINCT (ঘ) WHERE
উত্তর: (গ) DISTINCT

📝 হোমওয়ার্ক অ্যাসাইনমেন্ট

  1. একটা "Library Management System"-এর জন্য একটা Books টেবিল কল্পনা করো (id, title, author, available) এবং তার জন্য CREATE, READ, UPDATE, DELETE-এর একটা করে SQL কোয়েরি লেখো।
  2. DELETE, TRUNCATE ও DROP-এর মধ্যে পার্থক্য নিজের ভাষায় ৫টা বাক্যে লেখো।
  3. CRUD ওয়ার্কফ্লো ডায়াগ্রাম (User → Application → SQL CRUD → Database → Updated Data) নিজ হাতে এঁকে আনো এবং একটা বাস্তব অ্যাপের উদাহরণ দিয়ে ব্যাখ্যা করো।