Database Tutorials CRUD অপারেশন গাইড ও নোট

320

CRUD হল Create, Read, Update, Delete এর সংক্ষিপ্ত রূপ, যা ডেটাবেস পরিচালনায় ব্যবহৃত মৌলিক অপারেশনগুলি নির্দেশ করে। এই অপারেশনগুলির মাধ্যমে ডেটাবেসে তথ্য তৈরি, পড়া, আপডেট এবং মুছে ফেলার কাজ করা হয়। CRUD অপারেশনগুলি মূলত SQL কুয়েরি ব্যবহার করে সম্পাদিত হয় এবং ওয়েব ডেভেলপমেন্ট, অ্যাপ্লিকেশন ডেভেলপমেন্ট, এবং ডেটাবেস ব্যবস্থাপনায় অত্যন্ত গুরুত্বপূর্ণ।


1. Create (তৈরি করা)

এই অপারেশনটি ডেটাবেসে নতুন রেকর্ড তৈরি করতে ব্যবহৃত হয়। এটি INSERT INTO SQL কুয়েরি দিয়ে সম্পাদিত হয়।

SQL উদাহরণ:

INSERT INTO users (name, email, age) 
VALUES ('John Doe', 'johndoe@example.com', 30);

এই কুয়েরি ডেটাবেসের users টেবিলে একটি নতুন রেকর্ড তৈরি করবে, যেখানে নাম John Doe, ইমেইল johndoe@example.com এবং বয়স 30 হবে।


2. Read (পড়া)

এই অপারেশনটি ডেটাবেস থেকে তথ্য পড়তে ব্যবহৃত হয়। এটি SELECT SQL কুয়েরি দিয়ে সম্পাদিত হয়।

SQL উদাহরণ:

SELECT * FROM users;

এই কুয়েরি users টেবিলের সব রেকর্ড দেখাবে।

আরেকটি উদাহরণ:

SELECT name, email FROM users WHERE age > 25;

এটি age এর মান 25 এর চেয়ে বড় এমন সকল ব্যবহারকারীর নাম এবং ইমেইল দেখাবে।


3. Update (আপডেট করা)

এই অপারেশনটি ডেটাবেসে থাকা একটি বিদ্যমান রেকর্ডের তথ্য আপডেট করতে ব্যবহৃত হয়। এটি UPDATE SQL কুয়েরি দিয়ে সম্পাদিত হয়।

SQL উদাহরণ:

UPDATE users 
SET age = 31 
WHERE name = 'John Doe';

এই কুয়েরি John Doe এর বয়স 31 এ আপডেট করবে।

এটি লক্ষ্য করুন, WHERE ক্লজ ব্যবহার না করলে পুরো টেবিলের তথ্য আপডেট হয়ে যেতে পারে, যা অবাঞ্ছিত ফলাফল হতে পারে।


4. Delete (মুছে ফেলা)

এই অপারেশনটি ডেটাবেস থেকে তথ্য মুছে ফেলতে ব্যবহৃত হয়। এটি DELETE SQL কুয়েরি দিয়ে সম্পাদিত হয়।

SQL উদাহরণ:

DELETE FROM users WHERE name = 'John Doe';

এই কুয়েরি users টেবিল থেকে John Doe নামক ব্যবহারকারীকে মুছে ফেলবে।

যদি WHERE শর্ত না দেয়া হয়, তাহলে পুরো টেবিলের সব রেকর্ড মুছে যাবে, তাই সতর্ক থাকতে হবে।


CRUD অপারেশনের বাস্তবিক উদাহরণ

ধরা যাক, আমাদের একটি users টেবিল আছে, যার স্ট্রাকচার নিচের মত:

idnameemailage
1Alicealice@example.com25
2Bobbob@example.com28

1. Create: নতুন ইউজার তৈরি

INSERT INTO users (name, email, age)
VALUES ('Charlie', 'charlie@example.com', 22);

2. Read: ইউজারের তথ্য পড়া

