From b00e52b686101101e0719919229b10d562c1f669 Mon Sep 17 00:00:00 2001 From: roger_home_pc Date: Sun, 18 Jun 2023 22:27:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=9F=BA=E6=9C=AC=E7=9A=84sq?= =?UTF-8?q?lalchemy=20select=E6=97=A0=E7=AD=9B=E9=80=89=E7=9A=84=E5=AD=A6?= =?UTF-8?q?=E4=B9=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- s2_fetch_data.py | 89 +++++++++++++++++++++++++++++++++++++----------- 1 file changed, 70 insertions(+), 19 deletions(-) diff --git a/s2_fetch_data.py b/s2_fetch_data.py index 41b77f5..196be3d 100644 --- a/s2_fetch_data.py +++ b/s2_fetch_data.py @@ -1,22 +1,73 @@ from sqlalchemy import select from s1_models import * -# 方法1 -s1 = select([cookies]) # 2.0废弃 -rp1 = connection.execute(s1) -results1 = rp1.fetchall() -print(results1) - -# 方法2 -s2 = cookies.select() -str(s2) -rp2 = connection.execute(s2) -results2 = rp2.fetchall() -print(results2) -print(results2[0]) -first_row = results2[0] -print(first_row[1]) -print(first_row.cookie_name) -print(first_row[cookies.c.cookie_name]) -results3 = rp2.scalar() -print(results3) \ No newline at end of file +# 方法1 rp = ResultProxy +# s1 = select([cookies]) # 2.0废弃 +# rp1 = connection.execute(s1) +# results1 = rp1.fetchall() +# print(results1) +# +# # 方法2 +# s2 = cookies.select() +# str(s2) +# rp2 = connection.execute(s2) +# results2 = rp2.fetchall() +# print(results2) +# print(results2[0]) +# first_row = results2[0] +# print(first_row[1]) +# print(first_row.cookie_name) +# print(first_row[cookies.c.cookie_name]) +# + +# 添加查询参数 +s3 = select([cookies.c.cookie_name, cookies.c.quantity]) +rp3 = connection.execute(s3) +print(rp3.keys()) +results3 = rp3.fetchall() +print(results3) +result_dict = [dict(zip(rp3.keys(), r)) for r in results3] +print(result_dict) + +# 排序 +s4 = select([cookies.c.cookie_name, cookies.c.quantity]).order_by(cookies.c.quantity) +rp4 = connection.execute(s4) +for cookie in rp4: + print(f"{cookie.quantity} - {cookie.cookie_name}") + +# 反向排序 +from sqlalchemy import desc + +s5 = select([cookies.c.cookie_name, cookies.c.quantity]).order_by(desc(cookies.c.quantity)) +rp5 = connection.execute(s5) +for cookie in rp5: + print(f"{cookie.quantity} - {cookie.cookie_name}") + +# limit +s6 = select([cookies.c.cookie_name, cookies.c.quantity]).order_by(cookies.c.quantity).limit(2) +rp6 = connection.execute(s6) +for cookie in rp6: + print(f"{cookie.quantity} - {cookie.cookie_name}") + +# sum +from sqlalchemy import func + +s7 = select([func.sum(cookies.c.quantity)]) +print(str(s7)) +rp7 = connection.execute(s7) +print(rp7.scalar()) + + +# count +s8 = select([func.count(cookies.c.cookie_name)]) +print(str(s8)) +rp8 = connection.execute(s8) +print(rp8.scalar()) + + +# as +s9 = select([func.count(cookies.c.cookie_name).label('cookie_count')]) +rp9 = connection.execute(s9) +r = rp9.first() +print(list(r.keys())) +print(r.cookie_count) \ No newline at end of file