SQLAlchemy 核心 – 创建表

SQLAlchemy 核心 – 创建表


现在让我们讨论如何使用创建表功能。

SQL 表达式语言根据表列构造其表达式。SQLAlchemy Column 对象表示数据库表中的,而又由Tableobject表示元数据包含表和关联对象(例如索引、视图、触发器等)的定义。

因此,来自 SQLAlchemy Metadata 的 MetaData 类的对象是 Table 对象及其关联模式构造的集合。它包含一组 Table 对象以及一个到 Engine 或 Connection 的可选绑定。

from sqlalchemy import MetaData
meta = MetaData()

MetaData 类的构造函数可以具有默认为None 的绑定和架构参数

接下来,我们使用类似于常规 SQL CREATE TABLE 语句的 Table 构造在上述元数据目录中定义所有表。

Table 类的对象表示数据库中的相应表。构造函数采用以下参数 –

Name 表名
Metadata 将保存此表的 MetaData 对象
Column(s) 列类的一个或多个对象

柱对象表示一个在一个数据库表中构造函数接受名称、类型和其他参数,例如primary_key、自动增量和其他约束。

SQLAlchemy 将 Python 数据与其中定义的最佳通用列数据类型相匹配。一些通用数据类型是 –

  • 大整数
  • 布尔值
  • 日期
  • 约会时间
  • 漂浮
  • 整数
  • 数字
  • 小整数
  • 细绳
  • 文本
  • 时间

在大学数据库中创建一个学生表,请使用以下代码段 –

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() 函数使用引擎对象创建所有定义的表对象并将信息存储在元数据中。

meta.create_all(engine)

下面给出了完整的代码,它将创建一个 SQLite 数据库 College.db,其中包含一个 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),
)
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 )打开数据库

下图显示了在数据库中创建的学生表 –

学生桌

觉得文章有用?

点个广告表达一下你的爱意吧 !😁