কম্পিউটার

রুবি সিক্যুয়েল জেম কীভাবে ব্যবহার করবেন (উদাহরণ সহ)

সিক্যুয়েল কি?

সিক্যুয়েল হল একটি রত্ন যা আপনাকে আপনার ডাটাবেস অ্যাক্সেস করতে দেয়, কোনো রেলের প্রয়োজন নেই৷

আপনি বিভিন্ন উপায়ে আপনার ডাটাবেসের সাথে সংযোগ করতে পারেন।

বেশিরভাগই দুটি :

  • কাঁচা 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.postgres
  • Sequel.mysql2
  • Sequel.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 ব্যবহার করে রুবিতে ডাটাবেসের সাথে কাজ করার বিষয়ে শিখেছেন, এই ক্ষেত্রে, সিক্যুয়েল রুবি রত্ন৷

এখন এটি একবার চেষ্টা করার এবং মজা করার পালা আপনার!

পড়ার জন্য ধন্যবাদ।


  1. রুবি গ্রেপ পদ্ধতি কীভাবে ব্যবহার করবেন (উদাহরণ সহ)

  2. রুবি মানচিত্র পদ্ধতি কীভাবে ব্যবহার করবেন (উদাহরণ সহ)

  3. রুবিতে ফাইলগুলি কীভাবে পড়তে এবং লিখতে হয় (উদাহরণ সহ)

  4. লিনাক্সে ঘড়ির কমান্ড কীভাবে ব্যবহার করবেন, উদাহরণ সহ