SQLite-তে নতুন ডাটাবেস তৈরি করা সম্ভবত সবচেয়ে সহজ কাজগুলোর একটি – কোনো আলাদা সার্ভার, ইউজারনেম-পাসওয়ার্ড বা বিশেষ অধিকারের প্রয়োজন নেই। শুধু sqlite3 কমান্ড দিয়ে একটি ফাইলের নাম বলে দিলেই নতুন ডাটাবেস তৈরি হয়ে যাবে। এই পর্বে আমরা শিখব কীভাবে ডাটাবেস তৈরি করতে হয়, তা যাচাই করতে হয় এবং পরবর্তীতে সম্পূর্ণ ডাটাবেসকে একটি টেক্সট ফাইলে এক্সপোর্ট করে আবার রিস্টোর করতে হয়। পুরো প্রক্রিয়াটি এতটাই সরল যে একবার হাত লাগালেই আপনি অভ্যস্ত হয়ে যাবেন।
পূর্বপ্রস্তুতি
- আপনার কম্পিউটারে SQLite ইন্সটল করা থাকতে হবে (না থাকলে তৃতীয় পর্ব দেখে ইন্সটল করে নিন)।
- টার্মিনাল বা কমান্ড প্রম্পট খোলা থাকতে হবে।
- কোনো অতিরিক্ত প্যাকেজ বা লাইব্রেরির প্রয়োজন নেই।
১. সিনট্যাক্স – নতুন ডাটাবেস তৈরি
SQLite-তে নতুন ডাটাবেস তৈরি করার মৌলিক কমান্ড:
bash
sqlite3 DatabaseName.db
এখানে DatabaseName.db আপনার পছন্দমতো একটি ইউনিক নাম (ইংরেজি অক্ষর, সংখ্যা, আন্ডারস্কোর ব্যবহার করা ভালো)। .db এক্সটেনশনটি প্রচলিত হলেও আপনি .sqlite বা অন্য যেকোনো এক্সটেনশন দিতে পারেন। SQLite শুধুমাত্র একটি সাধারণ ফাইল তৈরি করে।
মনে রাখবেন: ডাটাবেসের নাম সেই ফোল্ডারে বা পুরো পাথে ইউনিক হতে হবে। একই নামের ফাইল আগে থেকে থাকলে SQLite সেটিকেই খুলবে, নতুন তৈরি করবে না। আপনি চাইলে সম্পূর্ণ পাথ উল্লেখ করতে পারেন, যেমন:
bash
sqlite3 /home/user/mydata/school.db
২. প্রথম ডাটাবেস তৈরি – ধাপে ধাপে
আমরা testDB.db নামে একটি ডাটাবেস তৈরি করি। টার্মিনালে লিখুন:
bash
sqlite3 testDB.db
এন্টার চাপার সাথে সাথেই নিচের মতো একটি বার্তা দেখা যাবে:
text
SQLite version 3.51.1 2025-11-28 17:28:25 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite>
কী ঘটলো?
- বর্তমান ফোল্ডারে
testDB.dbনামে একটি ফাইল তৈরি হয়েছে (যদি না আগে থেকে থাকে)। - SQLite ইঞ্জিন এই ফাইলটিকে ডাটাবেস হিসেবে ব্যবহারের জন্য প্রস্তুত করেছে।
- আমরা এখন
sqlite>প্রম্পটের ভেতরে আছি, যেখানে SQL ও ডট কমান্ড চালানো যাবে।
আপনি চাইলে এখনই টেবিল তৈরি, ডেটা ইনসার্ট ইত্যাদি করতে পারেন। কিন্তু আমরা আগে যাচাই করি আমাদের ডাটাবেস সত্যিই সংযুক্ত হয়েছে কিনা।
৩. .databases কমান্ড দিয়ে যাচাই
SQLite প্রম্পটে লিখুন:
sql
sqlite> .databases
আউটপুট হবে এমন:
text
main: D:\sqlite-bangla\testDB.db r/w
এখানে main হলো এই ডাটাবেসের অভ্যন্তরীণ নাম (সব সময় main একটি থাকে, আর আমরা চাইলে ATTACH করে আরও যোগ করতে পারি) এবং r/w নির্দেশ করে আমরা এটি পড়তে ও লিখতে পারছি। ডাটাবেস ফাইলটির সম্পূর্ণ পাথ এখানে দেখাবে।
৪. .quit দিয়ে বের হওয়া
কাজ শেষে SQLite শেল থেকে বের হতে:
sql
sqlite> .quit
অথবা .exit ও ব্যবহার করতে পারেন। এখন আপনি আপনার টার্মিনালের স্বাভাবিক প্রম্পটে ফিরে আসবেন।
৫. তৈরি হওয়া ফাইল ও ডিরেক্টরি স্ট্রাকচার
আপনি যে ফোল্ডারে কমান্ডটি চালিয়েছেন, সেখানে এখন একটি ফাইল দেখবেন:
text
your-folder/ └── testDB.db
একটি ফাইল! এটাই আপনার সম্পূর্ণ ডাটাবেস। আপাতত এটি খালি, তাই সাইজ খুবই কম (শূন্য কিংবা কয়েক বাইট)। আমরা যখন টেবিল ও ডেটা যোগ করব, তখন এই ফাইলের ভেতরেই সব তথ্য জমা হবে।
গুরুত্বপূর্ণ: SQLite ডাটাবেস ফাইলকে আপনি সাধারণ ফাইলের মতো কপি, ডিলিট বা ইমেইল করে পাঠাতে পারেন – সম্পূর্ণ ডাটাবেস এক জায়গা থেকে আরেক জায়গায় স্থানান্তর করতে আলাদা কোনো টুল লাগে না।
৬. .dump কমান্ড – সম্পূর্ণ ডাটাবেস এক্সপোর্ট
SQLite-এর সবচেয়ে কাজের ডট কমান্ডগুলোর একটি হলো .dump। এটি সম্পূর্ণ ডাটাবেসকে (সব টেবিল, ইনডেক্স, ভিউ, ট্রিগার, ডেটা) SQL স্টেটমেন্টের একটি টেক্সট ফাইলে রূপান্তর করে। এই ফাইলটি দিয়ে আপনি চাইলেই ডাটাবেসটি আরেক জায়গায় পুনরায় তৈরি করতে পারবেন।
৬.১ ডাম্প তৈরি করা
টার্মিনাল থেকে এক লাইনেই এই কাজ করা যায়:
bash
sqlite3 testDB.db .dump > testDB.sql
ব্যাখ্যা:
sqlite3 testDB.db– ডাটাবেসটি খোলে।.dump– সম্পূর্ণ ডাটাবেসের স্কিমা ও ডেটার SQL তৈরি করে।> testDB.sql– সেই আউটপুটকেtestDB.sqlনামে একটি টেক্সট ফাইলে সংরক্ষণ করে।
এখন ফোল্ডারে testDB.sql ফাইলটি তৈরি হবে। খুললে দেখবেন CREATE TABLE, INSERT INTO ইত্যাদি স্টেটমেন্ট – ঠিক যেন আপনি নিজে হাতে লিখেছিলেন।
কিন্তু সমস্যা হলো, আমাদের testDB.db আপাতত একেবারে খালি। তাই testDB.sql-এ শুধু কিছু মেটাডেটা থাকবে, কোনো টেবিলের গঠন থাকবে না। চলুন তাহলে আগে একটি নমুনা টেবিল ও ডেটা ঢুকিয়ে আসি যাতে ডাম্প অর্থবহ হয়।
৬.২ একটি নমুনা টেবিল তৈরি ও ডাম্প পরীক্ষা
bash
sqlite3 testDB.db
এবার SQLite প্রম্পটে:
sql
CREATE TABLE friends (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
phone TEXT
);
INSERT INTO friends VALUES (1, 'রাকিব', '01710000000');
INSERT INTO friends VALUES (2, 'সাবিনা', '01820000000');
INSERT INTO friends VALUES (3, 'তামিম', NULL);
এবার .quit করে বেরিয়ে আসুন।
এখন ডাম্প তৈরি করি:
bash
sqlite3 testDB.db .dump > testDB.sql
testDB.sql ফাইলটি খুললে দেখতে পাবেন:
sql
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE friends (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
phone TEXT
);
INSERT INTO friends VALUES(1,'রাকিব','01710000000');
INSERT INTO friends VALUES(2,'সাবিনা','01820000000');
INSERT INTO friends VALUES(3,'তামিম',NULL);
COMMIT;
এটি একটি সম্পূর্ণ স্বয়ংসম্পূর্ণ SQL স্ক্রিপ্ট – যা চালালেই ডাটাবেসটি পুনর্নির্মিত হবে।
৭. ডাম্প ফাইল থেকে ডাটাবেস রিস্টোর
এখন আমরা এই ডাম্প ফাইল ব্যবহার করে একটি নতুন ডাটাবেস তৈরি করে দেখব। ধরি আমরা friends_restored.db নামে আরেকটি ডাটাবেস বানাতে চাই:
bash
sqlite3 friends_restored.db < testDB.sql
কী ঘটলো?
friends_restored.dbনামে একটি ফাইল তৈরি হলো (বা আগে থাকলে ওপেন হলো)।< testDB.sqlঅংশটিtestDB.sqlফাইলের ভেতরের সব SQL কমান্ড ওই ডাটাবেসের উপর প্রয়োগ করে।
এবার যাচাই করি:
bash
sqlite3 friends_restored.db
sql
.tables -- output: friends SELECT * FROM friends; -- output: -- 1|রাকিব|01710000000 -- 2|সাবিনা|01820000000 -- 3|তামিম|
দেখতেই পাচ্ছেন, আমাদের পুরনো টেবিল ও ডেটা হুবহু নতুন ডাটাবেসে চলে এসেছে। .quit করে বেরিয়ে আসুন।
৮. এই পুরো প্রক্রিয়ার ডিরেক্টরি স্ট্রাকচার
আপনার প্রজেক্ট ফোল্ডারে এখন ফাইলগুলো এরকম:
text
sqlite-bangla/ ├── testDB.db (মূল ডাটাবেস, টেবিল ও ডেটাসহ) ├── testDB.sql (ডাম্প করা SQL ফাইল) └── friends_restored.db (রিস্টোর করা নতুন ডাটাবেস)
এই ফাইলগুলো আপনি যেকোনো প্ল্যাটফর্মে (উইন্ডোজ, লিনাক্স, ম্যাক) কপি করে SQLite দিয়ে খুলতে পারবেন – একই রকম কাজ করবে। কারণ SQLite ডাটাবেস ফাইল ক্রস-প্ল্যাটফর্ম।
৯. কিছু গুরুত্বপূর্ণ টিপস ও সতর্কতা
- নামের ক্ষেত্রে সতর্কতা: ডাটাবেস ফাইল তৈরি করার সময় নামের শেষে
.dbদেওয়া বাধ্যতামূলক নয়, তবে এটি একটি ভালো অভ্যাস, যাতে ফাইলটি দেখেই চেনা যায়। - একই নামের ফাইল: যদি আপনি
sqlite3 testDB.dbচালান এবংtestDB.dbআগে থেকেই থাকে, তাহলে সেটি ওপেন হবে, নতুন ফাইল তৈরি হবে না। তবে কোনো ডেটা হারাবে না – বরং আপনি আগের ডেটা নিয়েই কাজ করতে পারবেন। .dumpব্যবহার: ডাটাবেস ব্যাকআপ নেওয়ার জন্য.dumpএকটি চমৎকার পদ্ধতি। নিয়মিত এটি করে রাখলে দুর্ঘটনাজনিত ডিলিট বা ফাইল নষ্টের হাত থেকে রক্ষা পাওয়া যায়।- বড় ডাটাবেস: অনেক বড় ডাটাবেসের জন্য
.dumpফাইল অনেক বড় হতে পারে। তখন ব্যাকআপের জন্য.backupকমান্ড (চতুর্থ পর্বে আলোচিত) ব্যবহার করাই ভালো, কারণ এটি বাইনারি ফরম্যাটে দ্রুত ব্যাকআপ নেয়। - ডাম্প ফাইলের এনকোডিং: ডাম্প করা SQL ফাইল সাধারণত UTF-8 এনকোডিং-এ থাকে, তাই বাংলা লেখা নির্ভেজাল থাকবে।
পরবর্তী পর্বে
এবার আমরা SQLite-তে টেবিল তৈরি (CREATE TABLE) নিয়ে পুরো বিস্তারিত শিখব – ডেটা টাইপ, প্রাইমারি কি, অটোইনক্রিমেন্ট, কনস্ট্রেইন্টসহ হাতে-কলমে উদাহরণ।
লেখকের কথা: এই টিউটোরিয়াল সিরিজটি তৈরি করতে আমরা সর্বশেষ SQLite 3.51.1 ব্যবহার করছি। বাংলায় প্রযুক্তি শেখাকে সহজ করতে আপনার উৎসাহ আমাদের অনুপ্রেরণা। কোনো প্রশ্ন থাকলে কমেন্ট করুন, এবং বন্ধুদের সাথে শেয়ার করতে ভুলবেন না। নিয়মিত আপডেট পেতে 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 – বাংলায় পূর্ণাঙ্গ সংক্ষিপ্ত টিউটোরিয়াল (শেখার সহজ গাইড)
