This document provides a comprehensive introduction to SQLAlchemy ORM, detailing model definition, database operations, and relationships. It covers installation, creating sessions, defining models, performing CRUD operations, and querying the database using various filters and functions. Additionally, it includes example implementations for managing users, cookies, and orders within a relational database context.
ORDER BY
for cookiein session.query(Cookie).order_by(Cookie.quantity):
print('{:3} - {}'.format(cookie.quantity, cookie.cookie_name))
12 - chocolate chip
24 - peanut butter
100 - oatmeal raisin
23.
DECENDING
from sqlalchemy importdesc
for cookie in session.query(Cookie).order_by(desc(Cookie.quantity)):
print('{:3} - {}'.format(cookie.quantity, cookie.cookie_name))
between(cleft, cright) -Find where the column is between
cleft and cright
distinct() - Find only unique values for column
in_([list]) - Find where the column is in the list
is_(None) - Find where the column is None (commonly
used for Null checks with None)
contains('string') - Find where the column has 'string' in it
(Case-sensitive)
endswith('string') - Find where the column ends with
'string' (Case-sensitive)
startswith('string') - Find where the column begins with
'string' (Case-sensitive)
ilike('string') - Find where the column is like 'string' (NOT
Case-sensitive)
33.
OPERATORS
from sqlalchemy importcast
query = session.query(Cookie.cookie_name,
cast((Cookie.quantity * Cookie.unit_cost),
Numeric(12,2)).label('inv_cost'))
for result in query:
print('{} - {}'.format(result.cookie_name, result.inv_cost))
chocolate chip - 6.00
peanut butter - 6.00
oatmeal raisin - 100.00
34.
CONJUNCTIONS
from sqlalchemy importand_, or_, not_
query = session.query(Cookie).filter(
or_(
Cookie.quantity.between(10, 50),
Cookie.cookie_name.contains('chip')
)
)
for result in query:
print(result.cookie_name)
chocolate chip
peanut butter
DEFINING A USER
cookiemon= User(username='cookiemon',
email_address='mon@cookie.com',
phone='111-111-1111',
password='password')
session.add(cookiemon)
session.commit()
47.
SETTING UP ANORDER
o1 = Order()
o1.user = cookiemon
session.add(o1)
ANOTHER EXAMPLE
query =session.query(User.username, func.count(Order.order_id))
query = query.outerjoin(Order).group_by(User.username)
for row in query:
print(row)
('cookiemon', 1)