SELECT * FROM users WHERE name = 'Alice';

3. Update: ইউজারের বয়স আপডেট করা

UPDATE users
SET age = 26
WHERE name = 'Alice';

4. Delete: ইউজার মুছে ফেলা

DELETE FROM users WHERE name = 'Bob';

সারাংশ

CRUD অপারেশনগুলি একটি ডেটাবেসে তথ্য পরিচালনা করার মূল ভিত্তি। এই অপারেশনগুলির মাধ্যমে ডেটাবেসে রেকর্ড তৈরি, পড়া, আপডেট এবং মুছে ফেলার কাজ করা হয়। SQL ভাষায় এই কাজগুলি INSERT, SELECT, UPDATE, এবং DELETE কুয়েরি দিয়ে করা হয়। এগুলি প্রতিটি অ্যাপ্লিকেশন এবং ডেটাবেস ব্যবস্থাপনায় অত্যন্ত গুরুত্বপূর্ণ।

Content added By

Create: ডেটা ইনসার্ট করা

236

MySQL এ ডেটা ইনসার্ট করতে INSERT INTO কমান্ড ব্যবহার করা হয়। এটি একটি নির্দিষ্ট টেবিলে নতুন রেকর্ড বা ডেটা যুক্ত করার জন্য ব্যবহৃত হয়। এখানে ডেটা ইনসার্ট করার বিভিন্ন পদ্ধতির উদাহরণ দেওয়া হল:


1. একটি রেকর্ড ইনসার্ট করা

INSERT INTO table_name (column1, column2, column3)
VALUES (value1, value2, value3);
  • ব্যাখ্যা: এখানে table_name হলো টেবিলের নাম এবং column1, column2, column3 হলো টেবিলের কলাম। value1, value2, value3 কলামগুলির জন্য আপনি যেসব মান ইনপুট দিতে চান তা হলো।

উদাহরণ:

ধরা যাক, আপনার একটি employees নামক টেবিল রয়েছে যার কলামগুলো হলো id, name, salary:

INSERT INTO employees (id, name, salary)
VALUES (1, 'John Doe', 50000);

এই কমান্ডটি employees টেবিলে একটি রেকর্ড ইনসার্ট করবে, যেখানে id হবে 1, name হবে 'John Doe' এবং salary হবে 50000।


2. একাধিক রেকর্ড ইনসার্ট করা

একাধিক রেকর্ড একসাথে ইনসার্ট করতে পারেন:

INSERT INTO table_name (column1, column2, column3)
VALUES
(value1, value2, value3),
(value4, value5, value6),
(value7, value8, value9);
  • ব্যাখ্যা: একাধিক রেকর্ড ইনসার্ট করতে চাইলে, প্রতিটি রেকর্ডের মানের জন্য আলাদা আলাদা প্যারেন্টেসিস ব্যবহার করুন এবং মানগুলো কমা দিয়ে পৃথক করুন।

উদাহরণ:

INSERT INTO employees (id, name, salary)
VALUES
(2, 'Jane Smith', 55000),
(3, 'Tom Harris', 45000),
(4, 'Sara Lee', 60000);

এটি employees টেবিলে তিনটি নতুন রেকর্ড ইনসার্ট করবে।


3. কিছু কলামে মান ইনসার্ট করা (ডিফল্ট কলাম ব্যবহার করা)

যদি কিছু কলামে মান ইনসার্ট না করতে চান এবং সেই কলামগুলোতে ডিফল্ট মান থাকতে পারে, তবে সেগুলি বাদ দিয়েও ইনসার্ট করা সম্ভব।

INSERT INTO table_name (column1, column2)
VALUES (value1, value2);
  • ব্যাখ্যা: এখানে শুধুমাত্র নির্দিষ্ট কলামগুলোর জন্য মান ইনপুট করা হচ্ছে এবং বাকি কলামগুলির জন্য ডিফল্ট মান ব্যবহৃত হবে।

উদাহরণ:

