Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(84)

Delta Between Two Patch Sets: README

Issue 4248045: python-sql: select examples (Closed)
Left Patch Set: Refactoring and add more operators Created 13 years, 7 months ago
Right Patch Set: Add setup.py and fix AliasManager for Python 2.7 Created 13 years, 3 months ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
Right: Side by side diff | Download
« no previous file with change/comment | « MANIFEST.in ('k') | setup.py » ('j') | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
(no file at all)
1 python-sql
2 ==========
3
4 python-sql is a library to write SQL queries in a pythonic way.
5
6 Nutshell
7 --------
8
9 Import::
10
11 >>> from sql import *
12 >>> from sql.aggregate import *
13
14 Simple selects::
15
16 >>> user = Table('user')
17 >>> select = user.select()
18 >>> tuple(select)
19 ('SELECT "a".* FROM "user" AS "a"', ())
20
21 >>> select = user.select(user.name)
22 >>> tuple(select)
23 ('SELECT "a"."name" FROM "user" AS "a"', ())
24
25 >>> select = user.select(user.id, user.name)
26 >>> tuple(select)
27 ('SELECT "a"."id", "a"."name" FROM "user" AS "a"', ())
28
29 Select with where condition::
30
31 >>> select.where = user.name == 'foo'
32 >>> tuple(select)
33 ('SELECT "a"."id", "a"."name" FROM "user" AS "a" WHERE ("a"."name" = %s)', ( 'foo',))
34
35 >>> select.where = (user.name == 'foo') & (user.active == True)
36 >>> tuple(select)
37 ('SELECT "a"."id", "a"."name" FROM "user" AS "a" WHERE (("a"."name" = %s) AN D ("a"."active" = %s))', ('foo', True))
38
39 Select with join::
40
41 >>> join = Join(user, Table('user_group'))
42 >>> join.condition = join.right.user == user.id
43 >>> select = join.select(user.name, join.right.group)
44 >>> tuple(select)
45 ('SELECT "a"."name", "b"."group" FROM "user" AS "a" INNER JOIN "user_group" AS "b" ON ("b"."user" = "a"."id")', ())
46
47 Select with multiple joins::
48
49 >>> join1 = Join(user, Table('user'))
50 >>> join2 = Join(join1, Table('user'))
51 >>> select = join2.select(user.id, join1.right.id, join2.right.id)
52 >>> tuple(select)
53 ('SELECT "a"."id", "b"."id", "c"."id" FROM "user" AS "a" INNER JOIN "user" A S "b" INNER JOIN "user" AS "c"', ())
54
55 Select with group_by::
56
57 >>> invoice = Table('invoice')
58 >>> select = invoice.select(Sum(invoice.amount), invoice.currency,
59 ... group_by=invoice.currency)
60 >>> tuple(select)
61 ('SELECT SUM("a"."amount"), "a"."currency" FROM "invoice" AS "a" GROUP BY "a "."currency"', ())
62
63 Select with order_by::
64
65 >>> tuple(user.select(order_by=user.date))
66 ('SELECT "a".* FROM "user" AS "a" ORDER BY "a"."date"', ())
67 >>> tuple(user.select(order_by=Asc(user.date)))
68 ('SELECT "a".* FROM "user" AS "a" ORDER BY "a"."date" ASC', ())
69 >>> tuple(user.select(order_by=(Asc(user.date), Desc(user.id))))
70 ('SELECT "a".* FROM "user" AS "a" ORDER BY "a"."date" ASC, "a"."id" DESC', ( ))
71
72
73 Select with sub-select::
74
75 >>> user_group = Table('user_group')
76 >>> subselect = user_group.select(user_group.user,
77 ... where=(user_group.active == True))
78 >>> user = Table('user')
79 >>> tuple(user.select(user.id, where=(user.id.in_(subselect))))
80 ('SELECT "a"."id" FROM "user" AS "a" WHERE ("a"."id" IN (SELECT "a"."user" F ROM "user_group" AS "a" WHERE ("a"."active" = %s)))', (True,))
81
82 Insert query with default values::
83
84 >>> tuple(user.insert())
85 ('INSERT INTO "user" DEFAULT VALUES', ())
86
87 Insert query with values::
88
89 >>> tuple(user.insert(columns=[user.name, user.login],
90 ... values=['Foo', 'foo']))
91 ('INSERT INTO "user" ("name", "login") VALUES (%s, %s)', ('Foo', 'foo'))
92 >>> tuple(user.insert(columns=[user.name, user.login],
93 ... values=[['Foo', 'foo'], ['Bar', 'bar']]))
94 ('INSERT INTO "user" ("name", "login") VALUES (%s, %s), (%s, %s)', ('Foo', ' foo', 'Bar', 'bar'))
95
96 Insert query with query::
97
98 >>> passwd = Table('passwd')
99 >>> select = passwd.select(passwd.login, passwd.passwd)
100 >>> tuple(user.insert(values=select))
101 ('INSERT INTO "user" VALUES (SELECT "a"."login", "a"."passwd" FROM "passwd" AS "a")', ())
102
103 Delete query::
104
105 >>> tuple(user.delete())
106 ('DELETE FROM "user"', ())
107
108 Delete query with where condition::
109
110 >>> tuple(user.delete(where=(user.name == 'foo')))
111 ('DELETE FROM "user" WHERE ("name" = %s)', ('foo',))
112
113 Delete query with sub-query::
114
115 >>> tuple(user.delete(where=(
116 ... user.id.in_(user_group.select(user_group.user)))))
117 ('DELETE FROM "user" WHERE ("id" IN (SELECT "a"."user" FROM "user_group" AS "a"))', ())
LEFTRIGHT

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b