মুছুন বনাম ড্রপ
ডিলিট এবং ড্রপ উভয় কমান্ডই এসকিউএল (স্ট্রাকচার্ড কোয়েরি ল্যাঙ্গুয়েজ) স্টেটমেন্টের অন্তর্গত, এবং এগুলি ডাটাবেস থেকে ডেটা মুছে ফেলার ক্ষেত্রে ব্যবহার করা হয়। ডিলিট একটি ডিএমএল (ডেটা ম্যানিপুলেশন ল্যাঙ্গুয়েজ) কমান্ড। এটি ব্যবহারকারীর নির্দিষ্ট করা শর্ত অনুসারে একটি টেবিল থেকে কিছু বা সমস্ত ডেটা মুছে ফেলে। ডিলিট স্টেটমেন্ট টেবিলে শুধুমাত্র ডেটা রেকর্ড সরিয়ে দেয়, কিন্তু টেবিলের গঠন ডাটাবেসে একই রকম উপস্থাপন করে। ড্রপ কমান্ড হল একটি ডিডিএল (ডেটা ডেফিনিশন ল্যাঙ্গুয়েজ) স্টেটমেন্ট এবং এটি ডিলিট কমান্ড থেকে ভিন্নভাবে কাজ করে। এটি একটি শর্তসাপেক্ষ ভিত্তিক বিবৃতি নয়, তাই টেবিল থেকে সম্পূর্ণ ডেটা মুছে দেয়, এছাড়াও এটি ডাটাবেস থেকে টেবিলের কাঠামো এবং সেই টেবিলের সমস্ত রেফারেন্সকে স্থায়ীভাবে সরিয়ে দেয়।
বিবৃতি মুছুন
উপরে উল্লিখিত হিসাবে, ডিলিট স্টেটমেন্ট প্রদত্ত শর্তের উপর ভিত্তি করে একটি টেবিল থেকে ডেটা সরিয়ে দেয় এবং যেখানে এই প্রয়োজনীয় শর্তটি নির্দিষ্ট করতে Delete-এর সাথে ক্লজ ব্যবহার করা হয়। Delete এর সাথে Where clause উল্লেখ না থাকলে, টেবিল থেকে সমস্ত টেবিলের ডেটা মুছে ফেলা হয়। যাইহোক, ডিলিট অপারেশনে, বিদ্যমান টেবিলের কাঠামো একই থাকে। সুতরাং, ব্যবহারকারী যদি টেবিলটি পুনরায় ব্যবহার করতে চান তবে তাকে টেবিলের কাঠামো নির্ধারণ করতে হবে না। যেহেতু ডিলিট একটি ডিএমএল কমান্ড, এটি কার্যকর করার পরে স্বয়ংক্রিয়ভাবে প্রতিশ্রুতিবদ্ধ হয় না। সুতরাং, পূর্ববর্তী ক্রিয়াকলাপটি পূর্বাবস্থায় ফিরিয়ে আনতে এটিকে ফিরিয়ে আনা যেতে পারে। অন্যথায়, পরিবর্তনগুলি স্থায়ী করতে প্রতিশ্রুতি বিবৃতি কল করা উচিত। মুছুন বিবৃতি কার্যকর করার সময়, এটি প্রতিটি সারি মুছে ফেলার জন্য লেনদেন লগে একটি এন্ট্রি রেকর্ড করে। সুতরাং, এটি অপারেশন ধীর প্রভাবিত করে। সেইসাথে, এটি মৃত্যুদন্ড কার্যকর করার পরে ব্যবহৃত স্থান ডিলোকেট করে না৷
নিম্নলিখিত বিবৃতি মুছে ফেলার জন্য সিনট্যাক্স।
থেকে মুছুন
বা
কোথা থেকে মুছুন
ড্রপ স্টেটমেন্ট
ড্রপ স্টেটমেন্ট কোনো শর্ত ছাড়াই ডাটাবেস থেকে কেবল সমস্ত টেবিল রেকর্ডই সরিয়ে দেয় না, তবে এটি ডাটাবেস থেকে স্থায়ীভাবে টেবিলের কাঠামো, অখণ্ডতার সীমাবদ্ধতা, সূচক এবং প্রাসঙ্গিক টেবিলের অ্যাক্সেস সুবিধাগুলিকেও সরিয়ে দেয়। সুতরাং, অন্যান্য টেবিলের জন্য সমস্ত সম্পর্কও আর বিদ্যমান নেই, এবং টেবিলের তথ্য ডেটা অভিধান থেকে মুছে ফেলা হয়েছে। সুতরাং, যদি ব্যবহারকারী টেবিলটি পুনরায় ব্যবহার করতে চায় তবে তাকে টেবিলের কাঠামো এবং টেবিলের অন্যান্য সমস্ত রেফারেন্স আবার সংজ্ঞায়িত করতে হবে। ড্রপ একটি ডিডিএল কমান্ড এবং কমান্ডটি কার্যকর করার পরে, এটি আবার রোল করা যাবে না, কারণ ড্রপ কমান্ড একটি স্বয়ংক্রিয় প্রতিশ্রুতি ব্যবহার করে। অতএব, ব্যবহারকারীকে এই কমান্ডটি ব্যবহার করার ক্ষেত্রে খুব সতর্ক হওয়া উচিত। সিস্টেম টেবিলে ড্রপ স্টেটমেন্ট প্রয়োগ করা যাবে না, এবং বিদেশী কী সীমাবদ্ধতা আছে এমন টেবিলের জন্যও এটি ব্যবহার করা যাবে না।
ড্রপ কমান্ড শুধুমাত্র এসকিউএল টেবিলের জন্যই নয়, ডাটাবেস, ভিউ এবং টেবিল কলামের জন্যও ব্যবহার করা যেতে পারে এবং এই অবজেক্টে সংরক্ষিত সমস্ত ডেটা অবজেক্টের সাথে চিরতরে হারিয়ে যায়।
ড্রপ কমান্ডের জন্য সাধারণ সিনট্যাক্স নিচে দেওয়া হল।
ড্রপ টেবিল
মুছুন এবং ড্রপের মধ্যে পার্থক্য কী?
1. ডিলিট এবং ড্রপ কমান্ড একটি ডাটাবেস থেকে টেবিল ডেটা সরিয়ে দেয়।
2. কিন্তু Delete স্টেটমেন্ট কন্ডিশনাল ভিত্তিক ডিলিট করে, যেখানে Drop কমান্ড টেবিলের পুরো রেকর্ড মুছে দেয়।
৩. এছাড়াও, Delete স্টেটমেন্ট টেবিলের শুধুমাত্র সারিগুলিকে সরিয়ে দেয় এবং এটি টেবিলের কাঠামোটিকে একইভাবে সংরক্ষণ করে, যেখানে, ড্রপ কমান্ড টেবিলের সমস্ত ডেটা এবং টেবিলের কাঠামোকে সরিয়ে দেয়, এছাড়াও এটি ডাটাবেস থেকে অন্য সমস্ত রেফারেন্স মুছে দেয়।
৪. ডিলিট হল একটি ডিএমএল স্টেটমেন্ট, যেখানে ড্রপ হল ডিডিএল কমান্ড। সুতরাং, ডিলিট অপারেশনটি রোল ব্যাক করা যেতে পারে এবং এটি স্বয়ংক্রিয়ভাবে প্রতিশ্রুতিবদ্ধ নয়, যখন ড্রপ অপারেশনটি কোনওভাবেই ফিরিয়ে আনা যায় না কারণ এটি একটি স্বয়ংক্রিয় প্রতিশ্রুতিবদ্ধ বিবৃতি।
৫. বিদেশী কী সীমাবদ্ধতার দ্বারা উল্লেখ করা টেবিলগুলিতে ড্রপ কমান্ড ব্যবহার করা যাবে না, যেখানে তার পরিবর্তে ডিলিট কমান্ড ব্যবহার করা যেতে পারে।
৬. SQL অ্যাপ্লিকেশানে ডিলিট স্টেটমেন্টের তুলনায় ড্রপ কমান্ড সাবধানে ব্যবহার করা উচিত।