SQLite3 – SQLite के साथ बिल्ट-इन काम करें

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

SQLite और sqlite3 मॉड्यूल का परिचय

SQLite एक कॉम्पैक्ट रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (RDBMS) है जिसे अलग सर्वर इंस्टॉल करने की ज़रूरत नहीं होती। यह छोटे और मध्यम प्रोजेक्ट्स के लिए एकदम सही है। Python में SQLite का सपोर्ट बिल्ट-इन मॉड्यूल sqlite3 के ज़रिए मिलता है, जिससे बिना कोई एक्स्ट्रा लाइब्रेरी इंस्टॉल किए डेटाबेस के साथ काम किया जा सकता है।

sqlite3 मॉड्यूल डेटाबेस बनाने और उपयोग करने की प्रक्रिया को सामान्य फ़ाइलों के साथ काम करने जितना आसान बना देता है। यह प्रोटोटाइपिंग, एम्बेडेड सिस्टम, डेस्कटॉप ऐप और शैक्षिक उद्देश्यों के लिए बेहद उपयोगी है।

इंस्टॉलेशन और संगतता

sqlite3 मॉड्यूल Python 2.5 से स्टैंडर्ड लाइब्रेरी का हिस्सा है और बिना किसी अतिरिक्त इंस्टॉलेशन के उपलब्ध है। यह Windows, macOS और Linux सभी ऑपरेटिंग सिस्टम पर पूरी तरह काम करता है और SQLite संस्करण 3 के साथ इंटरफ़ेस प्रदान करता है।

import sqlite3

डेटाबेस से कनेक्शन और कनेक्शन बनाना

फ़ाइल-आधारित डेटाबेस बनाना

conn = sqlite3.connect('my_database.db')

यह कमांड चलाने पर, अगर निर्दिष्ट फ़ाइल मौजूद नहीं है तो डेटाबेस अपने आप बन जाएगा।

मेमोरी में डेटाबेस बनाना

conn = sqlite3.connect(':memory:')

यह विकल्प टेस्टिंग और अस्थायी ऑपरेशन के लिए बहुत सुविधाजनक है।

कनेक्शन के अतिरिक्त पैरामीटर

conn = sqlite3.connect('database.db', 
                      check_same_thread=False,
                      detect_types=sqlite3.PARSE_DECLTYPES)

टेबल बनाना और डेटा स्कीमा के साथ काम करना

टेबल बनाना

cursor = conn.cursor()
cursor.execute('''
    CREATE TABLE users (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        name TEXT NOT NULL,
        age INTEGER,
        email TEXT UNIQUE,
        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    )
''')
conn.commit()

SQLite में डेटा प्रकार

SQLite पाँच मुख्य डेटा प्रकारों को सपोर्ट करता है:

  • INTEGER - पूर्णांक संख्याएँ
  • REAL - फ्लोटिंग पॉइंट संख्याएँ
  • TEXT - टेक्स्ट स्ट्रिंग्स
  • BLOB - बाइनरी डेटा
  • NULL - मान का अभाव

SQLite डायनामिक टाइपिंग का उपयोग करता है, जो लचीलापन देता है लेकिन डेटा के साथ काम करते समय सावधानी की ज़रूरत होती है।

CRUD ऑपरेशन (Create, Read, Update, Delete)

डेटा डालना (Insert)

# एक रिकॉर्ड डालना
cursor.execute("INSERT INTO users (name, age, email) VALUES (?, ?, ?)", 
               ("राहुल शर्मा", 30, "rahul@example.com"))

# एक साथ कई रिकॉर्ड डालना
users_data = [
    ("प्रिया सिंह", 25, "priya@example.com"),
    ("अमित कुमार", 35, "amit@example.com"),
    ("स्नेहा गुप्ता", 28, "sneha@example.com")
]
cursor.executemany("INSERT INTO users (name, age, email) VALUES (?, ?, ?)", users_data)
conn.commit()

डेटा पढ़ना (Select)

# सभी रिकॉर्ड पढ़ना
cursor.execute("SELECT * FROM users")
all_users = cursor.fetchall()

# शर्त के साथ पढ़ना
cursor.execute("SELECT name, age FROM users WHERE age > ?", (25,))
adult_users = cursor.fetchall()

# सॉर्ट करके पढ़ना
cursor.execute("SELECT * FROM users ORDER BY age DESC")
sorted_users = cursor.fetchall()

डेटा अपडेट करना (Update)

cursor.execute("UPDATE users SET age = ? WHERE name = ?", (31, "राहुल शर्मा"))
conn.commit()

# बदली गई पंक्तियों की संख्या जानना
print(f"अपडेट की गई पंक्तियाँ: {cursor.rowcount}")

डेटा हटाना (Delete)

cursor.execute("DELETE FROM users WHERE name = ?", ("प्रिया सिंह",))
conn.commit()
print(f"हटाई गई पंक्तियाँ: {cursor.rowcount}")

ट्रांजैक्शन और एरर हैंडलिंग

ट्रांजैक्शन डेटा की अखंडता बनाए रखने में मदद करते हैं। अगर कोई एरर आती है, तो सभी बदलाव वापस लिए जा सकते हैं।

try:
    cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("विकास", 22))
    cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("अनिल", 28))
    conn.commit()
except sqlite3.Error as e:
    print(f"एरर: {e}")
    conn.rollback()

Pandas के साथ SQLite का उपयोग

डेटा एनालिसिस के लिए Pandas के साथ SQLite का इंटीग्रेशन बहुत शक्तिशाली है।

import pandas as pd

# SQLite से Pandas DataFrame में डेटा लोड करना
df = pd.read_sql_query("SELECT * FROM users", conn)
print(df.head())

# DataFrame को SQLite टेबल में सेव करना
df.to_sql('users_backup', conn, if_exists='replace', index=False)

निष्कर्ष

sqlite3 मॉड्यूल Python में डेटाबेस प्रबंधन को सरल और सुलभ बनाता है। चाहे आप एक छोटा प्रोजेक्ट बना रहे हों या डेटा एनालिसिस कर रहे हों, SQLite एक विश्वसनीय और तेज़ विकल्प है। अभी अभ्यास शुरू करें और अपने Python प्रोजेक्ट्स में SQLite का उपयोग करें!

अनुशंसाएँ