ধরা যাক, employees টেবিলে salary কলামের জন্য ডিফল্ট মান রয়েছে:

INSERT INTO employees (id, name)
VALUES (5, 'Alex Green');

এটি employees টেবিলে id এবং name কলামে মান ইনসার্ট করবে, কিন্তু salary কলামে ডিফল্ট মান থাকবে।


4. AUTO_INCREMENT কলাম ব্যবহার করা

যদি আপনার টেবিলের কোনো কলাম AUTO_INCREMENT ব্যবহার করে থাকে (যেমন id), তাহলে সেই কলামে মান ইনপুট না করেও নতুন রেকর্ড ইনসার্ট করা সম্ভব। AUTO_INCREMENT কলামটি স্বয়ংক্রিয়ভাবে একটি ভিন্ন মান প্রদান করে।

INSERT INTO table_name (column2, column3)
VALUES (value2, value3);

উদাহরণ:

ধরা যাক, employees টেবিলে id কলামটি AUTO_INCREMENT:

INSERT INTO employees (name, salary)
VALUES ('Michael Johnson', 70000);

এটি employees টেবিলে একটি নতুন রেকর্ড ইনসার্ট করবে এবং id কলামের জন্য স্বয়ংক্রিয়ভাবে একটি ইউনিক মান প্রদান করবে।


5. SELECT ব্যবহার করে ডেটা ইনসার্ট করা

একটি টেবিল থেকে ডেটা নির্বাচন করে অন্য একটি টেবিলে ইনসার্ট করা যায়:

INSERT INTO table_name (column1, column2, column3)
SELECT column1, column2, column3
FROM another_table
WHERE condition;
  • ব্যাখ্যা: এটি একটি টেবিল থেকে ডেটা নির্বাচন করে অন্য টেবিলে ইনসার্ট করার জন্য ব্যবহার করা হয়।

উদাহরণ:

INSERT INTO new_employees (id, name, salary)
SELECT id, name, salary
FROM employees
WHERE salary > 50000;

এটি employees টেবিল থেকে salary 50000 এর বেশি এমন সমস্ত রেকর্ড new_employees টেবিলে ইনসার্ট করবে।


সারাংশ

MySQL এ ডেটা ইনসার্ট করা বেশ সহজ এবং এর মাধ্যমে একাধিক রেকর্ড যুক্ত, আপডেট, অথবা ডিফল্ট মানের মাধ্যমে রেকর্ড যুক্ত করা যায়। INSERT INTO কমান্ডটি ডেটাবেস পরিচালনায় একটি গুরুত্বপূর্ণ ভূমিকা পালন করে।

Content added By

Read: ডেটা রিড করা (SELECT কুয়েরি)

341

MySQL এ SELECT কুয়েরি ব্যবহার করে ডেটাবেস থেকে তথ্য (ডেটা) পড়া (রিড করা) হয়। এটি সবচেয়ে সাধারণ এবং ব্যবহৃত SQL কুয়েরি। SELECT কুয়েরি দিয়ে আপনি এক বা একাধিক টেবিল থেকে ডেটা নির্বাচন করতে পারেন, এবং বিভিন্ন শর্তে (condition) ডেটা ফিল্টার করতে পারেন।


SELECT কুয়েরির মৌলিক গঠন

SELECT column1, column2, ...
FROM table_name;

এখানে:

  • column1, column2, ... হল সেই কলামের নাম যেগুলি আপনি টেবিল থেকে নির্বাচন করতে চান।
  • table_name হল টেবিলের নাম যেখান থেকে আপনি ডেটা নিতে চান।

SELECT কুয়েরির কিছু উদাহরণ

1. একটি টেবিল থেকে সব কলাম নির্বাচন করা

যদি আপনি একটি টেবিলের সব কলাম দেখতে চান, তাহলে আপনি * ব্যবহার করতে পারেন।

SELECT * FROM employees;

এটি employees টেবিলের সমস্ত কলাম এবং রেকর্ডগুলি রিটার্ন করবে।

