Python में SQLite के साथ काम करना: शुरुआती और अनुभवी डेवलपर्स के लिए पूरी गाइड
एप्लिकेशन डेवलप करते समय डेटाबेस के साथ काम करना सबसे महत्वपूर्ण कार्यों में से एक है। अगर आपको एक हल्का, अंतर्निहित समाधान चाहिए जिसके लिए अलग सर्वर स्थापित करने की ज़रूरत न हो, तो SQLite आपके लिए एकदम सही है।
Python के साथ, मानक मॉड्यूल sqlite3 की बदौलत, आप कोड से सीधे डेटाबेस बना, बदल और प्रबंधित कर सकते हैं। इस लेख में आप जानेंगे कि SQLite से कैसे कनेक्ट करें, डेटा इन्सर्ट (INSERT), अपडेट (UPDATE) और बहुत कुछ कैसे करें।
SQLite क्या है और इसे क्यों चुना जाता है?
SQLite एक एम्बेडेड रिलेशनल डेटाबेस है जो सारी जानकारी एक ही फ़ाइल में स्टोर करता है। इसे किसी अलग सर्वर की ज़रूरत नहीं होती और यह प्रोटोटाइपिंग, छोटे प्रोजेक्ट और मोबाइल एप्लिकेशन के लिए बहुत उपयुक्त है।
SQLite का उपयोग सॉफ्टवेयर डेवलपमेंट के विभिन्न क्षेत्रों में व्यापक रूप से किया जाता है। ब्राउज़र, मैसेजिंग ऐप और मोबाइल एप्लिकेशन सहित कई लोकप्रिय एप्लिकेशन लोकल डेटा स्टोरेज के लिए SQLite का उपयोग करते हैं।
SQLite के फायदे
- सर्वर इंस्टॉल करने की ज़रूरत नहीं
- तेज़ गति से काम करता है
- उपयोग में आसान
- मॉड्यूल sqlite3 के ज़रिए Python के साथ शानदार इंटीग्रेशन
- क्रॉस-प्लेटफ़ॉर्म और पोर्टेबल
- ACID ट्रांज़ैक्शन का सपोर्ट
- न्यूनतम संसाधन खपत
SQLite की सीमाएँ
- एक साथ कई उपयोगकर्ताओं द्वारा लिखने का सपोर्ट नहीं करता
- बड़े डेटा वॉल्यूम के साथ सीमित प्रदर्शन
- अंतर्निहित रेप्लिकेशन का अभाव
- जटिल मल्टी-यूज़र एप्लिकेशन के लिए सीमित क्षमताएँ
Python में SQLite डेटाबेस से कनेक्ट करना
बेसिक कनेक्शन
import sqlite3
# डेटाबेस से कनेक्ट करें (अगर फ़ाइल मौजूद नहीं है तो वह बन जाएगी)
conn = sqlite3.connect('my_database.db')
# SQL क्वेरी चलाने के लिए कर्सर बनाएँ
cursor = conn.cursor()
मेमोरी में डेटाबेस से कनेक्ट करना
अस्थायी डेटा स्टोरेज या टेस्टिंग के लिए आप मेमोरी में डेटाबेस का उपयोग कर सकते हैं:
conn = sqlite3.connect(':memory:')
कनेक्शन पैरामीटर सेट करना
conn = sqlite3.connect('my_database.db', timeout=10)
conn.execute('PRAGMA foreign_keys = ON') # फॉरेन कीज़ चालू करें
SQLite में टेबल बनाना
सरल टेबल बनाना
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER
)
''')
conn.commit()
अतिरिक्त प्रतिबंधों के साथ टेबल बनाना
cursor.execute('''
CREATE TABLE IF NOT EXISTS products (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL UNIQUE,
price REAL CHECK(price > 0),
category TEXT DEFAULT 'uncategorized',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
''')
conn.commit()
ऑप्टिमाइज़ेशन के लिए इंडेक्स बनाना
cursor.execute('''
CREATE INDEX IF NOT EXISTS idx_users_name ON users(name)
''')
conn.commit()
टेबल में डेटा डालना — python sqlite3 insert
एक रिकॉर्ड डालना
सबसे आम प्रश्नों में से एक है SQLite टेबल में डेटा कैसे डालें:
cursor.execute('''
INSERT INTO users (name, age) VALUES (?, ?)
''', ('राहुल', 30))
conn.commit()
प्रश्न चिह्न (?) का उपयोग SQL इंजेक्शन से बचाता है और यह अनुशंसित तरीका है।
एक साथ कई रिकॉर्ड डालना
users = [('अलेक