सीक्वल क्या है?
सीक्वल एक रत्न है जो आपको अपने डेटाबेस तक पहुँचने की अनुमति देता है, इसके लिए किसी रेल की आवश्यकता नहीं होती है।
आप अपने डेटाबेस से विभिन्न तरीकों से जुड़ सकते हैं।
ज्यादातर दो :
- कच्चे SQL आदेश भेजकर
- ओआरएम का उपयोग करके
कच्चे 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 रेल के लिए डिफ़ॉल्ट ओआरएम है।
और रेल वास्तव में सम्मेलन पसंद करते हैं।
इसलिए मुझे नहीं लगता कि ActiveRecord . को बदलने की कोशिश करना उचित है Sequel . के साथ एक रेल ऐप में।
हालांकि।
यदि आप सिनात्रा जैसे किसी अन्य ढांचे का उपयोग कर रहे हैं, तो Sequel एक बढ़िया विकल्प है!
सारांश
आपने रूबी में डेटाबेस के साथ ORM का उपयोग करके काम करने के बारे में सीखा है, इस मामले में, अगली कड़ी रूबी रत्न।
अब इसे आजमाने और आनंद लेने की आपकी बारी है!
पढ़ने के लिए धन्यवाद।