2. নির্দিষ্ট কলাম নির্বাচন করা

আপনি যদি শুধু নির্দিষ্ট কলামগুলি দেখতে চান, তবে সেই কলামগুলির নাম নির্দিষ্ট করে দেবেন।

SELECT first_name, last_name FROM employees;

এটি employees টেবিলের first_name এবং last_name কলামগুলির তথ্য রিটার্ন করবে।

3. শর্ত অনুযায়ী ডেটা নির্বাচন করা (WHERE ক্লজ)

আপনি WHERE ক্লজ ব্যবহার করে ডেটা ফিল্টার করতে পারেন, অর্থাৎ, নির্দিষ্ট শর্ত পূর্ণ হলে ডেটা রিটার্ন হবে।

SELECT * FROM employees WHERE department = 'Sales';

এটি employees টেবিল থেকে শুধুমাত্র সেই রেকর্ডগুলো রিটার্ন করবে যেখানে department কলামের মান 'Sales'।

4. সংশ্লিষ্ট ডেটা নির্বাচন করা (ORDER BY)

আপনি ডেটা সাজানোর জন্য ORDER BY ক্লজ ব্যবহার করতে পারেন, যা ডেটাকে এক ascending (ASC) বা descending (DESC) অর্ডারে সাজায়।

SELECT first_name, last_name FROM employees ORDER BY first_name ASC;

এটি employees টেবিল থেকে first_name এবং last_name কলামগুলো রিটার্ন করবে এবং সেগুলো first_name অনুযায়ীAscending অর্ডারে সাজানো থাকবে।

5. ডুপ্লিকেট ডেটা অপসারণ করা (DISTINCT)

যদি আপনি একই ডেটা একাধিকবার দেখতে না চান, তাহলে DISTINCT ব্যবহার করে আপনি ডুপ্লিকেট রেকর্ডগুলি বাদ দিতে পারেন।

SELECT DISTINCT department FROM employees;

এটি employees টেবিল থেকে সকল অনন্য department নাম রিটার্ন করবে।

6. LIMIT ব্যবহার করে রেকর্ড সীমিত করা

আপনি যদি কেবল নির্দিষ্ট সংখ্যক রেকর্ড দেখতে চান, তাহলে LIMIT ব্যবহার করতে পারেন।

SELECT * FROM employees LIMIT 5;

এটি প্রথম ৫টি রেকর্ড রিটার্ন করবে employees টেবিল থেকে।


JOIN ব্যবহার করে একাধিক টেবিল থেকে ডেটা রিড করা

MySQL এ আপনি একাধিক টেবিলের মধ্যে সম্পর্ক স্থাপন করে ডেটা রিড করতে পারেন। JOIN ব্যবহার করে দুটি বা ততোধিক টেবিলের মধ্যে সম্পর্কিত ডেটা সংগ্রহ করা হয়।

7. INNER JOIN

SELECT employees.first_name, employees.last_name, departments.department_name
FROM employees
INNER JOIN departments
ON employees.department_id = departments.department_id;

এটি employees এবং departments টেবিল থেকে সম্পর্কিত ডেটা রিটার্ন করবে, যেখানে department_id কলামটি উভয় টেবিলেই মেলে।


সারাংশ

MySQL এ ডেটা রিড করার জন্য SELECT কুয়েরি ব্যবহার করা হয়। আপনি বিভিন্ন শর্ত, অর্ডার, সীমাবদ্ধতা, এবং সম্পর্কযুক্ত টেবিলের ডেটা নির্বাচন করতে পারেন। SELECT কুয়েরি একটি শক্তিশালী টুল, যা ডেটাবেসের ডেটা সংগ্রহ ও বিশ্লেষণের জন্য ব্যবহৃত হয়।

Content added By

Update: ডেটা আপডেট করা

260

