چگونه با SQLite در پایتون کار کنیم؟ ساخت و مدیریت پایگاهداده SQLite
فهرست مطالب این نوشته
Toggleدر برنامهنویسی، پایگاهدادهها بخشی مرکزی هستند که برای ذخیرهسازی، مدیریت و بازیابی اطلاعات به کار میروند. بدون یک سیستم منظم برای مدیریت دادهها، هیچ اپلیکیشنی نمیتواند بهدرستی عمل کند. از سیستمهای بانکی گرفته تا اپلیکیشنهای موبایل، همه به شکلی از پایگاهداده وابستهاند و در این میان SQLite یکی از کارآمدترین گزینههاست.
در این مطلب آموزش دادهایم که چگونه با SQLite در پایتون یک پایگاهداده بسازید، اطلاعات ذخیره کنید، بخوانید، بهروزرسانی و حتی پاک کنید.

Sqlite چیست و چرا باید از آن استفاده کنیم؟
بهتر است از ابتدا شروع کنیم. SQLite چیست؟ این پایگاهداده در اصل یک فایل ساده است که در آن میتوانید اطلاعات خود را ذخیره و مدیریت کنید؛ بدون اینکه نیازی به نصب یا پیکربندی یک سرور جداگانه داشته باشید.
SQLite به معنای واقعی کلمه “سبک” است: کل کتابخانهاش بین ۳۰۰ تا ۳۵۰ کیلوبایت حجم دارد.
نکته: اگر در مسیر آموزش پایتون مقدماتی هستید، SQLite بهترین نقطهی شروع برای یادگیری مفاهیم دیتابیس است.
آموزش شروع کار با SQLite در پایتون
در پایتون نیازی به نصب کتابخانه اضافه برای SQLite ندارید. فقط کافیست ماژول sqlite3 را import کنید و اتصال را برقرار سازید. اگر هنوز نصب SQLite در ویندوز را انجام ندادهاید، نیازی نیست نگران باشید؛ sqlite3 همراه با پایتون نصب میشود و کاملاً آمادهی استفاده است.
import sqlite3
with sqlite3.connect(“students.db”) as conn:
cursor = conn.cursor()
print(“اتصال برقرار شد.”)
این دستور به صورت خودکار فایلی به نام students.db در همان پوشه پروژه شما ایجاد میکند (اگر قبلاً وجود نداشته باشد).
ساخت جدول در SQLite با پایتون
تا اینجا فقط اتصال را برقرار کردید. حالا وقت ساختن جدول است. فرض کنید میخواهید اطلاعات دانشآموزان یک کلاس را ذخیره کنید.
cursor.execute(”’
CREATE TABLE IF NOT EXISTS Students (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER,
email TEXT
);
”’)
conn.commit()
توجه کنید که در این جدول، فیلد id به صورت خودکار شمارهگذاری میشود. اگر در حال طی کردن مسیر آموزش پایتون متوسط هستید، میتوانید از این ساختارها برای ساخت پروژههای کاربردی مثل اپلیکیشن یادآور، سیستم حضور و غیاب یا حتی یک وباپلیکیشن کوچک استفاده کنید.
درج، خواندن، و بهروزرسانی دادهها در Sqlite در پایتون
برای این که درک کاملتری از SQLite پیدا کنیم، بیایید وارد مراحل عملی شویم: درج، خواندن، و بهروزرسانی دادهها در SQLite در پایتون.
افزودن رکورد جدید
برای افزودن دادههای جدید به جدول، میتوانید از دستور زیر استفاده کنید:
cursor.execute(“INSERT INTO Students (name, age) VALUES (?, ?)”, (“زهرا رضایی”, 23))
برای وارد کردن تعداد زیادی رکورد تستی، میتوانید از کتابخانهی Faker کمک بگیرید:
from faker import Faker
fake = Faker([‘fa_IR’])
fake_data = [(fake.name(), fake.random_int(18, 30)) for _ in range(50)]
cursor.executemany(“INSERT INTO Students (name, age) VALUES (?, ?)”, fake_data)
خواندن دادهها از پایگاهداده
cursor.execute(“SELECT * FROM Students”)
for row in cursor.fetchall():
print(row)
اگر با کتابخانه pandas کار میکنید، خواندن دادهها را میتوانید بسیار راحتتر انجام دهید:
import pandas as pd
df = pd.read_sql_query(“SELECT * FROM Students”, conn)
print(df.head())
عملیات بهروزرسانی و حذف
یکی از سادهترین بخشهای آموزش SQLite در پایتون، تغییر یا حذف دادههاست.
- بهروزرسانی
cursor.execute(“UPDATE Students SET age = ? WHERE name = ?”, (24, “زهرا رضایی”))
- حذف رکورد
cursor.execute(“DELETE FROM Students WHERE age > 30”)
تراکنشها: محافظ اطلاعات در موقعیتهای حساس
فرض کنید میخواهید همزمان از یک حساب کم کنید و به حساب دیگری پول اضافه کنید. اینجا اگر بخشی از عملیات انجام شود و بخشی دیگر نه، پایگاهداده شما ناقص میماند. به همین دلیل باید از تراکنشها استفاده کنید.
try:
cursor.execute(“BEGIN TRANSACTION”)
cursor.execute(“UPDATE Accounts SET balance = balance – 100 WHERE id = 1”)
cursor.execute(“UPDATE Accounts SET balance = balance + 100 WHERE id = 2”)
conn.commit()
except Exception as e:
conn.rollback()
print(f”خطا: {e}”)
ایندکسگذاری برای بهبود سرعت
وقتی دادهها زیاد میشوند، جستجو در آنها کند میشود. یکی از روشهای بهینهسازی در SQLite در پایتون، استفاده از ایندکس است:
cursor.execute(“CREATE INDEX idx_age ON Students(age)”)
نتیجهاش چه میشود؟ زمانی که بدون ایندکس برای جستجوی ۱۰۰٬۰۰۰ رکورد صرف میشود، حدود ۴ ثانیه است. اما با ایندکس همین پرسوجو تنها ۱۵ میلیثانیه زمان میبرد!
ورود و خروج دادهها از فایل CSV
SQLite فقط برای ذخیره داده نیست، بلکه میتوانید دادهها را با دنیا به اشتراک بگذارید.
خروجی گرفتن:
cursor.execute(“SELECT * FROM Students”)
with open(‘students.csv’, ‘w’, encoding=’utf-8′) as f:
for row in cursor:
f.write(‘,’.join(map(str, row)) + ‘\n’)
وارد کردن اطلاعات از فایل CSV:
import csv
with open(‘data.csv’, ‘r’, encoding=’utf-8′) as f:
reader = csv.reader(f)
next(reader) # حذف هدر
cursor.executemany(“INSERT INTO Students (name, age) VALUES (?, ?)”, reader)
مدیریت خطاها: باگها را بشناسید و مهارشان کنید
هرچقدر هم که حرفهای باشید، باز هم ممکن است به ارور برخورد کنید. مهم این است که آن را درست مدیریت کنید:
try:
cursor.execute(“SELECT * FROM TableThatDoesNotExist”)
except sqlite3.OperationalError as e:
print(f”خطای عملیاتی: {e}”)
except sqlite3.IntegrityError as e:
print(f”خطای یکپارچگی: {e}”)
چند نکته طلایی برای استفاده بهتر از SQLite در پایتون
- همیشه از with برای اتصال استفاده کنید.
- برای درج گروهی رکورد، از executemany استفاده کنید.
- در پروژههای بزرگ، ستونهای جستجوشونده را ایندکس کنید.
- هر تغییر مهمی را در قالب تراکنش انجام دهید.
- ساختار دادهایتان را قبل از شروع پیادهسازی، طراحی کنید.
آموزش Sqlite در پایتون به صورت حرفهای با آکادمی چابک!
SQLite در پایتون جزو مفاهیم اصلی است که برنامهنویسانی که قصد دارند بهصورت جدی با دادهها کار کنند، باید به آن مسلط باشند؛ فرقی ندارد در حال ساخت یک اپلیکیشن ساده باشید یا سرویس تحت وب!
در آکادمی چابک، ما با تمرکز بر آموزش مفاهیم کاربردی برنامهنویسی، از پایه تا سطح پیشرفته همراهتان هستیم تا بتوانید مهارتهایی مثل پایگاهداده، کار با دادهها و طراحی نرمافزار را بهصورت پروژهمحور بیاموزید.
اگر میخواهید همین حالا قدم بعدی را در مسیر یادگیری حرفهایتان بردارید، همین حالا به دورههای آموزشی آکادمی چابک سر بزنید و برنامهنویسی را به زبان حرفهای و عملی یاد بگیرید.
منبع:


دیدگاهتان را بنویسید