- SQLAlchemy教程
- SQLAlchemy - 首頁
- SQLAlchemy - 簡介
- SQLAlchemy核心
- 表示式語言
- 連線資料庫
- 建立表格
- SQL表示式
- 執行表示式
- 選擇行
- 使用文字SQL
- 使用別名
- 使用UPDATE表示式
- 使用DELETE表示式
- 使用多個表格
- 使用多表更新
- 引數有序更新
- 多表刪除
- 使用連線
- 使用連線詞
- 使用函式
- 使用集合操作
- SQLAlchemy ORM
- 宣告對映
- 建立會話
- 新增物件
- 使用查詢
- 更新物件
- 應用過濾器
- 過濾器運算子
- 返回列表和標量
- 文字SQL
- 構建關係
- 處理相關物件
- 處理連線
- 常用關係運算子
- 急切載入
- 刪除相關物件
- 多對多關係
- 方言
- SQLAlchemy有用資源
- SQLAlchemy - 快速指南
- SQLAlchemy - 有用資源
- SQLAlchemy - 討論
SQLAlchemy核心 - 選擇行
在本章中,我們將討論在表格物件中選擇行的概念。
表格物件的select()方法使我們能夠構建SELECT表示式。
s = students.select()
select物件透過str(s)函式轉換為SELECT查詢,如下所示:
'SELECT students.id, students.name, students.lastname FROM students'
我們可以使用此select物件作為連線物件的execute()方法的引數,如下面的程式碼所示:
result = conn.execute(s)
當執行上述語句時,Python shell會回顯以下等效的SQL表示式:
SELECT students.id, students.name, students.lastname FROM students
結果變數等同於DBAPI中的遊標。我們現在可以使用fetchone()方法獲取記錄。
row = result.fetchone()
表格中所有選定的行都可以透過for迴圈列印,如下所示:
for row in result: print (row)
列印students表格中所有行的完整程式碼如下所示:
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
engine = create_engine('sqlite:///college.db', echo = True)
meta = MetaData()
students = Table(
'students', meta,
Column('id', Integer, primary_key = True),
Column('name', String),
Column('lastname', String),
)
s = students.select()
conn = engine.connect()
result = conn.execute(s)
for row in result:
print (row)
Python shell中顯示的輸出如下:
(1, 'Ravi', 'Kapoor') (2, 'Rajiv', 'Khanna') (3, 'Komal', 'Bhandari') (4, 'Abdul', 'Sattar') (5, 'Priya', 'Rajhans')
SELECT查詢的WHERE子句可以透過使用Select.where()來應用。例如,如果我們想顯示id>2的行
s = students.select().where(students.c.id>2) result = conn.execute(s) for row in result: print (row)
這裡c屬性是列的別名。shell上將顯示以下輸出:
(3, 'Komal', 'Bhandari') (4, 'Abdul', 'Sattar') (5, 'Priya', 'Rajhans')
在這裡,我們需要注意的是,select物件也可以透過sqlalchemy.sql模組中的select()函式獲得。select()函式需要表格物件作為引數。
from sqlalchemy.sql import select s = select([users]) result = conn.execute(s)
廣告