- SQLAlchemy 教程
- SQLAlchemy - 首頁
- SQLAlchemy - 簡介
- SQLAlchemy Core
- 表示式語言
- 連線資料庫
- 建立表
- SQL 表示式
- 執行表示式
- 選擇行
- 使用文字 SQL
- 使用別名
- 使用 UPDATE 表示式
- 使用 DELETE 表示式
- 使用多個表
- 使用多表更新
- 引數有序更新
- 多表刪除
- 使用連線
- 使用連線詞
- 使用函式
- 使用集合操作
- SQLAlchemy ORM
- 宣告對映
- 建立會話
- 新增物件
- 使用 Query
- 更新物件
- 應用過濾器
- 過濾器運算子
- 返回列表和標量
- 文字 SQL
- 構建關係
- 處理相關物件
- 使用連線
- 常用關係運算符
- 急切載入
- 刪除相關物件
- 多對多關係
- 方言
- SQLAlchemy 有用資源
- SQLAlchemy - 快速指南
- SQLAlchemy - 有用資源
- SQLAlchemy - 討論
SQLAlchemy Core - 建立表
現在讓我們討論如何使用建立表函式。
SQL 表示式語言根據表列構建其表示式。SQLAlchemy 的 Column 物件表示資料庫表中的一列,而資料庫表由Table 物件表示。元資料包含表和相關物件的定義,例如索引、檢視、觸發器等。
因此,來自 SQLAlchemy 元資料的 MetaData 類的物件是 Table 物件及其相關模式結構的集合。它儲存 Table 物件的集合以及對 Engine 或 Connection 的可選繫結。
from sqlalchemy import MetaData meta = MetaData()
MetaData 類的建構函式可以具有 bind 和 schema 引數,它們預設為None。
接下來,我們使用Table 建構函式在上述元資料目錄中定義所有表,這類似於常規的 SQL CREATE TABLE 語句。
Table 類的一個物件表示資料庫中相應的表。建構函式採用以下引數:
| 名稱 | 表的名稱 |
|---|---|
| 元資料 | 將儲存此表的 MetaData 物件 |
| 列 | 一個或多個 column 類的物件 |
Column 物件表示資料庫表中的一列。建構函式採用名稱、型別以及其他引數,例如 primary_key、autoincrement 和其他約束。
SQLAlchemy 將 Python 資料與其中定義的最佳可能的通用列資料型別匹配。一些通用資料型別包括:
- BigInteger
- Boolean
- Date
- DateTime
- Float
- Integer
- Numeric
- SmallInteger
- String
- Text
- Time
要在一個 college 資料庫中建立一個學生表,請使用以下程式碼片段:
from sqlalchemy import Table, Column, Integer, String, MetaData
meta = MetaData()
students = Table(
'students', meta,
Column('id', Integer, primary_key = True),
Column('name', String),
Column('lastname', String),
)
create_all() 函式使用 engine 物件建立所有已定義的表物件並將資訊儲存在元資料中。
meta.create_all(engine)
完整的程式碼如下所示,它將在當前工作目錄中建立一個包含學生表的 SQLite 資料庫 college.db。
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),
)
meta.create_all(engine)
因為 create_engine() 函式的 echo 屬性設定為True,所以控制檯將顯示用於表建立的實際 SQL 查詢,如下所示:
CREATE TABLE students ( id INTEGER NOT NULL, name VARCHAR, lastname VARCHAR, PRIMARY KEY (id) )
college.db 將在當前工作目錄中建立。要檢查學生表是否已建立,可以使用任何 SQLite GUI 工具(例如SQLiteStudio)開啟資料庫。
下圖顯示了在資料庫中建立的學生表: