- 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)打开数据库。
下图显示了在数据库中创建的学生表: