রুবি একটি অত্যন্ত শক্তিশালী ভাষা এবং এটি SQL (Structured Query Language) ব্যবহার করতে সক্ষম, বিশেষত ডেটাবেস ম্যানিপুলেশন এবং ম্যানেজমেন্টের জন্য। রুবি SQL ব্যবহারের জন্য বিভিন্ন পদ্ধতি এবং লাইব্রেরি সরবরাহ করে, যার মাধ্যমে আপনি ডেটাবেসে ডেটা ইনসার্ট, আপডেট, নির্বাচন এবং মুছতে পারবেন।
রুবি ভাষায় SQL ব্যবহারের প্রধান দুটি পদ্ধতি হলো:
- ActiveRecord (যেটি Ruby on Rails এর সাথে ব্যবহৃত হয়)
- DBI (Database Independent Interface), Sequel, অথবা SQLite3 মডিউলগুলি
নিচে রুবির মাধ্যমে SQL ব্যবহারের কিছু পদ্ধতি এবং উদাহরণ আলোচনা করা হলো।
1. ActiveRecord (Ruby on Rails এর মাধ্যমে SQL ব্যবহার)
ActiveRecord হল Ruby on Rails ফ্রেমওয়ার্কের অংশ, যা আপনাকে ডেটাবেসের সাথে ইন্টারঅ্যাক্ট করতে সহজভাবে SQL ব্যবহার করার সুযোগ দেয়। এটি ORM (Object-Relational Mapping) ব্যবহার করে, যার মাধ্যমে ডেটাবেস টেবিলের সাথে ক্লাস এবং অবজেক্ট সম্পর্কিত হয়।
ActiveRecord ব্যবহার করার জন্য আপনাকে প্রথমে Ruby on Rails সেটআপ করতে হবে। তবে, এর মধ্যে কিছু মৌলিক SQL অপারেশনগুলি দেখানো হলো:
টেবিলের সাথে মডেল সম্পর্ক স্থাপন:
# মডেল তৈরি করা (ActiveRecord মডেল)
class User < ApplicationRecord
endএখানে, User ক্লাসটি ডেটাবেসের users টেবিলের সাথে সম্পর্কিত হবে (টেবিলের নাম স্বয়ংক্রিয়ভাবে ছোট হরফে রূপান্তরিত হবে)।
INSERT (ডেটা ইনসার্ট করা):
user = User.new(name: "John Doe", email: "john@example.com")
user.saveএখানে, User.new ব্যবহার করে একটি নতুন ইউজার তৈরি করা হয়েছে এবং .save মেথড দিয়ে এটি ডেটাবেসে সংরক্ষিত হয়েছে।
SELECT (ডেটা নির্বাচন করা):
users = User.where(name: "John Doe")
puts users.inspectএখানে, .where মেথড দিয়ে "John Doe" নামের ইউজার নির্বাচন করা হয়েছে।
UPDATE (ডেটা আপডেট করা):
user = User.find_by(email: "john@example.com")
user.update(name: "Jane Doe")এখানে, .find_by ব্যবহার করে নির্দিষ্ট ইমেইল দ্বারা ইউজার খুঁজে বের করা হয়েছে এবং .update দিয়ে ইউজারের নাম আপডেট করা হয়েছে।
DELETE (ডেটা মুছা):
user = User.find_by(email: "john@example.com")
user.destroyএখানে, .destroy মেথড ব্যবহার করে ইউজার ডেটাবেস থেকে মুছে ফেলা হয়েছে।
2. DBI (Database Independent Interface) মডিউল
রুবি DBI (Database Independent Interface) মডিউল ব্যবহার করে আপনি ডেটাবেসের সাথে সরাসরি SQL কমান্ড চালাতে পারেন। এটি সাধারণভাবে বিভিন্ন ডেটাবেসের জন্য একক ইন্টারফেস সরবরাহ করে, যেমন MySQL, PostgreSQL, SQLite, ইত্যাদি।
DBI মডিউল ইনস্টল করা:
gem install dbi
gem install mysql2 # MySQL এর জন্য mysql2 ড্রাইভার ইনস্টল করাDBI এর মাধ্যমে SQL ব্যবহার:
require 'dbi'
# MySQL ডেটাবেসের সাথে সংযোগ স্থাপন
dbh = DBI.connect('DBI:Mysql:your_database_name:localhost', 'username', 'password')
# SQL QUERY চালানো
sth = dbh.prepare('SELECT * FROM users WHERE name = ?')
sth.execute('John Doe')
# ফলাফল দেখানো
while row = sth.fetch do
puts row
end
# সংযোগ বন্ধ করা
sth.finish
dbh.disconnectএখানে, DBI.connect মেথড দিয়ে MySQL ডেটাবেসের সাথে সংযোগ স্থাপন করা হয়েছে এবং prepare এবং execute মেথড দিয়ে SQL কমান্ড চালানো হয়েছে।
3. Sequel (SQL ডাটাবেসের জন্য একটি আরও শক্তিশালী লাইব্রেরি)
Sequel একটি শক্তিশালী এবং সহজে ব্যবহারযোগ্য রুবি লাইব্রেরি যা SQL ডেটাবেসের সাথে ইন্টারঅ্যাক্ট করতে ব্যবহৃত হয়। এটি ডেটাবেসের জন্য আধুনিক এবং কার্যকরী ইন্টারফেস সরবরাহ করে।
Sequel ইনস্টল করা:
gem install sequel
gem install mysql2 # MySQL ড্রাইভার ইনস্টল করাSequel এর মাধ্যমে SQL ব্যবহার:
require 'sequel'
# ডেটাবেসে সংযোগ স্থাপন
DB = Sequel.connect('mysql2://username:password@localhost/your_database_name')
# টেবিল অবজেক্ট
users = DB[:users]
# SELECT: সমস্ত ইউজার নির্বাচন করা
users.each do |user|
puts user[:name]
end
# INSERT: নতুন ইউজার ইনসার্ট করা
users.insert(name: 'John Doe', email: 'john@example.com')
# UPDATE: ইউজারের নাম আপডেট করা
users.where(name: 'John Doe').update(name: 'Jane Doe')
# DELETE: ইউজার মুছা
users.where(name: 'Jane Doe').deleteএখানে, Sequel ব্যবহার করে ডেটাবেসে সহজে SQL কমান্ড চালানো হয়েছে, যেমন insert, update, delete, এবং select।
4. SQLite3 মডিউল
SQLite3 হল একটি ছোট এবং দ্রুত ডেটাবেস, যা সাধারণত অ্যাপ্লিকেশনগুলির সাথে ব্যবহৃত হয়। রুবির sqlite3 মডিউল ব্যবহার করে SQLite ডেটাবেসে SQL কমান্ড চালানো যায়।
SQLite3 ইনস্টল করা:
gem install sqlite3SQLite3 মডিউলের মাধ্যমে SQL ব্যবহার:
require 'sqlite3'
# SQLite ডাটাবেসে সংযোগ
db = SQLite3::Database.new "test.db"
# টেবিল তৈরি করা
db.execute <<-SQL
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
name TEXT,
email TEXT
);
SQL
# INSERT: নতুন ইউজার ইনসার্ট করা
db.execute("INSERT INTO users (name, email) VALUES (?, ?)", ["John Doe", "john@example.com"])
# SELECT: ইউজারের নাম দেখানো
db.execute("SELECT name, email FROM users") do |row|
puts row.join("\s")
end
# ডাটাবেস সংযোগ বন্ধ করা
db.closeএখানে, SQLite3 ব্যবহার করে ডেটাবেস তৈরি, ডেটা ইনসার্ট, নির্বাচন, এবং SQL কমান্ড চালানো হয়েছে।
সারসংক্ষেপ
- রুবি SQL ব্যবহারের জন্য ActiveRecord, DBI, Sequel, এবং SQLite3 লাইব্রেরি সরবরাহ করে।
- ActiveRecord রুবির ORM (Object-Relational Mapping) এর মাধ্যমে SQL এর সাথে ইন্টারঅ্যাক্ট করার জন্য ব্যবহৃত হয়, বিশেষত Ruby on Rails এর মধ্যে।
- DBI এবং Sequel সরাসরি SQL কমান্ড চালানোর জন্য ব্যবহৃত হয় এবং বিভিন্ন ডেটাবেসের সাথে কাজ করার ক্ষমতা দেয়।
- SQLite3 রুবি মডিউলটি ছোট ডেটাবেস ব্যবহারের জন্য ব্যবহৃত হয়।
এসব লাইব্রেরি এবং মেথড ব্যবহার করে রুবি ভাষায় SQL এর সাথে কাজ করা অত্যন্ত সহজ এবং কার্যকর।
Read more