感謝朋友支援本部落格,歡迎共同**交流,由於能力和時間有限,錯誤之處在所難免,歡迎指正!
better me的部落格
:blog.csdn.net/tantexian
#簡單查詢
print(session.query(user).all())
print(session.query(user.name, user.fullname).all())
print(session.query(user, user.name).all())
#帶條件查詢
print(session.query(user).filter_by(name='user1').all())
print(session.query(user).filter(user.name == "user").all())
print(session.query(user).filter(user.name.like("user%")).all())
#多條件查詢
print(session.query(user).filter(and_(user.name.like("user%"), user.fullname.like("first%"))).all())
print(session.query(user).filter(or_(user.name.like("user%"), user.password != none)).all())
#sql過濾
print(session.query(user).filter("id>:id").params(id=1).all())
#關聯查詢
print(session.query(user, address).filter(user.id == address.user_id).all())
print(session.query(user).join(user.addresses).all())
print(session.query(user).outerjoin(user.addresses).all())
#聚合查詢
print(session.query(user.name, func.count('*').label("user_count")).group_by(user.name).all())
print(session.query(user.name, func.sum(user.id).label("user_id_sum")).group_by(user.name).all())
#子查詢
stmt = session.query(address.user_id, func.count('*').label("address_count")).group_by(address.user_id).subquery()
print(session.query(user, stmt.c.address_count).outerjoin((stmt, user.id == stmt.c.user_id)).order_by(user.id).all())
#exists
print(session.query(user).filter(exists().where(address.user_id == user.id)))
print(session.query(user).filter(user.addresses.any()))
以下為對映類:
classuser(base):
__tablename__ = "users"
id = column("id", integer, primary_key=true)
name = column("name", string)
fullname = column("fullname", string)
password = column("password", string)
addresses = relation("address", order_by="address.id", backref="user")
def__init__(self, id=none, name=none, fullname=none, password=none, addresses=):
self.id = id
self.name = name
self.fullname = fullname
self.password = password
self.addresses = addresses
def__repr__(self):
return"".format(name=self.name, fullname=self.fullname, password=self.password, addresses=self.addresses)
classaddress(base):
__tablename__ = "address"
id = column(integer, primary_key=true)
email_address = column(string, nullable=false)
user_id = column(integer, foreignkey("users.id"))
#user = relation("user", backref="addresses", order_by="address.id")
def__init__(self, email_address=none):
self.email_address = email_address
def__repr__(self):
return"".format(email_address=self.email_address, user=self.user.name)
sqlalchemy的兩種方法詳解
工作需要,用到了sqlalchemy,經過近乙個月的不斷學習和探索實踐,現在整理一下,以免將來沒地方找。下面的講解我們統一把資料庫的相關操作封裝在乙個類裡面。先來說第一種 from sqlalchemy import create engine from sqlalchemy.ext.declara...
Linux vmstat命令實戰詳解
vmstat命令是最常見的linux unix監控工具,可以展現給定時間間隔的伺服器的狀態值,包括伺服器的cpu使用率,記憶體使用,虛擬記憶體交換情況,io讀寫情況。這個命令是我檢視linux unix最喜愛的命令,乙個是linux unix都支援,二是相比top,我可以看到整個機器的cpu,記憶體...
Linux vmstat命令實戰詳解
vmstat命令是最常見的linux unix監控工具,可以展現給定時間間隔的伺服器的狀態值,包括伺服器的cpu使用率,記憶體使用,虛擬記憶體交換情況,io讀寫情況。這個命令是我檢視linux unix最喜愛的命令,乙個是linux unix都支援,二是相比top,我可以看到整個機器的cpu,記憶體...