SQL টিউটোরিয়াল

ডেটাবেজে ডেটা রাখা এবং ডেটা কোয়েরি করার জন্য জন্য স্টান্ডার্ড ল্যাঙ্গুয়েজ হচ্ছে SQL। SQL এর পূর্ণরুপ হচ্ছে Structured Query Language। বেশিরভাগ ডেটাবেজ ম্যানেজমেন্ট সিস্টেম SQL স্ট্যান্ডার্ড ফলো করে। এর মানে SQL কমান্ড জানলে যে কোন ডেটাবেজে কাজ করা যাবে।

এই টিউটোরিয়ালে নির্দিষ্ট কোন ডেটাবেজ ম্যানেজমেন্ট সিস্টেম যেমন MySQL, Oracle Database, SQLite ইত্যাদি সম্পর্কে আলাদা ভাবে না জেনে আমরা শুধু মূল কমান্ড গুলো জানব। যেগুলো সব ডেটাবেজেই একই। উদাহরণ হিসেবে SQLite ডেটাবেজ ব্যবহার করব। কমান্ড গুলো লেখা যাবে টার্মিনাল অথবা কমান্ডলাইনে। আর ডেটাবেজে ডেটা ঠিক মত ইনসার্ট হয়েছে কিনা, তা ভিজ্যুয়ালি দেখার জন্য DB Browser for SQLite সফটওয়ার ব্যবহার করতে পারেন। ভিজ্যুয়াল স্টুডিও কোড ব্যবহার করে থাকলে SQLite Viewer এক্সটেনশন ব্যবহার করতে পারেন। তাহলে একই সাথে VS Code এর টার্মিনাল থেকে কমান্ড লেখার পাশাপাশি ভিজ্যুয়ালি ডেটাবেজ দেখতে পাবেন।

SQLite ইন্সটল

কম্পিউটারে SQLite না থাকলে ইন্সটল করে নিতে পারেন। ডাউনলোড লিঙ্ক। এছাড়া চাইলে brew ব্যবহার করেও ইন্সটল করে নিতে পারেন।

brew install sqlite3

লিনাক্সে ইন্সটলঃ

sudo apt-get install sqlite3

SQLite ইন্সটল হয়েছে কিনা, তা চেক করে দেখতে পারেন নিচের কমান্ড ব্যবহার করেঃ

sqlite3 --version

SQLite ডেটাবেজ তৈরিঃ

ভিজুয়াল স্টুডিওতে যে কোন ফোল্ডার ওপেন করে এরপর মেন্যু থেকে New টার্মিনালে ক্লিক করলে নতুন টার্মিনাল ওপেন হবে। ঐখান থেকে SQL স্টেটমেন্ট গুলো লেখা যাবে। এছাড়া ম্যাক, লিনাক্স অথবা উইন্ডোজের কমান্ডলাইন বা টার্মিনালেও এই স্টেটমেন্ট গুলো লেখা যাবে।

কমান্ডলাইন থেকে SQLite ডেটাবেজ তৈরির জন্য নিচের কমান্ড লিখতে পারেনঃ

sqlite3 your_database_name.db

উপরের কমান্ড রান করলে SQLite শেল ওপেন হবে। এরপর আমরা user নামে একটা টেবিল তৈরি করব। যার মধ্যে তিনটা ফিল্ড থাকবে। id, name, email:

CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, email TEXT);

উপরের দুইটা কমান্ড রান করার পর দেখব ডেটাবেজ তৈরি হয়েছে। এমনকি আমরা ভিজ্যুয়ালি ডেটাবেজ স্ট্রাকচার দেখতে পারব চাইলে।

ডেটাবেজ টেবিলে নতুন ডেটা ইনসার্ট করাঃ

INSERT INTO users (name, email) VALUES ('John Doe', '[email protected]');

উপরের কমান্ড রান করলে ডেটাবেজে নতুন ডেটা ইনসার্ট হবে। আমরা চাইলে ভিজ্যুয়ালি দেখতেও পারবঃ

আমরা চাইলে কমান্ড লিখেও ডেটাবেজ থেকে ডেটা কোয়েরি করে দেখতে পারিঃ

SELECT * FROM users;

এখানে * (asterisk) দিয়ে বুঝানো সব ডেটা বুঝানো হয়। উপরের কমান্ডের মানে হচ্ছে users টেবিলের সকল ডেটা রিটার্ণ করা। এখানে users এর পরিবর্তে যে কোন টেবিলের নাম আমরা ব্যবহার করতে পারব।

