SQLite-তে কোনো টেবিলের সম্পূর্ণ সংজ্ঞা (definition) এবং তার সঙ্গে জড়িত সমস্ত ডেটা, ইনডেক্স, ট্রিগার, কনস্ট্রেইন্ট ও অনুমতি স্পেসিফিকেশন একবারে সরিয়ে ফেলতে আমরা DROP TABLE কমান্ডটি ব্যবহার করি। এটি অত্যন্ত শক্তিশালী ও একই সাথে বিপজ্জনক একটি কমান্ড – কারণ একবার টেবিল ডিলিট করলে তার ভেতরের সকল তথ্য স্থায়ীভাবে মুছে যায় এবং আর ফেরত পাওয়া যায় না। এই পর্বে আমরা খুব সতর্কভাবে DROP TABLE-এর ব্যবহার, সিনট্যাক্স ও বাস্তব উদাহরণ শিখব।
পূর্বপ্রস্তুতি
- SQLite ইন্সটল থাকা (তৃতীয় পর্ব দেখুন)।
- একটি টেস্ট ডাটাবেস খোলা (যেমন
sqlite3 test.db)। - কোনো বাড়তি প্যাকেজের প্রয়োজন নেই।
১. DROP TABLE-এর সিনট্যাক্স
মৌলিক গঠন:
sql
DROP TABLE database_name.table_name;
database_name– ঐচ্ছিক। টেবিলটি কোন ডাটাবেসে আছে তা উল্লেখ করতে। যদি মূল (main) ডাটাবেসের টেবিল মুছতে চান, তবে শুধুtable_nameদিলেই চলবে। সংযুক্ত ডাটাবেসের ক্ষেত্রেattached_db.table_nameব্যবহার করুন।table_name– যে টেবিলটি ডিলিট করতে চান তার সঠিক নাম।
সতর্কতা: এই কমান্ডটি চালানোর পর আর পূর্বাবস্থায় ফেরার কোনো সুযোগ নেই। তাই ব্যবহারের আগে অবশ্যই নিশ্চিত হয়ে নিন যে আপনি সঠিক টেবিলটিই মুছতে চাচ্ছেন।
২. ব্যবহারিক উদাহরণ – টেবিল তৈরি ও ড্রপ
আমরা একটি নতুন ডাটাবেস company.db খুলে দুটি টেবিল তৈরি করব, তারপর একটি টেবিল ডিলিট করব এবং ফলাফল পর্যবেক্ষণ করব।
ধাপ ১: টার্মিনালে ডাটাবেস খুলুন
bash
sqlite3 company.db
ধাপ ২: দুটি টেবিল তৈরি করুন
sql
CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL ); CREATE TABLE DEPARTMENT( ID INT PRIMARY KEY NOT NULL, DEPT CHAR(50) NOT NULL, EMP_ID INT NOT NULL );
ধাপ ৩: টেবিলের উপস্থিতি যাচাই
sql
.tables
আউটপুট:
text
COMPANY DEPARTMENT
ধাপ ৪: COMPANY টেবিল ড্রপ করুন
sql
DROP TABLE COMPANY;
সফল হলে কোনো আউটপুট দেখায় না, শুধু প্রম্পট ফিরে আসে।
ধাপ ৫: আবার টেবিল চেক করুন
sql
.tables
এবার শুধু DEPARTMENT দেখাবে। COMPANY টেবিল সম্পূর্ণরূপে বিলুপ্ত হয়েছে।
ধাপ ৬: (ঐচ্ছিক) যদি আবার COMPANY টেবিল পুনরায় তৈরি করতে চান, তাহলে নতুন করে CREATE TABLE কমান্ড দিতে হবে। পূর্বের কোনো ডেটা ফেরত আসবে না।
৩. সংযুক্ত ডাটাবেসে টেবিল ড্রপ
আপনি যদি ATTACH DATABASE করে আরেকটি ডাটাবেস যুক্ত করে থাকেন, তাহলে অ্যালিয়াস দিয়ে নির্দিষ্ট করে দিতে পারেন:
sql
ATTACH DATABASE 'extra.db' AS extra; -- extra ডাটাবেসের products টেবিল মুছতে DROP TABLE extra.products;
এতে মূল ডাটাবেসের টেবিল অপরিবর্তিত থাকবে।
৪. ডিরেক্টরি স্ট্রাকচার ও ফাইলের অবস্থা
টেবিল ড্রপ করলে ডাটাবেস ফাইলটিতে সেই টেবিলের দখলে থাকা স্থান পুরোপুরি মুক্ত হয় না; ডাটাবেস ফাইল আকারে তেমন ছোট নাও হতে পারে। স্পেস রিক্লেইম করতে VACUUM কমান্ড চালাতে পারেন (পরে আলোচিত হবে)।
text
project-folder/ └── company.db
কোনো বাড়তি প্যাকেজ প্রয়োজন নেই।
৫. গুরুত্বপূর্ণ টিপস ও নিরাপত্তা
- সর্বদা ব্যাকআপ রাখুন: কোনো টেবিল ড্রপ করার আগে
.dumpবা.backupকমান্ড দিয়ে ডাটাবেস ব্যাকআপ নিন। - নাম যাচাই করুন: ভুল টেবিল ডিলিট এড়াতে
.tablesদিয়ে সঠিক নাম নিশ্চিত হন। - ট্রানজ্যাকশন ব্যবহার করুন: আপনি চাইলে
BEGINট্রানজ্যাকশনের ভেতর DROP TABLE চালিয়ে, ভুল মনে হলেROLLBACKদিয়ে ফিরিয়ে আনতে পারেন। তবে DROP TABLE সাধারণত অটো-কমিট হয়, কিন্তু ট্রানজ্যাকশনে অন্যান্য পরিবর্তনের সাথে মিলিয়ে সতর্কতা নিতে পারেন। - অন্য অবজেক্টের ওপর প্রভাব: ড্রপ করা টেবিলের সাথে সম্পর্কিত ভিউ বা ট্রিগার থাকলে সেগুলো অকার্যকর হবে বা ত্রুটি দেখাবে। সেগুলোও মুছে ফেলতে হতে পারে।
- IF EXISTS: SQLite 3.51.1-এ
DROP TABLE IF EXISTS table_name;সাপোর্ট করে, যাতে টেবিল না থাকলে কোনো এরর না হয়।
৬. সম্পূর্ণ চিত্র: একটি নিরাপদ টেবিল ডিলিট ফ্লো
sql
-- প্রথমে টেবিলের তালিকা দেখুন .tables -- যদি নিশ্চিত হন, তাহলে ট্রানজ্যাকশন শুরু করে: BEGIN; DROP TABLE COMPANY; -- ভুল করলে: ROLLBACK; -- সঠিক হলে: COMMIT;
এমনকি DROP TABLE নিজে একটি DDL স্টেটমেন্ট হিসেবে অটো-কমিট হতে পারে, কিন্তু এই ব্লক ব্যবহারে আপনার মানসিক শান্তি বাড়বে।
পরবর্তী পর্বে
আমরা শিখব SQLite INSERT INTO স্টেটমেন্ট – কিভাবে এক বা একাধিক রেকর্ড টেবিলে সংযোজন করতে হয়, বিভিন্ন সিনট্যাক্স ও ব্যবহারিক কৌশল।
লেখকের কথা: SQLite-তে টেবিল ড্রপ করা সহজ, কিন্তু সাবধানতা অবলম্বন করা জরুরি। এই সিরিজটি সম্পূর্ণ বাংলায় তৈরি করতে পেরে আমরা আনন্দিত। আপনার মতামত বা প্রশ্ন থাকলে দয়া করে কমেন্টে জানান। সিরিজের সব আপডেট পেতে ToLearnTeam.com ফলো করতে ভুলবেন না!
SQLite Full Course
- SQLite পরিচিতি ও ইন্সটলেশন গাইড – বাংলায় প্রথম ডাটাবেস তৈরি
- SQLite কী এবং কেন শিখবেন? সম্পূর্ণ ওভারভিউ ও কমান্ড ক্লাসিফিকেশন (DDL, DML, DQL)
- SQLite ইন্সটলেশন গাইড – Windows, Linux ও Mac-এ ধাপে ধাপে সেটআপ
- SQLite ডট কমান্ড (Dot Commands) – সম্পূর্ণ গাইড, আউটপুট ফরম্যাট ও sqlite_master
- SQLite সিনট্যাক্স (Syntax) – কেস সেনসিটিভিটি, কমেন্ট, সব কমান্ডের গঠন ও উদাহরণ
- SQLite ডেটা টাইপ (Data Type) – স্টোরেজ ক্লাস, টাইপ অ্যাফিনিটি, বুলিয়ান ও ডেট-টাইম
- SQLite ডেটাবেস তৈরি (Create Database) – ধাপে ধাপে গাইড, .dump এক্সপোর্ট ও রিস্টোর
- SQLite ATTACH DATABASE – একাধিক ডাটাবেস সংযুক্ত করার সম্পূর্ণ গাইড (বাংলা)
- SQLite DETACH DATABASE – সংযুক্ত ডাটাবেস বিচ্ছিন্ন করার পূর্ণাঙ্গ গাইড
- SQLite CREATE TABLE স্টেটমেন্ট – টেবিল তৈরি করার পূর্ণাঙ্গ গাইড (বাংলা)
- SQLite DROP TABLE স্টেটমেন্ট – টেবিল ডিলিট করার সম্পূর্ণ গাইড (বাংলা)
- SQLite INSERT INTO স্টেটমেন্ট – ডেটা ইনসার্ট করার সম্পূর্ণ গাইড (বাংলা)
- SQLite SELECT স্টেটমেন্ট – টেবিল থেকে ডেটা ফেচ করার সম্পূর্ণ গাইড (বাংলা)
- SQLite অপারেটর (Operators) – Arithmetic, Comparison, Logical, Bitwise (বাংলা টিউটোরিয়াল)
- SQLite এক্সপ্রেশন (Expressions) – বুলিয়ান, নিউমেরিক ও ডেট এক্সপ্রেশন (বাংলা টিউটোরিয়াল)
- SQLite AND ও OR অপারেটর – একাধিক শর্ত দিয়ে ডেটা ফিল্টার (বাংলা টিউটোরিয়াল)
- SQLite UPDATE Query – টেবিলের ডেটা পরিবর্তন করার সম্পূর্ণ গাইড (বাংলা)
- SQLite DELETE Query – টেবিল থেকে ডেটা মুছে ফেলার সম্পূর্ণ গাইড (বাংলা)
- SQLite LIKE Operator – প্যাটার্ন মিলিয়ে ডেটা খোঁজার সম্পূর্ণ গাইড (বাংলা)
- SQLite GLOB Operator – কেস-সেনসিটিভ প্যাটার্ন মিলিয়ে ডেটা খোঁজা (বাংলা)
- SQLite LIMIT Clause – ডেটা সীমিত করে আনার সম্পূর্ণ গাইড (বাংলা)
- SQLite ORDER BY ক্লজ – ডেটা সাজানোর সম্পূর্ণ গাইড (বাংলা)
- SQLite GROUP BY ক্লজ – ডেটা গ্রুপ করে বিশ্লেষণ করার সম্পূর্ণ গাইড (বাংলা)
- SQLite HAVING ক্লজ – গ্রুপের উপর শর্ত দিয়ে ডেটা ফিল্টার (বাংলা টিউটোরিয়াল)
- SQLite DISTINCT Keyword – ডুপ্লিকেট ডেটা বাদ দিয়ে ইউনিক ভ্যালু পাওয়া (বাংলা)
- SQLite PRAGMA কমান্ড – ডাটাবেস কনফিগারেশন ও সেটিংস (বাংলা টিউটোরিয়াল)
- SQLite Constraints – NOT NULL, DEFAULT, UNIQUE, PRIMARY KEY, CHECK (বাংলা টিউটোরিয়াল)
- SQLite JOINS – CROSS JOIN, INNER JOIN, LEFT OUTER JOIN (বাংলা টিউটোরিয়াল)
- SQLite UNION ও UNION ALL – একাধিক SELECT একত্রিত করার সম্পূর্ণ গাইড (বাংলা)
- SQLite NULL Values – NULL কী, IS NULL, IS NOT NULL (বাংলা টিউটোরিয়াল)
- SQLite ALIAS Syntax – টেবিল ও কলামের অস্থায়ী নাম (বাংলা টিউটোরিয়াল)
- SQLite Triggers – স্বয়ংক্রিয় ট্রিগার তৈরি, ব্যবহার ও মুছে ফেলা (বাংলা টিউটোরিয়াল)
- SQLite Indexes – CREATE, UNIQUE, COMPOSITE, DROP INDEX (বাংলা টিউটোরিয়াল)
- SQLite INDEXED BY Clause – নির্দিষ্ট ইনডেক্স ব্যবহার ও NOT INDEXED (বাংলা)
- SQLite ALTER TABLE Command – টেবিলের গঠন পরিবর্তন (বাংলা টিউটোরিয়াল)
- SQLite TRUNCATE TABLE Command – DELETE ও DROP দিয়ে টেবিল খালি করা (বাংলা)
- SQLite Views – ভার্চুয়াল টেবিল তৈরি, ব্যবহার ও ডিলিট (বাংলা টিউটোরিয়াল)
- SQLite Transactions – BEGIN, COMMIT, ROLLBACK ও ACID প্রপার্টি (বাংলা)
- SQLite Subqueries – SELECT, INSERT, UPDATE, DELETE-এ সাবকোয়েরি ব্যবহার (বাংলা টিউটোরিয়াল)
- SQLite AUTOINCREMENT – স্বয়ংক্রিয়ভাবে প্রাইমারি কি মান বৃদ্ধি (বাংলা টিউটোরিয়াল)
- SQLite SQL Injection – কী, কেন বিপজ্জনক ও প্রতিরোধের উপায় (বাংলা টিউটোরিয়াল)
- SQLite EXPLAIN ও EXPLAIN QUERY PLAN – কোয়েরি বিশ্লেষণ (বাংলা টিউটোরিয়াল)
- SQLite VACUUM – ডাটাবেস পরিষ্কার, স্পেস রিক্লেইম ও অটো-ভ্যাকুয়াম (বাংলা টিউটোরিয়াল)
- SQLite Date & Time ফাংশন – date(), time(), datetime(), julianday(), strftime() (বাংলা টিউটোরিয়াল)
- SQLite Useful Functions – COUNT, MAX, MIN, AVG, SUM, RANDOM, ABS, UPPER, LOWER, LENGTH (বাংলা টিউটোরিয়াল)
- SQLite C/C++ প্রোগ্রামিং – sqlite3_open, exec, close, callback (বাংলা টিউটোরিয়াল)
- SQLite PHP প্রোগ্রামিং – PHP-তে SQLite ডাটাবেস ব্যবহার (বাংলা টিউটোরিয়াল)
- SQLite Perl প্রোগ্রামিং – DBI/DBD::SQLite দিয়ে ডাটাবেস অপারেশন (বাংলা)
- SQLite Python প্রোগ্রামিং – sqlite3 মডিউল দিয়ে CRUD অপারেশন (বাংলা টিউটোরিয়াল)
- SQLite Quick Guide – বাংলায় পূর্ণাঙ্গ সংক্ষিপ্ত টিউটোরিয়াল (শেখার সহজ গাইড)