MySQL-এ ডেটা আপডেট করার জন্য UPDATE কমান্ড ব্যবহার করা হয়। এই কমান্ডের মাধ্যমে আপনি একটি টেবিলের ডেটাবেসের নির্দিষ্ট রেকর্ড পরিবর্তন করতে পারেন। নিচে এর ব্যবহার এবং উদাহরণ দেওয়া হলো।


UPDATE কমান্ডের সিনট্যাক্স:

UPDATE [table_name]
SET [column1] = [new_value1], [column2] = [new_value2], ...
WHERE [condition];

ব্যাখ্যা:

  • [table_name]: যেখানে আপনি ডেটা আপডেট করতে চান, সেই টেবিলের নাম।
  • [column1], [column2], ...: আপডেট করার জন্য কলামগুলির নাম।
  • [new_value1], [new_value2], ...: প্রতিটি কলামের জন্য নতুন মান যা আপনি সেট করতে চান।
  • WHERE [condition]: আপনি যে রেকর্ডগুলো আপডেট করতে চান, তার জন্য শর্ত (যদি শর্ত না দেন, তাহলে পুরো টেবিলের ডেটা আপডেট হয়ে যাবে)।

UPDATE কমান্ডের উদাহরণ:

  1. একটি নির্দিষ্ট রেকর্ড আপডেট করা: ধরুন, আমাদের একটি employees টেবিল রয়েছে এবং এতে salary নামক একটি কলাম আছে। আমরা যদি একজন নির্দিষ্ট কর্মচারীর সেলারি আপডেট করতে চাই, তাহলে আমরা নিচের কমান্ডটি ব্যবহার করতে পারি:
UPDATE employees
SET salary = 50000
WHERE employee_id = 101;

এখানে:

  • employees টেবিলের salary কলামের মান 50000 করে দেওয়া হবে।
  • শুধু সেই রেকর্ড আপডেট হবে, যেখানে employee_id 101।
  1. একাধিক কলাম আপডেট করা: যদি আপনি একাধিক কলাম আপডেট করতে চান, তবে একাধিক SET প্যারামিটার ব্যবহার করতে পারেন:
UPDATE employees
SET salary = 55000, department = 'Sales'
WHERE employee_id = 102;

এখানে:

  • salary কলামের মান 55000 হবে।
  • department কলামের মান 'Sales' হবে।
  • এই পরিবর্তনটি কেবল সেই কর্মচারীর জন্য হবে, যার employee_id 102।
  1. পুরো টেবিল আপডেট করা: যদি আপনি কোনো শর্ত ছাড়াই পুরো টেবিলের সব রেকর্ড আপডেট করতে চান, তবে WHERE ক্লজ বাদ দিয়ে কমান্ড চালাতে পারেন:
UPDATE employees
SET salary = 40000;

এখানে:

  • employees টেবিলের সকল কর্মচারীর salary কলাম 40000 হবে।

UPDATE কমান্ডের সতর্কতা:

  • WHERE ক্লজ ব্যবহার করুন: যদি আপনি WHERE ক্লজ ব্যবহার না করেন, তাহলে পুরো টেবিলের সব রেকর্ড আপডেট হয়ে যাবে। তাই ডেটা আপডেট করার সময় সতর্ক থাকুন।
  • ব্যাকআপ নিন: বড় আকারের পরিবর্তন করার আগে ডেটাবেসের ব্যাকআপ নেওয়া ভাল, যেন কোন ভুল হলে আপনি আগের অবস্থায় ফিরে যেতে পারেন।

সারাংশ

MySQL-এ ডেটা আপডেট করার জন্য UPDATE কমান্ড ব্যবহার করা হয়। আপনি নির্দিষ্ট কলামের মান পরিবর্তন করতে পারেন, এবং এটি WHERE ক্লজের মাধ্যমে নির্দিষ্ট রেকর্ডগুলির উপর প্রভাব ফেলে।

Content added By

Delete: ডেটা ডিলিট করা

278