আমাদের ডেটাবেজ টেবিলে একটা মাত্র row রয়েছে। উপরে আমরা দেখেছি কিভাবে একটা row ডেটাবেজে ইনসার্ট করা যায়। আমরা চাইলে একাধিক রেকর্ড ডেটাবেজে ইনসার্ট করতে পারি। তার জন্য এভাবে লিখব:

INSERT INTO users (name, email) VALUES 
('Alice', '[email protected]'),
('Bob', '[email protected]'),
('Charlie', '[email protected]');

তাহলে ডেটাবেজে আরো তিনটা row যোগ হবে।

ডেটাবেজে কি কি টেবিল আছে, তা জানার কমান্ডঃ

.tables

কোন টেবিল ডিলেট করাঃ

DROP TABLE table_name;

ডেটাবেজ ডিলেট করাঃ

DROP DATABASE databasename;

এবং ফাইনালি SQLite শেল থেকে বের হওয়ার কমান্ডঃ

.exit

SQL ডেটাবেজের কিছু দরকারি টার্ম

ডেটাবেজঃ ডেটাবেজকে বলতে পারি কন্টেইনার। যেখানে বিভিন্ন ডেটা টেবিল আকারে সাজানো থাকে। একটা ডেটাবেজে একের অধিক টেবিল থাকতে পারে। এছাড়া টেবিলের পাশাপশি অন্যান্য ইনফরমেশন থাকতে পারে।

টেবিলঃ টেবিল অনেকটা স্প্রেডশিটের মত। যেখানে Column এবং Row আকারে সাজানো থাকে।

কলামঃ কলাম হচ্ছে ডেটাবেজ টেবিলের ফিল্ড গুলো। টেবিল তৈরি করার সময় এই কলামের নাম গুলো বলে দিতে হয়। টেবিলে কি কি ডেটা রাখব, তা টেবিল তৈরির সময় বলে দিতে হয়। যেমন উপরের টেবিলে আমরা id, name এবং email নামে তিনটা কলাম যোগ করেছি CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, email TEXT); স্টেটমেন্টের মাধ্যমে।

রোঃ রো হচ্ছে ডেটাবেজ টেবিলে রাখা রেকর্ড। একটা রো এর মধ্যে একটা নির্দিষ্ট আইটেমের ডেটা থাকে। যাকে বল্যতে পারি একটা রেকর্ড।

প্রাইমারি কীঃ প্রতিটা রেকর্ড বা প্রতিটা রো এর জন্য একটা ইউনিক আইডেন্টিফায়ার লাগে। যাকে বলে প্রাইমারি কী। একই প্রাইমারি কী একাধিক রেকর্ডে ব্যবহার করা যায় না। মানে এই প্রাইমারি কী ইউনিক হতে হয়। সাধারণত যে কলামে প্রাইমারি কী রাখা হয়, তার নাম id রাখা হয়। এবং এই id এর ভ্যালু অটোম্যাটিকেলি সেট করা হয়। যেন ডুপ্লিকেট না হয়।

ফরেইন কীঃ একটা ডেটাবেজে একাদিক টেবিল থাকতে পারে। আবার একটা টেবিলের রেকর্ডের সাথে অন্য টেবিলের কোন রেকর্ডের মধ্যে সম্পর্ক থাকতে পারে। এই সম্পর্ক থাকার রেফারেন্সের জন্য অন্য টেবিলের প্রাইমারি কী এর রেফারেন্স হচ্ছে ফরেইন কী।

SQL স্ট্যাটমেন্টঃ SQL কমান্ড গুলোকে বলা হয় SQL স্ট্যাটমেন্ট। যেমন SELECT * FROM users; হচ্ছে একটা স্ট্যাটমেন্ট। এটি আমরা এক লাইনে লিখেছি। রিয়েল লাইফে আমরা সরাসরি এই স্ট্যাটমেন্ট গুলো লিখব না। আমরা যে প্রোগ্রামিং ল্যাঙ্গুয়েজে কাজ করব, ঐ ল্যাঙ্গুয়েজে বিভিন্ন লাইব্রেরী থাকবে ডেটাবেজ নিয়ে কাজ করার জন্য। সেই লাইব্রেরী আমাদের হয়ে স্ট্যাটমেন্ট গুলো লিখে দিবে। তবে এই সিনট্যাক্স গুলো জানা থাকলে ইফিশিয়েন্ট প্রোগাম লেখা যাবে।

পরবর্তী লেখাঃ এসকিউএল সিলেক্ট স্টেটমেন্ট – SQL SELECT

ডেটাবেজ নিয়ে সব গুলো লেখা পাওয়া যাবে বাংলায় ডেটাবেজ টিউটোরিয়াল – SQL পেইজে।

Leave a Reply