هسته Sqlalchemy با متن SQL برای محدوده تاریخ
موسسه پایا پروژه به عنوان متصدی انجام پروژه های پایتون وظیفه ی خود می داند که در راستای آموزش نرم افزار پایتون گام های موثری را بردارد. با توجه به اینکه یک دوره آموزشی پایتون مستلزم تمرین و تلاش بسیار است. اما این موسسه تلاش می کند سهم کوچکی در جهت یادگیری شما داشته باشد.
SQLAlchemy Core یک لایه انتزاعی SQL سطح پایین از SQLAlchemy است که یک کتابخانه محبوب نقشه برداری شی گرا (ORM) در انجام پروژه پایتون است. این روشی را برای تعامل با کدهای wing python پایگاه های داده رابطه ای فراهم می کند و به توسعه دهندگان این امکان را می دهد که پرس و جوهای SQL را به شیوه ای شی گراتر بنویسند.

SQLAlchemy یک کتابخانه پایتون است که مجموعه ای از ابزارها را برای کار با پایگاه های داده ارائه می دهد. این برای کار با طیف گسترده ای از پایگاه داده های رابطه ای طراحی شده است، از جمله:
- MySQL
- PostgreSQL
- SQLite
- اوراکل
- مایکروسافت SQL Server
از یک API یکپارچه برای تعامل با سیستم های پایگاه داده مختلف استفاده می کند و به شما این امکان را می دهد که بدون نیاز به تغییر کد خود بین پایگاه های داده جابجا شوید. این یک راه قدرتمند و انعطاف پذیر برای کار با پایگاه های داده SQL در پایتون ارائه می دهد.
برای استفاده از SQLAlchemy Core با متن SQL برای محدوده تاریخ، میتوانید از تابع «متن» برای نوشتن یک پرسش SQL که شامل فیلتر محدوده تاریخ است استفاده کنید.
مراحل انجام پروژه پایتون:
1. تعریف یک شیء SQLAlchemy “engine”
یک شیء SQLAlchemy “engine” را برای اتصال به پایگاه داده خود تعریف کنید.
from sqlalchemy import create_engine
engine = create_engine(‘postgresql://username:password@localhost/mydatabase‘)
2. ایجاد یک شیء SQLAlchemy “connection”
یک شیء SQLAlchemy “connection” با استفاده از موتور ایجاد کنید.
()connection = engine.connect
3. نوشتن پرس و جوی متنی SQL
پرس و جوی متنی SQL خود را با متغیرهایی برای محدوده داده بنویسید.
در اینجا ما تمام رکوردهای بین تاریخ شروع و پایان را بازیابی می کنیم.
*SELECT
FROM mytable
WHERE date_column >= :start_date AND date_column <= :end_date
استفاده از از تابع text
از تابع “text()” از SQLAlchemy Core برای ایجاد یک شی “متن” که پرس و جوی SQL شما را نشان می دهد، استفاده کنید.
from sqlalchemy import text
)sql_query = text
SELECT * FROM mytable WHERE date_column >= :start_date AND”
( “date_column <= :end_date
4. پرس و جو با استفاده از execute()
پرس و جو را با استفاده از متد “execute()” روی شی اتصال اجرا کنید، و در یک فرهنگ لغت با تاریخ های شروع و پایان به عنوان مقادیر برای متغیرهای پرس و جوی SQL ارسال کنید.
)result = connection.execute
{sql_query, {‘start_date’: ‘2022-01-01’, ‘end_date’: ‘2022-12-31’}
5. پردازش نتایج
مجموعه نتایج پروژه پایتون را در صورت نیاز پردازش کنید، بدینوسیله در ردیفها تکرار کنید و مجموعه نتایج را به یک قاب داده پاندا تبدیل کنید.
:for row in result
print(row)
خروجی:

در این مثال، ما از تابع “text” برای نوشتن یک پرس و جوی SQL استفاده می کردیم که تمام سطرها را از جدول “table_name” انتخاب می کند که در آن ستون “date_column” بین “start_date” و “end_date” قرار دارد. سپس پارامترهای “start_date” و “end_date” را با استفاده از روش “execute” شی SQLAlchemy “engine” ارسال می کردیم.
توجه: هنگامی که از پرسوجوهای SQL با SQLAlchemy Core استفاده میکنیم، باید مراقب باشید که هر ورودی کاربر را بهدرستی پاکسازی کنید تا از حملات تزریق SQL جلوگیری کنید.
منابع:
w3schools.com
geeksforgeeks.org
