সিক্যুয়েল কি?
সিক্যুয়েল হল একটি রত্ন যা আপনাকে আপনার ডাটাবেস অ্যাক্সেস করতে দেয়, কোনো রেলের প্রয়োজন নেই৷
৷আপনি বিভিন্ন উপায়ে আপনার ডাটাবেসের সাথে সংযোগ করতে পারেন।
বেশিরভাগই দুটি :
- কাঁচা SQL কমান্ড পাঠানোর মাধ্যমে
- একটি ORM ব্যবহার করে
এখানে একটি উদাহরণ, কাঁচা SQL এবং MySQL ডাটাবেস ব্যবহার করে।
require 'mysql2'
client = Mysql2::Client.new(host: "localhost")
results = client.query("SELECT * FROM users WHERE age > 21")
ফলাফল?
ডেটা সহ হ্যাশের একটি অ্যারে৷
৷এখন :
যদি আমরা অবজেক্ট-ওরিয়েন্টেড উপায়ে ডেটা নিয়ে কাজ করতে চাই, তাহলে আমাদের ফলাফলগুলিকে বস্তুতে পরিণত করতে হবে।
এটি একটি ORM যা করে তার একটি বড় অংশ৷
৷ওআরএম কি?
ORM মানে "অবজেক্ট-রিলেশনাল-ম্যাপিং"।
সিক্যুয়েল, SQL-এর ভোকালাইজেশনের নামে নামকরণ করা হয়েছে (ডাটাবেসের জন্য একটি প্রশ্নের ভাষা), হল একটি ORM।
আসুন এটি কীভাবে ব্যবহার করবেন তা আবিষ্কার করা যাক!
সিক্যুয়েল উদাহরণ:একটি ডাটাবেসের সাথে সংযোগ করা
সিক্যুয়েল ব্যবহার শুরু করার প্রথম ধাপ হল একটি ডাটাবেসের সাথে সংযোগ করা।
এখানে একটি উদাহরণ আছে :
require 'sequel'
DB = Sequel.sqlite('/tmp/testing.db')
এটি একটি Sequel::Database তৈরি করে অবজেক্ট এবং এটি DB এ বরাদ্দ করে .
আমরা এখানে SQLite3 ডাটাবেস ব্যবহার করছি।
কিন্তু আপনি অন্যদের ব্যবহার করতে পারেন :
Sequel.postgresSequel.mysql2Sequel.oracle
এরপর কি?
ডেটা সঞ্চয় করার জন্য আপনাকে একটি টেবিল তৈরি করতে হবে।
এটি কীভাবে তৈরি করবেন তা এখানে রয়েছে :
unless DB.table_exists?(:fruits)
DB.create_table :fruits do
primary_key :id
column :name, String
column :amount, Integer
end
end
একটি মাইগ্রেশন সিস্টেম আছে যা আপনি ব্যবহার করতে পারেন।
কিন্তু এটা ঐচ্ছিক .
এখন আমরা ডেটা যোগ করা এবং ডাটাবেস অনুসন্ধান শুরু করতে প্রস্তুত!
সিক্যুয়েল ডেটাসেটগুলি কীভাবে ব্যবহার করবেন
ডাটাবেসের একটি নির্দিষ্ট টেবিলের সাথে ইন্টারঅ্যাক্ট করার জন্য আপনার একটি ডেটাসেট অবজেক্টের প্রয়োজন।
এখানে কিভাবে একটি পেতে হয় :
table = DB[:fruits] # Sequel::SQLite::Dataset
দারুণ!
এখন আমরা insert দিয়ে কয়েকটি রেকর্ড যোগ করতে পারি পদ্ধতি।
এরকম :
table.insert(name: "Orange", amount: 10) table.insert(name: "Apple", amount: 2) table.insert(name: "Banana", amount: 7)
আসুন গণনা করা যাক :
table.count # 3
ডেটাসেটের সমস্ত এন্ট্রি পাওয়া যাক :
table.all
# [
# { id: 1, name: "Orange", amount: 10 },
# { id: 2, name: "Apple", amount: 2 },
# { id: 3, name: "Banana", amount: 7 }
# ]
আরে!
এটি হ্যাশের একটি অ্যারের মত দেখাচ্ছে৷
৷আচ্ছা, আপনি ঠিক বলেছেন।
এটা ঠিক এটাই।
Sequel আপনাকে একটি মডেল ছাড়াই ডাটাবেস অনুসন্ধান করার অনুমতি দেয়৷
কিন্তু আমরা মডেল ব্যবহার করতে পারি .
এখানে কিভাবে…
সিক্যুয়েলে মডেলগুলি কীভাবে ব্যবহার করবেন
একটি Sequel মডেল দেখতে অনেকটা ActiveRecord এর মত মডেল।
এখানে একটি উদাহরণ আছে :
class Fruit < Sequel::Model end
মডেলগুলি একটি ডেটাসেটের মতো আচরণ করে, কিন্তু তারা ফলাফলগুলিকে মডেল ক্লাসে মোড়ানো হয়৷
৷একবার দেখুন :
Fruit.first
# Fruit @values={:id=>1, :name=>"Orange", :amount=>10}
আমরা একই Sequel::Dataset ব্যবহার করতে পারি পদ্ধতি।
তাই এখানে কোন "জাদু" নেই।
আরো কিছু উদাহরণ :
Fruit.map(:name) # ["Orange", "Apple", "Banana"] Fruit.where(name: "Apple").or(amount: 10).map(:name) # ["Orange", "Apple"] Fruit.first[:amount] # 10
খুব সুন্দর!
সিক্যুয়েল বনাম ActiveRecord
এখন আপনি শিখেছেন কতটা দুর্দান্ত Sequel হল, আপনি হয়ত ভাবছেন এটি কিভাবে ActiveRecord এর সাথে তুলনা করে .
আচ্ছা, ActiveRecord রেলের জন্য ডিফল্ট ORM।
এবং রেল সত্যিই কনভেনশন পছন্দ করে।
তাই আমি মনে করি না এটি ActiveRecord প্রতিস্থাপন করার চেষ্টা করা মূল্যবান Sequel সহ একটি রেল অ্যাপে৷
যাইহোক।
আপনি যদি অন্য ফ্রেমওয়ার্ক ব্যবহার করেন, যেমন সিনাট্রা, তাহলে Sequel একটি মহান পছন্দ!
সারাংশ
আপনি একটি ORM ব্যবহার করে রুবিতে ডাটাবেসের সাথে কাজ করার বিষয়ে শিখেছেন, এই ক্ষেত্রে, সিক্যুয়েল রুবি রত্ন৷
এখন এটি একবার চেষ্টা করার এবং মজা করার পালা আপনার!
পড়ার জন্য ধন্যবাদ।