SQLite-এ DELETE কমান্ড ব্যবহার করে আপনি টেবিল থেকে নির্দিষ্ট রেকর্ড বা সমস্ত রেকর্ড মুছে ফেলতে পারেন। DELETE কমান্ডটি ডাটাবেস থেকে ডাটা স্থায়ীভাবে মুছে দেয়, তবে এটি টেবিলের কাঠামো বা তার স্কিমাকে প্রভাবিত করে না।
DELETE কমান্ডের ব্যবহার
১. সব রেকর্ড মুছে ফেলা
যদি আপনি একটি টেবিলের সব রেকর্ড মুছে ফেলতে চান, তবে DELETE কমান্ডের পরে কোনো শর্ত (condition) উল্লেখ না করে শুধু টেবিলের নাম লিখতে হবে। উদাহরণ:
DELETE FROM users;
এই কমান্ডটি users টেবিলের সমস্ত রেকর্ড মুছে ফেলবে, তবে টেবিলের কাঠামো এবং কলামগুলো অক্ষত থাকবে।
২. নির্দিষ্ট রেকর্ড মুছে ফেলা
আপনি যদি একটি নির্দিষ্ট শর্তের ভিত্তিতে রেকর্ড মুছে ফেলতে চান, তবে WHERE ক্লজ ব্যবহার করতে হবে। উদাহরণ:
DELETE FROM users WHERE age > 30;
এই কমান্ডটি users টেবিল থেকে এমন রেকর্ড মুছে ফেলবে যাদের age 30 এর বেশি।
এটা মনে রাখবেন: যদি
WHEREক্লজ ব্যবহার না করেন, তবে পুরো টেবিলের সব রেকর্ড মুছে যাবে। অতএব, এটি ব্যবহারের আগে সতর্ক থাকুন।
৩. একাধিক শর্তের ভিত্তিতে রেকর্ড মুছে ফেলা
একাধিক শর্তের ভিত্তিতে রেকর্ড মুছে ফেলতে AND বা OR ব্যবহার করা যেতে পারে। উদাহরণ:
DELETE FROM users WHERE age < 20 AND city = 'Dhaka';
এই কমান্ডটি users টেবিল থেকে সব রেকর্ড মুছে ফেলবে যাদের age 20 এর কম এবং city 'Dhaka'।
৪. DELETE কমান্ডের পারফরম্যান্স
- প্রতিটি DELETE অপারেশন একটি ট্রানজেকশন হিসাবে গণ্য হয়, অর্থাৎ, ডেটা মুছে ফেলার সময় যদি কোনো ত্রুটি ঘটে তবে সম্পূর্ণ অপারেশন রিভার্স করা হবে।
- WAL (Write-Ahead Log) মোডে থাকলে, পরিবর্তনগুলি প্রথমে একটি লগ ফাইলে লেখা হয়, তারপর মূল ডাটাবেসে প্রতিফলিত হয়।
DELETE vs TRUNCATE
- DELETE:
DELETEকমান্ড একটি টেবিলের নির্দিষ্ট বা সমস্ত রেকর্ড মুছে ফেলতে ব্যবহৃত হয়। এটি সাধারণত ধীর গতির কারণ এটি প্রতিটি রেকর্ডের জন্য লক এবং লগ তৈরি করে। - TRUNCATE: SQLite-এ TRUNCATE কমান্ড নেই, তবে কিছু ডেটাবেস সিস্টেমে এটি পুরো টেবিলের ডেটা দ্রুত মুছে ফেলার জন্য ব্যবহৃত হয়।
TRUNCATEকমান্ড সাধারণত দ্রুত, কারণ এটি একসাথে সমস্ত ডেটা মুছে দেয় এবং অতিরিক্ত লক এবং লগ সৃষ্টি করে না।
DELETE কমান্ডের একটি উদাহরণ
ধরা যাক, একটি employees টেবিল রয়েছে যার মধ্যে কিছু ডেটা আছে। আপনি যদি শুধু salary 50000 এর কম এমন সমস্ত কর্মচারীকে মুছে ফেলতে চান, তবে নিচের মতো কোয়েরি ব্যবহার করতে পারেন:
DELETE FROM employees WHERE salary < 50000;
এটি employees টেবিল থেকে salary 50000 এর কম এমন সব রেকর্ড মুছে ফেলবে।
সারাংশ
SQLite-এ DELETE কমান্ড ব্যবহার করে আপনি টেবিল থেকে নির্দিষ্ট বা সমস্ত রেকর্ড মুছে ফেলতে পারেন। যখন আপনি DELETE ব্যবহার করেন, তখন টেবিলের স্কিমা বা কাঠামো অপরিবর্তিত থাকে, তবে ডাটাবেসের তথ্য মুছে ফেলা হয়। এটি একটি গুরুত্বপূর্ণ SQL কমান্ড, এবং ব্যবহার করার সময় WHERE ক্লজ ব্যবহার করা উচিত যাতে অপ্রত্যাশিত ডেটা মুছে না যায়।
Read more