SQLite হলো একটি স্বয়ংসম্পূর্ণ, সার্ভারহীন, জিরো-কনফিগারেশন, ট্রানজ্যাকশনাল SQL ডাটাবেস ইঞ্জিন। সহজ কথায়, এটি একটি লাইব্রেরি যা আপনার সফটওয়্যারের ভেতরেই একটি পূর্ণাঙ্গ ডাটাবেস চালাতে পারে – কোনো আলাদা সার্ভার সেটআপের ঝামেলা ছাড়াই। বর্তমানে বিশ্বে সবচেয়ে বেশি ব্যবহৃত SQL ডাটাবেস ইঞ্জিন এটি। মোবাইল অ্যাপ, ডেস্কটপ সফটওয়্যার, এমবেডেড সিস্টেম – সবখানেই SQLite ব্যাপকভাবে উপস্থিত। এর সোর্স কোড পাবলিক ডোমেইনে রয়েছে, তাই যে কেউ বিনা খরচে ব্যবহার ও পরিবর্তন করতে পারে।
এই টিউটোরিয়াল সিরিজে আমরা সর্বশেষ SQLite 3.51.1 ভার্সন ধরে ধাপে ধাপে শিখব। আজকের পর্বে আমরা SQLite ইন্সটল করব, কমান্ড-লাইন টুল চালু করব এবং প্রথম ডাটাবেস তৈরি করে তাতে টেবিল যোগ করব।
পূর্বপ্রয়োজনীয়তা (Prerequisites)
এই টিউটোরিয়াল থেকে সর্বোচ্চ সুবিধা পেতে আপনার জানা থাকা উচিত –
- ডাটাবেস কী, বিশেষ করে RDBMS (রিলেশনাল ডাটাবেস ম্যানেজমেন্ট সিস্টেম) – এর প্রাথমিক ধারণা।
- যেকোনো একটি প্রোগ্রামিং ভাষার সাধারণ জ্ঞান (পরবর্তী পর্বগুলোয় কাজে আসবে)।
- কম্পিউটারের টার্মিনাল বা কমান্ড প্রম্পট ব্যবহারের প্রাথমিক অভিজ্ঞতা।
ধাপ ১: SQLite ইন্সটলেশন
SQLite বেশিরভাগ অপারেটিং সিস্টেমেই প্রি-ইন্সটলড থাকে। না থাকলে নিচের পদ্ধতিতে ইন্সটল করুন।
উইন্ডোজ
- SQLite ডাউনলোড পেজ থেকে Precompiled Binaries for Windows সেকশনে যান।
sqlite-tools-win-x64-*.zip(64-বিট) ফাইলটি ডাউনলোড করুন।- জিপ ফাইলটি আনজিপ করে একটি ফোল্ডারে রাখুন (যেমন
C:\sqlite)। - Environment Variable সেট করতে হবে:
- Start মেনুতে
environmentলিখে “Edit the system environment variables” খুলুন। - “Environment Variables…” বাটনে ক্লিক করুন।
- System variables থেকে
Pathসিলেক্ট করে “Edit…” এ ক্লিক করুন। - “New” ক্লিক করে
C:\sqliteপাথ যোগ করে OK দিন।
- Start মেনুতে
- কমান্ড প্রম্পট খুলে
sqlite3 --versionলিখে ভার্সন চেক করুন।
ম্যাকওএস
ম্যাকওএসে সাধারণত SQLite প্রি-ইন্সটলড থাকে। হালনাগাদ সংস্করণ চাইলে Homebrew ব্যবহার করুন:
bash
brew install sqlite3
ইন্সটল শেষে চেক করুন:
bash
sqlite3 --version
লিনাক্স (উবুন্টু/ডেবিয়ান)
bash
sudo apt update sudo apt install sqlite3
অন্যান্য ডিস্ট্রোতে নিজস্ব প্যাকেজ ম্যানেজার দিয়ে ইন্সটল করুন (যেমন dnf, pacman ইত্যাদি)। চেক করুন:
bash
sqlite3 --version
বিশেষ নির্দেশনা: কোনো অতিরিক্ত প্যাকেজ বা লাইব্রেরি দরকার নেই। SQLite নিজেই একটি standalone বাইনারি। প্রোগ্রামিং ল্যাঙ্গুয়েজ থেকে ব্যবহারের জন্য সংশ্লিষ্ট লাইব্রেরি/মডিউল প্রয়োজন (যা আমরা সংশ্লিষ্ট পর্বে দেখাব)।
ধাপ ২: প্রজেক্ট ডিরেক্টরি তৈরি
সব উদাহরণ এক জায়গায় রাখতে একটি প্রজেক্ট ফোল্ডার তৈরি করি।
bash
mkdir sqlite-bangla-tutorial cd sqlite-bangla-tutorial
এখানেই আমরা সব ডাটাবেস ফাইল (.sqlite / .db) রাখব। SQLite একটি মাত্র ফাইলেই পুরো ডাটাবেস সংরক্ষণ করে, তাই আমরা চাইলেই ফাইলটি কপি, মুভ বা শেয়ার করতে পারি।
ধাপ ৩: SQLite শেলে প্রবেশ ও প্রথম ডাটাবেস তৈরি
টার্মিনালে নিচের কমান্ড দিন:
bash
sqlite3 first.db
এটি first.db নামে একটি ডাটাবেস ফাইল তৈরি করবে (যেখানে আপনি কমান্ড দিচ্ছেন সেই ফোল্ডারেই) এবং SQLite ইন্টার্যাক্টিভ শেল চালু করবে। এখন আপনি sqlite> প্রম্পট দেখতে পাবেন।
কিছু গুরুত্বপূর্ণ ডট কমান্ড
.help– সকল কমান্ডের তালিকা.databases– বর্তমানে সংযুক্ত ডাটাবেস দেখায়.tables– টেবিলের তালিকা.schema টেবিলের_নাম– টেবিলের CREATE স্টেটমেন্ট দেখায়.quit– শেল থেকে বের হওয়া
এখন .databases কমান্ড দিন, first.db ফাইল দেখাবে।
ধাপ ৪: টেবিল তৈরি (CREATE TABLE)
আমাদের একটি ছাত্রছাত্রীর (students) টেবিল বানাই:
sql
CREATE TABLE students (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
roll INTEGER UNIQUE NOT NULL,
marks REAL DEFAULT 0.0
);
কমান্ডের ব্যাখ্যা:
id– স্বয়ংক্রিয় ভাবে বাড়বে, প্রাইমারি কি।name– টেক্সট, ফাঁকা রাখা যাবে না।roll– পূর্ণসংখ্যা, ইউনিক ও ফাঁকা নয়।marks– দশমিক সংখ্যা, ডিফল্ট মান ০.০।
. টেবিল বানানোর পর .tables কমান্ড দিয়ে দেখতে পারবেন students টেবিল তৈরি হয়েছে।
ধাপ ৫: ডেটা ইনসার্ট (INSERT)
কয়েকটি ডেটা যোগ করি:
sql
INSERT INTO students (name, roll, marks) VALUES ('রহিম', 101, 85.5);
INSERT INTO students (name, roll, marks) VALUES ('করিম', 102, 92.0);
INSERT INTO students (name, roll, marks) VALUES ('সুমন', 103, 78.25);
ডেটা সংযোজনের পর পরীক্ষা করতে:
sql
SELECT * FROM students;
আউটপুট:
text
1|রহিম|101|85.5 2|করিম|102|92.0 3|সুমন|103|78.25
ধাপ ৬: ডাটাবেস ফাইল ও ডিরেক্টরি স্ট্রাকচার
আপনার প্রজেক্ট ফোল্ডারের গঠন এখন এরকম:
text
sqlite-bangla-tutorial/ └── first.db
first.db ফাইলটি আপনার তৈরি করা পুরো ডাটাবেস ধারণ করছে। আপনি চাইলে এই ফাইলটি অন্য কম্পিউটারে কপি করে সেখানেও sqlite3 first.db দিয়ে সব টেবিল ও ডেটা দেখতে পারবেন – আলাদা কোনো ইম্পোর্ট/এক্সপোর্টের প্রয়োজন নেই।
গুরুত্বপূর্ণ টিপস
- SQLite শেল থেকে বের হওয়ার আগে কোনো ট্রানজ্যাকশন কমিট না করলে স্বয়ংক্রিয়ভাবে কমিট হয় না (পরের পর্বে ট্রানজ্যাকশন শিখবেন)। তবে সরাসরি
.quitদিলে পরিবর্তনগুলো থেকে যায়। - ডাটাবেস ফাইল অপারেটিং সিস্টেমের সাধারণ ফাইলের মতো আচরণ করে। ডিলিট করলেই ডাটাবেস ডিলিট।
- কমান্ডগুলো টেস্ট করে দেখতে থাকুন – ভুল থেকে শেখা সবচেয়ে ভালো।
পরবর্তী পর্বে
আমরা SQLite কমান্ড-লাইন শেল আরও গভীরে অন্বেষণ করব: ডট কমান্ডের পুরো তালিকা, টেবিলের স্কিমা দেখা, ডেটা এক্সপোর্ট/ইম্পোর্ট এবং ফাইল থেকে SQL স্ক্রিপ্ট চালানো।
লেখকের কথা: এই টিউটোরিয়ালটি তৈরিতে সর্বশেষ SQLite সংস্করণ 3.51.1 ফলো করা হয়েছে। কোনো অংশ বুঝতে অসুবিধা হলে বা ভুল চোখে পড়লে কমেন্টে জানাতে ভুলবেন না। বাংলায় প্রযুক্তি শেখার এই যাত্রায় আপনাকে স্বাগতম!
ভালো লাগলে শেয়ার করুন, এবং সিরিজের সব পর্ব পেতে ব্লগে সাবস্ক্রাইব করুন।
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 – বাংলায় পূর্ণাঙ্গ সংক্ষিপ্ত টিউটোরিয়াল (শেখার সহজ গাইড)
