آموزش توابع SQL در Peewee
آموزش توابع SQL در Peewee
در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش توابع SQL در Peewee خواهیم پرداخت.
پیشنهاد ویژه : پکیج آموزش صفر تا صد پایتون
استاندارد Structured Query Language (SQL) موسسه استاندارد ملی آمریکا (ANSI) بسیاری از توابع SQL را تعریف می کند.
توابع تجمعی مانند موارد زیر در Peewee مفید هستند.
()AVG – مقدار متوسط را برمی گرداند.
()COUNT – تعداد سطرها را برمی گرداند.
()FIRST – اولین مقدار را برمی گرداند.
()LAST – آخرین مقدار را برمی گرداند.
()MAX – بزرگترین مقدار را برمی گرداند.
()MIN – کوچکترین مقدار را برمی گرداند.
()SUM – مجموع را برمی گرداند.
برای پیاده سازی این توابع SQL ، Peewee یک تابع کمکی ()SQL fn دارد. در مثال بالا، ما از آن برای یافتن تعداد رکوردها برای هر شهر استفاده کردیم.
مثال زیر یک کوئری SELECT ایجاد می کند که از تابع ()SUM استفاده می کند.
با استفاده از جداول Bill و Item از مدلهایی که قبلاً تعریف شده اند ، مجموع مقدار هر مورد را که در جدول Bill وارد شده است نمایش می دهیم.
Id | نام آیتم | قیمت |
---|---|---|
1 | Laptop | 25000 |
2 | Printer | 12000 |
3 | Router | 4000 |
جدول صورتحساب
جدول صورتحساب به شرح زیر است –
Id | Item_id | Brand_id | Quantity |
---|---|---|---|
1 | 1 | 3 | 5 |
2 | 2 | 2 | 2 |
3 | 3 | 4 | 5 |
4 | 2 | 2 | 6 |
5 | 3 | 4 | 3 |
6 | 1 | 3 | 1 |
مثال
ما بین جدول صورتحصاب و آیتم پیوند ایجاد می کنیم، نام مورد را از جدول Item و مجموع مقدار را از جدول Bill انتخاب می کنیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
from peewee import * db = SqliteDatabase('mydatabase.db') class BaseModel(Model): class Meta: database = db class Item(BaseModel): itemname = TextField() price = IntegerField() class Brand(BaseModel): brandname = TextField() item = ForeignKeyField(Item, backref='brands') class Bill(BaseModel): item = ForeignKeyField(Item, backref='bills') brand = ForeignKeyField(Brand, backref='bills') qty = DecimalField() db.create_tables([Item, Brand, Bill]) qs=Bill.select(Item.itemname, fn.SUM(Bill.qty).alias('Sum')) .join(Item).group_by(Item.itemname) print (qs) for q in qs: print ("Item: {} sum: {}".format(q.item.itemname, q.Sum)) db.close() |
اسکریپت بالا عبارت SELECT زیر را اجرا می کند –
1 2 |
SELECT "t1"."itemname", SUM("t2"."qty") AS "Sum" FROM "bill" AS "t2" INNER JOIN "item" AS "t1" ON ("t2"."item_id" = "t1"."id") GROUP BY "t1"."itemname" |
خروجی
بر این اساس، خروجی به شرح زیر است –
1 2 3 |
Item: Laptop sum: 6 Item: Printer sum: 8 Item: Router sum: 8 |
لیست جلسات قبل آموزش Peeweee
- آموزش Peeweee
- آموزش مقدماتی Peeweee
- آموزش کلاس پایگاه داده در Peeweee
- آموزش کلاس مدل در Peeweee
- آموزش کلاس Field در Peewee
- آموزش ایجاد یک رکورد جدید در Peewee
- آموزش انتخاب رکورد در Peewee
- آموزش فیلترها در Peewee
- آموزش کلیدهای اولیه و کامپوزیت در Peewee
- آموزش به روزرسانی رکوردهای موجود در Peewee
- آموزش حذف رکوردها در Peewee
- آموزش ایجاد ایندکس در Peewee
- آموزش محدودیت ها در Peewee
- آموزش استفاده از MySQL در Peewee
- آموزش استفاده از PostgreSQL در Peewee
- آموزش تعریف پایگاه داده به صورت پویا در Peewee
- آموزش مدیریت اتصال در Peewee
- آموزش روابط و پیوستن در Peewee
- آموزش subquery در Peewee
- آموزش مرتب سازی در Peewee
- آموزش شمارش در Peewee
دیدگاه شما