@@ -79,27 +79,27 @@ await database.connect()
79
79
# Execute
80
80
query = notes.insert()
81
81
values = {" text" : " example1" , " completed" : True }
82
- await database.execute(query, values)
82
+ await database.execute(query = query, values = values)
83
83
84
84
# Execute many
85
85
query = notes.insert()
86
86
values = [
87
87
{" text" : " example2" , " completed" : False },
88
88
{" text" : " example3" , " completed" : True },
89
89
]
90
- await database.execute_many(query, values)
90
+ await database.execute_many(query = query, values = values)
91
91
92
92
# Fetch multiple rows
93
93
query = notes.select()
94
- rows = await database.fetch_all(query)
94
+ rows = await database.fetch_all(query = query )
95
95
96
96
# Fetch single row
97
97
query = notes.select()
98
- row = await database.fetch_one(query)
98
+ row = await database.fetch_one(query = query )
99
99
100
100
# Fetch multiple rows without loading them all into memory at once
101
101
query = notes.select()
102
- async for row in database.iterate(query):
102
+ async for row in database.iterate(query = query ):
103
103
...
104
104
105
105
# Close all connection in the connection pool
@@ -109,6 +109,35 @@ await database.disconnect()
109
109
Connections are managed as task-local state, with driver implementations
110
110
transparently using connection pooling behind the scenes.
111
111
112
+ ## Raw queries
113
+
114
+ In addition to SQLAlchemy core queries, you can also perform raw SQL queries:
115
+
116
+ ``` python
117
+ # Execute
118
+ query = " INSERT INTO notes(text, completed) VALUES (:text, :completed)"
119
+ values = {" text" : " example1" , " completed" : True }
120
+ await database.execute(query = query, values = values)
121
+
122
+ # Execute many
123
+ query = " INSERT INTO notes(text, completed) VALUES (:text, :completed)"
124
+ values = [
125
+ {" text" : " example2" , " completed" : False },
126
+ {" text" : " example3" , " completed" : True },
127
+ ]
128
+ await database.execute_many(query = query, values = values)
129
+
130
+ # Fetch multiple rows
131
+ query = " SELECT * FROM notes WHERE completed = :completed"
132
+ rows = await database.fetch_all(query = query, values = {" completed" : True })
133
+
134
+ # Fetch single row
135
+ query = " SELECT * FROM notes WHERE id = :id"
136
+ result = await database.fetch_one(query = query, values = {" id" : 1 })
137
+ ```
138
+
139
+ Note that query arguments should follow the ` :query_arg ` style.
140
+
112
141
## Transactions
113
142
114
143
Transactions are managed by async context blocks:
0 commit comments