MySQL এর DELETE কমান্ড ব্যবহৃত হয় ডেটাবেসের টেবিল থেকে নির্দিষ্ট রেকর্ড বা ডেটা মুছে ফেলার জন্য। DELETE কমান্ডটি এক বা একাধিক রেকর্ড মুছে ফেলতে পারে এবং এটি সম্পূর্ণ টেবিল থেকে ডেটা মুছে ফেলতেও ব্যবহৃত হয় (যদি কোন শর্ত না দেওয়া হয়)। তবে DELETE কমান্ডটি মুছে ফেলা ডেটার জন্য কোন রিভার্স অপশন রাখে না, অর্থাৎ একবার মুছে ফেললে ডেটা পুনরুদ্ধার করা সম্ভব নয় (যদি ব্যাকআপ না থাকে)।

Syntax:

DELETE FROM table_name WHERE condition;
  • table_name: টেবিলের নাম যেখান থেকে ডেটা মুছে ফেলা হবে।
  • condition: শর্ত যা নির্দিষ্ট রেকর্ড বা ডেটা নির্বাচন করবে মুছে ফেলার জন্য। যদি এই শর্তটি না থাকে, তাহলে সমস্ত রেকর্ড মুছে যাবে।

Important Notes:

  • WHERE শর্ত না দিলে পুরো টেবিলের সমস্ত রেকর্ড মুছে যাবে।
  • DELETE কমান্ডটি শুধু রেকর্ড মুছে ফেলে, টেবিলের স্ট্রাকচার অপরিবর্তিত থাকে।

উদাহরণ:

  1. নির্দিষ্ট রেকর্ড মুছে ফেলা যদি আমরা students টেবিল থেকে একটি নির্দিষ্ট ছাত্রের (যেমন, নাম "John Doe") রেকর্ড মুছে ফেলতে চাই, তাহলে নিম্নলিখিত SQL কমান্ড ব্যবহার করব:

    DELETE FROM students WHERE name = 'John Doe';
    
  2. বয়সের ভিত্তিতে ডেটা মুছে ফেলা যদি আমরা students টেবিল থেকে ১৮ বছরের কম বয়সী ছাত্রদের রেকর্ড মুছে ফেলতে চাই, তাহলে কমান্ড হবে:

    DELETE FROM students WHERE age < 18;
    
  3. সমস্ত রেকর্ড মুছে ফেলা যদি আপনি একটি টেবিল থেকে সব রেকর্ড মুছে ফেলতে চান, তবে WHERE শর্ত বাদ দিয়ে DELETE কমান্ড ব্যবহার করতে হবে:

    DELETE FROM students;
    

    মনে রাখবেন: এই কমান্ডটি পুরো টেবিলের সমস্ত রেকর্ড মুছে ফেলবে, তবে টেবিলের গঠন অপরিবর্তিত থাকবে।


DELETE vs TRUNCATE

  • DELETE: নির্দিষ্ট রেকর্ড মুছে ফেলে এবং এটি একটি ট্রানজেকশন হিসেবে কাজ করে, অর্থাৎ আপনি রেকর্ড মুছে ফেলার আগে এটি রিভার্স করতে পারেন (যদি ট্রানজেকশন চালু থাকে)।
  • TRUNCATE: এটি টেবিলের সমস্ত রেকর্ড মুছে ফেললেও দ্রুত কাজ করে এবং পুনরুদ্ধার করার সুযোগ থাকে না (এটি কমান্ড চালানোর পর ডেটা একবারে মুছে যায়)।

সারাংশ

DELETE কমান্ডটি MySQL-এ ডেটাবেসের টেবিল থেকে ডেটা মুছে ফেলতে ব্যবহৃত হয়। এটি টেবিলের নির্দিষ্ট রেকর্ড বা সমস্ত রেকর্ড মুছে ফেলার জন্য ব্যবহার করা যেতে পারে, তবে সতর্কভাবে ব্যবহার করা উচিত যাতে অপ্রত্যাশিত ডেটা মুছে না যায়।

Content added By
Promotion

Are you sure to start over?

Loading...