فارسی
باز کردن در Telegram

پست 🐍 آموزش جامع Python — پست ۲۲۶

13 اکتبر 2026
P
Python Coding Academy
🐍 آموزش جامع Python — پست ۲۲۶ استفاده از ATTACH DATABASE برای اتصال چند دیتابیس SQLite گاهی اطلاعات پروژه در چند فایل SQLite جداگانه ذخیره شده‌اند؛ مثلاً اطلاعات کاربران در یک فایل و سفارش‌ها در فایلی دیگر. با دستور ATTACH DATABASE می‌توانیم یک دیتابیس دیگر را به اتصال فعلی اضافه کنیم و از هر دو در Queryها استفاده کنیم. 🔹 اتصال به دیتابیس دوم فرض کنیم دو فایل داریم: project/ ├── users.db └── orders.db می‌توانیم هر دو را از طریق یک اتصال مدیریت کنیم: import sqlite3 connection = sqlite3.connect("users.db") connection.execute( "ATTACH DATABASE ? AS orders_db", ("orders.db",) ) print("Second database attached") connection.close() در این مثال، users.db دیتابیس اصلی و orders_db نام مستعاری است که برای دیتابیس دوم انتخاب کرده‌ایم. 🔹 خواندن اطلاعات از دیتابیس دوم فرض کنیم در orders.db جدولی به نام orders داریم. پس از اتصال دیتابیس دوم، می‌توانیم اطلاعات آن را بخوانیم: import sqlite3 connection = sqlite3.connect("users.db") connection.execute( "ATTACH DATABASE ? AS orders_db", ("orders.db",) ) rows = connection.execute(""" SELECT * FROM orders_db.orders """).fetchall() for row in rows: print(row) connection.close() ساختار کلی دسترسی به جدول دیتابیس متصل‌شده به این شکل است: database_alias.table_name بنابراین: orders_db.orders به جدول orders در دیتابیس دوم اشاره می‌کند. 🔹 ترکیب اطلاعات دو دیتابیس فرض کنیم جدول users در دیتابیس اصلی و جدول orders در دیتابیس دوم قرار دارد و هر سفارش شامل user_id است. می‌توانیم آن‌ها را با JOIN ترکیب کنیم: rows = connection.execute(""" SELECT users.name, orders_db.orders.amount FROM users JOIN orders_db.orders ON users.id = orders_db.orders.user_id """).fetchall() به این ترتیب، اطلاعات کاربران و سفارش‌هایشان از دو فایل متفاوت خوانده می‌شود. 🔹 جدا کردن دیتابیس دوم اگر دیگر به دیتابیس دوم نیاز نداشته باشیم، می‌توانیم آن را جدا کنیم: connection.execute("DETACH DATABASE orders_db") این کار دیتابیس را از اتصال فعلی جدا می‌کند؛ فایل آن را حذف نمی‌کند. ⚠️ نکات مهم فایل دیتابیس دوم باید قابل دسترسی باشد؛ در غیر این صورت اتصال ممکن است با خطا مواجه شود. از نام مستعار برای مشخص‌کردن دیتابیس موردنظر استفاده می‌کنیم. هنگام استفاده از چند دیتابیس، نام جدول‌ها را دقیق مشخص کن تا ابهام ایجاد نشود. اگر به اتمی‌بودن تراکنش بین چند دیتابیس نیاز داری، محدودیت‌های SQLite را بررسی کن؛ به‌خصوص هنگام استفاده از WAL. 🧠 خلاصه ATTACH DATABASE → اتصال دیتابیس دوم alias.table → دسترسی به جدول دیتابیس دوم JOIN → ترکیب اطلاعات DETACH DATABASE → جداکردن دیتابیس 🎯 تمرین دو دیتابیس به نام‌های school.db و courses.db در نظر بگیر. در school.db جدولی به نام students با ستون‌های id و name داشته باش. در courses.db جدولی به نام courses با ستون‌های student_id و title داشته باش. دیتابیس دوم را با نام مستعار course_db متصل کن. با JOIN نام دانشجویان و عنوان دوره‌هایشان را نمایش بده. پست ۲۲۶ از دوره جامع Python 🐍
5 ·

در همان حوالی فید

PPython Coding Academy🐍 آموزش جامع Python — پست ۲۲۴ مدیریت هم‌زمانی در SQLite با حالت WAL وقتی چند بخش از برنامه به‌طور هم‌زمان از یک Database استفاده می‌کنند، مدیریت خواندن و نوشتن PPython Coding Academy🐍 آموزش جامع Python — پست ۲۲۵ ساخت دیتابیس موقت با :memory: گاهی برای آزمایش کد یا اجرای تست‌ها به Database نیاز داریم، اما نمی‌خواهیم فایلی روی دیسک ساخته شود.
این پیام
PPython Coding Academy🐍 آموزش جامع Python — پست ۲۲۷ مدیریت نسخه‌های ساختار Database با Migration در پروژه‌های واقعی، ساختار دیتابیس ممکن است به‌مرور تغییر کند؛ مثلاً ابتدا جدول کاربرPPython Coding Academy🐍 آموزش جامع Python — پست ۲۲۸ تست خودکار عملیات SQLite با unittest تا اینجا یاد گرفتیم چطور با SQLite داده ذخیره کنیم، Query بنویسیم و ساختار Database را مدیریت
PPython Coding AcademyPython Coding Academy@PythonCodingAcademy · کانال · فناوری
30مشترک68پست در 30 روز
فید انجمن باز کردن در Telegram

فید عمومی باز از ایندکس جست‌وجو ChatCrawler — «Google برای Telegram عمومی»؛ با خزش انجمن به‌روز می‌شود. زمان‌ها به UTC است.

فقط محتوای عمومی، API رسمی Telegram. دربارهٔ ما · پرسش‌ها · محدودیت‌های ایندکس · حذف یک صفحه · کاتالوگ · جست‌وجو · روش محاسبهٔ ما